CN111475410B - 一种测试用例生成方法及装置 - Google Patents

一种测试用例生成方法及装置 Download PDF

Info

Publication number
CN111475410B
CN111475410B CN202010246780.3A CN202010246780A CN111475410B CN 111475410 B CN111475410 B CN 111475410B CN 202010246780 A CN202010246780 A CN 202010246780A CN 111475410 B CN111475410 B CN 111475410B
Authority
CN
China
Prior art keywords
test
value
assigned
boolean
variable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010246780.3A
Other languages
English (en)
Other versions
CN111475410A (zh
Inventor
由强
张大鹏
王舜琰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingwei Hirain Tech Co Ltd
Original Assignee
Beijing Jingwei Hirain Tech Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jingwei Hirain Tech Co Ltd filed Critical Beijing Jingwei Hirain Tech Co Ltd
Priority to CN202010246780.3A priority Critical patent/CN111475410B/zh
Publication of CN111475410A publication Critical patent/CN111475410A/zh
Application granted granted Critical
Publication of CN111475410B publication Critical patent/CN111475410B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供一种测试用例生成方法及装置,将测试文档拆分得到功能文本段,将功能文本段输入语义理解模型中,经过解析后输出测试条件和测试结果;分别确定每个测试条件对应的测试流程,基于测试流程之间的逻辑关系对测试流程进行归并,并结合对应的测试结果生成逻辑测试用例;确定逻辑测试用例包括的待赋值变量及其取值范围,基于待赋值变量的取值范围及与测试结果的对应关系,对待赋值变量进行赋值,生成具体测试用例。由于基于测试文档自动生成了具体测试用例,因此基于具体测试用例可以完成对车辆各项功能的测试,实现了自动测试的目的,提高了测试的自动化程度以及测试效率。

Description

一种测试用例生成方法及装置
技术领域
本申请属于自动测试技术领域,尤其涉及一种测试用例生成方法及装置。
背景技术
在对车辆进行功能测试时,为了提高测试效率采用自动测试的方式。自动测试指的是基于评审通过的测试用例进行功能测试。
由此可知,测试用例是实现自动测试的基础,而现有生成测试用例的方式都是人工将测试文档转换为测试用例,导致自动测试过程中仍然需要技术人员的参与,降低了自动测试的自动化程度,测试效率低。
发明内容
有鉴于此,本申请的目的在于提供一种测试用例生成方法及装置,用于解决现有技术中人工将测试文档转换为测试用例以基于测试用例实现自动测试时存在的测试效率低的问题。
技术方案如下:
本申请提供一种测试用例生成方法,包括:
对测试文档进行功能拆分,得到至少一个功能文本段;
针对每个功能文本段,将所述功能文本段输入预先建立的语义理解模型中,通过所述语义理解模型对所述功能文本段进行解析后,输出所述功能文本段对应的测试条件以及对应的测试结果;
基于预先建立的先验知识数据库,分别确定每个测试条件对应的测试流程;
基于测试流程之间的逻辑关系,对测试流程进行归并,并结合所述功能文本段对应的测试结果生成逻辑测试用例;
确定逻辑测试用例包括的待赋值变量及其取值范围;
基于待赋值变量的取值范围及与测试结果的对应关系,对待赋值变量进行赋值,生成具体测试用例。
优选地,所述语义理解模型采用如下方法建立得到:
获取预训练的语义模型;所述预训练的语义模型能够提取语句的语义特征;
获取带有标记的测试训练语句;
利用所述带有标记的测试训练语句对所述预训练的语义模型进行训练,以对所述预训练的语义模型中的参数进行调整,得到语义理解模型。
优选地,所述基于测试流程之间的逻辑关系,对测试流程进行归并,包括:
确定不同测试流程之间的因果关系,基于确定出的因果关系调整不同测试流程之间的执行顺序;
确定不同测试流程包括的测试步骤中是否存在重复的测试步骤;其中,每个测试流程包括至少一个测试步骤;
若存在,则去除重复的测试步骤。
优选地,所述对待赋值变量进行赋值包括:
提取测试条件中的变量作为连续变量;
确定逻辑测试用例的各个测试步骤中是否存在可跳过的测试步骤;
若确定存在可跳过的测试步骤,则为该可跳过的测试步骤设置布尔量;连续变量和布尔量构成待赋值变量;
对于每个连续变量,确定该连续变量的临界值、极限值和异常值,并在大于该临界值的一定范围内选取第一数据,在小于该临界值的一定范围内选取第二数据;所述第一数据和所述第二数据均小于所述极限值;
将所述第一数据、所述第二数据、所述极限值与所述异常值作为该连续变量的取值向量;
对于每个布尔量,设定跳过该布尔量对应的测试步骤的情况对应第一布尔值,执行该布尔量对应的测试步骤的情况对应第二布尔值,基于所述第一布尔值和所述第二布尔值生成该布尔量的取值向量;
对全部连续变量的取值向量和全部布尔量的取值向量进行笛卡尔积运算,并基于运算结果对待赋值变量进行赋值。
优选地,还包括:
对于每个连续变量,确定该连续变量的取值范围,并在取值范围内均匀采样,利用每次均匀采样值对连续变量进行赋值;所述取值范围为从0到所述极限值。
优选地,还包括:
获取预先设置的约束表;所述约束表中至少包括测试步骤执行顺序的约束条件以及待赋值变量的取值约束条件;
将具体测试用例中不满足约束表中任意一项约束条件的测试用例删除,得到有效的具体测试用例。
本申请还提供了一种测试用例生成装置,包括:
拆分单元,用于对测试文档进行功能拆分,得到至少一个功能文本段;
处理单元,用于针对每个功能文本段,将所述功能文本段输入预先建立的语义理解模型中,通过所述语义理解模型对所述功能文本段进行解析后,输出所述功能文本段对应的测试条件以及测试结果;
第一确定单元,用于基于预先建立的先验知识数据库,分别确定每个测试条件对应的测试流程;
归并单元,用于基于测试流程之间的逻辑关系,对测试流程进行归并,并结合所述功能文本段对应的测试结果生成逻辑测试用例;
第二确定单元,用于确定逻辑测试用例包括的待赋值变量及其取值范围;
赋值单元,用于基于待赋值变量的取值范围及与测试结果的对应关系,对待赋值变量进行赋值,生成具体测试用例。
优选地,还包括:训练单元;
所述训练单元,用于获取预训练的语义模型;所述预训练的语义模型能够提取语句的语义特征;获取带有标记的测试训练语句;利用所述带有标记的测试训练语句对所述预训练的语义模型进行训练,以对所述预训练的语义模型中的参数进行调整,得到语义理解模型。
优选地,所述赋值单元包括:
确定子单元,用于提取测试条件中的变量作为连续变量;确定逻辑测试用例的各个测试步骤中是否存在可跳过的测试步骤;若确定存在可跳过的测试步骤,则为该可跳过的测试步骤设置布尔量;连续变量和布尔量构成待赋值变量;对于每个连续变量,确定该连续变量的临界值、极限值和异常值,并在大于该临界值的一定范围内选取第一数据,在小于该临界值的一定范围内选取第二数据;所述第一数据和所述第二数据均小于所述极限值;将所述第一数据、所述第二数据、所述极限值与所述异常值作为该连续变量的取值向量;对于每个布尔量,设定跳过该布尔量对应的测试步骤的情况对应一布尔值,执行该布尔量对应的测试步骤的情况对应第二布尔值,基于所述第一布尔值和所述第二布尔值生成该布尔量的取值向量;
赋值子单元,用于对全部连续变量的取值向量和全部布尔量的取值向量进行笛卡尔积运算,并基于运算结果对待赋值变量进行赋值。
优选地,还包括:删除单元;
所述删除单元,用于获取预先设置的约束表;所述约束表中至少包括测试步骤执行顺序的约束条件以及待赋值变量的取值约束条件;将具体测试用例中不满足约束表中任意一项约束条件的测试用例删除,得到有效的具体测试用例。
与现有技术相比,本申请提供的上述技术方案具有如下优点:
由于基于测试文档自动生成了测试用例,继而在基于生成的测试用例对车辆功能进行自动测试,提高了自动测试的自动化程度,提高了测试效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本申请公开的一种测试用例生成方法的流程图;
图2是本申请公开的基于预先建立的语义理解模型、专家模型以及赋值算法,对测试文档中的测试条件文本段进行处理的示意图;
图3是本申请公开的基于专家模型生成完整测试流程的示意图;
图4是本申请公开的建立语义理解模型的示意图;
图5是本申请公开的基于赋值算法对完整测试流程进行赋值并剔除无效测试流程的示意图;
图6是本申请公开的剔除无效测试流程而得到有效测试流程后,结合测试结果生成具体测试用例的示意图;
图7是本申请公开的一种测试用例生成装置的结构示意图;
图8是本申请公开的另一种测试用例生成装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请提供了一种测试用例生成方法,参见图1所示,该方法可以包括以下步骤:
S101、对测试文档进行功能拆分,得到至少一个功能文本段。
测试文档中包括对至少一个功能进行测试的文本段组成,简称功能文本段,按照功能将文本段拆分为多个功能文本段。
例如,一个测试文档中包括对车辆EPB(Electrical Park Brake,电子驻车制动系统)启动功能的测试以及对车辆解除启动功能的测试,按照功能将测试文档拆分为对EPB启动功能进行测试的功能文本段以及对解除启动功能进行测试的功能文本段。
S102、针对每个功能文本段,将所述功能文本段输入预先建立的语义理解模型中,通过所述语义理解模型对所述功能文本段进行解析后,输出所述功能文本段对应的测试条件以及测试结果。
本实施例中对一个测试文档按照功能拆分为至少一个功能文本段之后,对于每个功能文本段分别进行步骤S102-S106的处理,直至完成对所有功能文本段的处理。
下面以对一个功能文本段的处理为例进行介绍。
例如,得到对EPB启动功能进行测试的功能文本段为:
Conditions for activation
If:
Brakes are released
AND BatteryVoltage inActuation Range
AND Ignitionis“off”since 3sec
AND Mode Static since 1sec.
该功能文本段包括测试条件文本段以及测试结果文本段。
该功能文本段中测试条件文本段为:
Brakes are released
AND BatteryVoltage inActuation Range
AND Ignitionis“off”since 3sec
AND Mode Static since 1sec。
测试条件文本段用于描述测试环境,即在何种条件下对该功能进行测试。该功能文本段共包括四条测试语句,其中,每条测试语句对应一个测试条件,第一个测试语句为:Brakes are released,即松刹车;第二个测试语句为:Battery Voltage inActuationRange,即电池电压在一定范围内,该一定范围指的是启动电压范围;第三个测试语句为:Ignition is“off”since 3sec,即松开点火开关3秒以上;第四个测试语句为:Mode Staticsince 1sec,即进入静态模式1秒以上。其中,这四个测试语句之间具有“AND”逻辑关系,即“与”逻辑关系。
当然,在其他功能文本段中,不同测试语句之间还可以为其他的逻辑关系,如“或”、“非”等。
该功能文本段中测试结果文本段为:
Conditions foractivation,即测试结果为启动。
上述功能文本段表征:在满足松刹车且电池电压在启动电压范围内,且松开点火开关后维持3秒且车辆进入静态模式维持1秒后,EPB(Electrical Park Brake,电子驻车制动系统)启动。
将上述的功能文本段拆分为多条语句,将拆分得到的语句输入预先建立的语义理解模型中,利用语义理解模型对功能文本段中的语句进行逐句解析处理,得到该功能文本段中包括的测试条件以及测试结果。
如上述的功能文本段,将该功能文本段的测试条件文本段拆分为四条测试语句,将该功能文本段的测试结果文本段拆分一条结果语句,分别将四条测试语句以及一条结果语句输入语义理解模型中,通过语义理解模型的处理后输出对应的测试条件以及测试结果。
如表1所示,第一列为输入到语义理解模型中的测试语句,第二列为语义理解模型输出的测试条件。
表1
输入 输出
Brakesarereleased x1+value0
BatteryVoltageinActuationRange x2+value0
Ignitionis“off”since3sec x3+value1(3)
ModeStaticsince1sec x4+value2(1)
其中,输出的测试条件至少包括测试条件标识以及测试条件变量。其中,测试条件标识用于唯一标识测试条件,通常不同类型的测试条件对应不同的测试条件标识,测试条件变量用于表示该测试条件中存在的数据变量。
测试条件还可以包括测试条件临界值,测试条件临界值用于表示该条测试条件中的数据变量的临界值,若该数据变量的数值达到了临界值,则说明满足该测试条件,若该数据变量的数值没有达到该临界值,则说明不满足该测试条件。
对应第一条测试语句的测试条件标识为x1,表征类型为松开刹车,测试条件变量为value0,由于在实际应用中松开刹车的测试条件下并不需要对测试条件变量赋值,因此此处测试条件变量value0表示不需要赋予具体数值,从而并不存在测试条件临界值;
对应第二条测试语句的测试条件标识为x2,表征类型为电池电压,测试条件变量为value0,此处value0与第一条测试语句的value0相同,均用于表示该测试条件下并不需要对测试条件变量赋予具体数值;
对应第三条测试语句的测试条件标识为x3,表征类型为松开点火开关,测试条件变量为value1,测试条件临界值为3,表征松开点火开关后等待value1秒,而value1的临界值为3秒;
对应第四条测试语句的测试条件标识为x4,表征类型为进入静态模式,测试条件变量为value2,测试条件临界值为1,表征进入静态模式后等待value2秒,而value2的临界值为1秒。
将结果语句输入语义理解模型中,通过语义理解模型解析后输出对应的测试结果。
语义理解模型对测试语句和结果语句进行解析处理的方式是相同的。其中,对结果语句进行解析处理的语义理解模型和对测试语句进行解析处理的语义理解模型可以不同。
需要注意的是,此处并不限定对测试语句以及结果语句进行处理的顺序,即可以先通过语义理解模型对输入的测试语句进行解析处理并输出内容,然后再通过语义理解模型对输入的结果语句进行解析处理并输出内容;还可以先通过语义理解模型对输入的结果语句进行解析处理并输出内容,然后再通过语义理解模型对输入的测试语句进行解析处理并输出内容。当然,还可以通过不同的两个语义理解模型并行对分别输入的语句进行解析处理,然后分别输出内容。
仍然以步骤S101记载的功能文本段为例,结果语句为“Conditions foractivation”。将“Conditions for activation”输入语义理解模型后输出的测试结果为z1:正例-启动,反例-不启动。
测试结果中至少包括结果标识以及结果与正反例之间的对应关系。
其中,z1为结果标识,该结果标识用于唯一标识测试结果。“正例-启动,反例-不启动”为结果与正反例之间的对应关系。
若在测试过程中满足测试条件,则为正例,对应的测试结果为启动;若在测试过程中不满足测试条件,则为反例,对应的测试结果为不启动。
S103、基于预先建立的先验知识数据库,分别确定每个测试条件对应的测试流程。
在实际应用中,测试条件与测试流程具有对应关系,每个测试流程包括至少一个测试步骤,即通过执行一系列的测试步骤来实现该测试条件。
例如实现松开刹车这一测试条件时,需要依次执行:启动电瓶->踩住刹车->按住点火开关->松开点火开关->松刹车这一测试流程,该测试流程包括5个测试步骤。
可以理解的是,不同的测试条件对应的测试流程是不同的。
确定与测试条件对应的测试流程的一种实现方式为:预先建立测试条件标识与测试流程之间的对应关系,生成先验知识数据库,从而在得到测试条件后,基于测试条件中包括的测试条件标识,可以在先验知识数据库中查找与该测试条件标识对应的测试流程。
如表2所示,第一列为测试条件标识,第二列为对应的测试流程。
表2
S104、基于测试流程之间的逻辑关系对测试流程进行归并,并结合所述功能文本段对应的测试结果生成逻辑测试用例。
在实际应用中,对一个功能进行测试时可能需要同时满足多个测试条件,不同的测试条件对应不同的测试流程,且多个测试条件之间具有逻辑关系,仍然以上述功能文本段为例,四个测试条件之间的逻辑关系为“与”。
对一个功能进行测试时需要按照逻辑关系执行多个测试流程,如果仅依据测试条件之间的逻辑关系将多个测试流程进行关联,例如,将表2中第二列中的四个测试流程之间通过“与”的关系进行关联,将导致重复执行相同的测试步骤,如“启动电瓶”这一测试步骤将重复执行四次。
针对此,本实施例中可以预先设置逻辑归并规则,逻辑归并规则中主要规定了不同测试流程之间包括执行顺序、合并等规则,用于对多个测试流程进行归并,得到能够同时满足多个测试条件的完整测试流程。
基于本实施例中预先设置的逻辑归并规则,对表2中第二列中的四个测试流程进行归并,得到的同时满足四个测试条件的完整测试流程为:
启动电瓶->踩住刹车->按住点火开关->松开点火开关->等待value1秒->车辆进入static mode->等待value2秒->松刹车。
将完整测试流程结合步骤S102得到所述功能文本段对应的测试结果Z1,生成逻辑测试用例。
生成的逻辑测试用例为:启动电瓶->踩住刹车->按住点火开关->松开点火开关->等待value1秒->车辆进入static mode->等待value2秒->松刹车,Z1。即,逻辑测试用例中包含了完整的测试流程、测试条件中的变量以及正反例所对应的测试结果。
需要注意的是,可以将本实施例中的逻辑归并规则以及与步骤S103中的先验知识数据库作为预先建立的专家模型。
S105、确定逻辑测试用例包括的待赋值变量及其取值范围。
根据每个测试流程中包括的测试步骤,确定逻辑测试用例包括的待赋值变量,并分别确定每个待赋值变量的取值范围。
经过步骤S104处理后生成逻辑测试用例的完整测试流程为:启动电瓶->踩住刹车->按住点火开关->松开点火开关->等待value1秒->车辆进入static mode->等待value2秒->松刹车,待赋值变量至少包括value1和value2。需要注意的是,测试条件中的变量(测试条件变量)为待赋值变量,但是待赋值变量并不仅仅包括测试条件变量,具体确定待赋值变量的实现方式将在下面实施例中进行介绍。此处,确定出的待赋值变量为测试条件变量。
对于每个测试条件变量,确定该测试条件变量的极限值,其中,极限值为该测试条件变量的最大值,以测试条件变量为车速为例,车辆能够行驶到的最大车速为150km/h,则车速的极限值为150km/h。
对于每个测试条件变量而言,一般而言,该测试条件变量的取值范围为从0到极限值的范围,例如,车速的取值范围为0~150km/h。
S106、基于待赋值变量的取值范围及与测试结果的对应关系,对待赋值变量进行赋值,生成具体测试用例。
从该测试条件变量的取值范围内取值并为该测试条件变量进行赋值。
考虑到在实际应用中,在测试车辆某项功能是否能够正常运行时,通常会分别在满足测试条件的情况下执行测试并且在不满足测试条件的情况下执行测试。为了能够在取值范围内分别取到满足测试条件的数值和不满足测试条件的数值,可以以测试条件变量的临界值为分界点,分别从取值范围内选择大于临界值的数值以及小于临界值的数值,为测试条件变量进行赋值。
例如,与value1对应的测试条件临界值为3秒,与value2对应的测试条件临界值为1秒。
利用2秒和4秒分别为value1赋值;利用0.5秒和1.5秒分别为value2赋值。
由于测试条件与测试结果之间具有对应关系,如上述功能文本段中的测试条件和测试结果之间的对应关系为:
同时满足四个测试条件,则对应的测试结果为启动,生成的具体测试用例为正例。
那么,若赋值后的测试流程中同时满足四个测试条件,即为每个测试条件变量赋值的数值均大于其临界值小于极限值,则对应的测试结果为启动,具体测试用例为正例。例如,启动电瓶->踩住刹车->按住点火开关->松开点火开关->等待4秒->车辆进入staticmode->等待1.5秒->松刹车,这一完整测试流程同时满足四个测试条件,对应的测试结果为启动,具体测试用例为正例。
若赋值后的测试流程中不满足任意一个测试条件,即为任意一个测试条件变量赋值的数值小于其临界值,则对应的测试结果为不启动,具体测试用例为反例。例如,启动电瓶->踩住刹车->按住点火开关->松开点火开关->等待2秒->车辆进入static mode->等待0.5秒->松刹车,这一完整测试流程不满足两个测试条件,对应的测试结果为不启动,具体测试用例为反例。
逻辑测试用例与具体测试用例均是由测试条件(完整的测试流程)以及测试结果构成。两者的区别在于,逻辑测试用例中测试条件变量并未被赋值,且也不确定对应的测试结果是正例或反例;而具体测试用例中完成对测试条件变量的赋值,且能够确定出对应的测试结果。
如上述功能文本段,对待赋值变量即测试条件变量value1和value2分别赋值为2秒和0.5秒后,基于测试条件与测试结果之间的对应关系“value1满足3秒且value2满足1秒则启动,为正例”,确定不满足一个测试条件则对应的测试结果为不启动,为反例。生成的该功能文本段的具体测试用例为:
【反例】启动电瓶->踩住刹车->按住点火开关->松开点火开关->等待2秒->车辆进入static mode->等待0.5秒->松刹车。
对待赋值变量value1和value2分别赋值为4秒和1.5秒后,基于测试条件与测试结果之间的对应关系“value1满足3秒且value2满足1秒则启动,为正例”,确定满足全部测试条件则对应的测试结果为启动,为正例。生成的该功能文本段的具体测试用例为:
【正例】启动电瓶->踩住刹车->按住点火开关->松开点火开关->等待4秒->车辆进入static mode->等待1.5秒->松刹车。
可以理解的是,由于赋值的不同,可以得到多个赋值后的完整测试流程,对于每个完整测试流程要么对应正例要么对应反例,进而可以生成一个具体测试用例。
在生成具体测试用例后,利用生成的具体测试用例对车辆的某项功能进行测试,如上具体测试用例可以对EPB启动功能进行测试。
以【正例】启动电瓶->踩住刹车->按住点火开关->松开点火开关->等待4秒->车辆进入static mode->等待1.5秒->松刹车这一具体测试用例为例,若运行该具体测试用例后对应的测试结果为启动;然后比对结果与正反例的对应关系可知,正例对应的测试结果为启动,与该具体测试用例的测试结果相同,则说明测试通过。若运行该测试用例后对应的测试结果为不启动;然后比对结果与正反例的对应关系可知,正例对应的测试结果为启动,与该测试用例的测试结果不相同,则说明测试不通过。
针对某项功能的多个测试用例的通过率达到预设比例,则说明该功能通过测试。
对于一个测试文档而言,对该测试文档中包括的每个功能文本段分别执行步骤S102-S106,生成分别对应每个功能文本段的具体测试用例,直至生成全部功能文本段的具体测试用例。
通过上述技术方案,本实施例中将测试文档进行功能拆分得到至少一个功能文本段,针对每个功能文本段,将所述功能文本段输入预先建立的语义理解模型中,通过所述语义理解模型对所述功能文本段进行解析后,输出所述功能文本段对应的测试条件以及对应的测试结果;基于预先建立的先验知识数据库,分别确定每个测试条件对应的测试流程;基于测试流程之间的逻辑关系对测试流程进行归并,并结合所述功能文本段对应的测试结果生成逻辑测试用例;确定逻辑测试用例包括的待赋值变量及其取值范围,基于待赋值变量的取值范围及与测试结果的对应关系,对待赋值变量进行赋值,生成具体测试用例,依据上述方法生成全部功能文本段的测试用例。实现了基于测试文档自动生成具体测试用例的目的,进而基于具体测试用例完成对车辆各项功能的测试,实现了自动测试的目的,提高了自动测试的自动化程度,进而提高了测试效率。
参见图2所示,为本实施例中基于预先建立的语义理解模型、专家模型以及赋值算法,对测试文档中的测试语句进行处理的架构示意图。
预先建立的语义理解模型从测试文档的功能文本段中提取测试所需要的信息,其中测试所需要的信息包括测试条件以及不同测试条件之间的逻辑关系,测试条件又包括测试条件标识、测试条件变量以及测试条件临界值,通过语义理解模型将功能文本段转换为机器语言可以识别的变量,输出对应的测试条件,当然还可以得到测试条件之间的逻辑关系,实现将测试文档从文本域转化为变量域。
专家模型中基于先验知识,建立测试流程与测试条件之间的对应关系以及逻辑归并规则,自动基于测试条件生成完整测试流程。参见图3所示,为基于专家模型生成完整测试流程的示意图。
生成完整测试流程后,通过赋值算法对完整测试流程中的待赋值变量进行赋值,得到赋值后的具体测试用例。
由于本申请中采用语义理解模型对测试文档中的语句进行解析处理,才能基于测试文档自动生成具体测试用例,因此建立语义理解模型是实现自动生成测试用例非常重要的一个步骤。
下面详细介绍本实施例中建立语义理解模型的方式,参见图4所示:
步骤一、获取预训练的语义模型;所述预训练的语义模型能够提取语句的语义特征。
考虑到从头训练语义理解模型,需要大量带有人工标记的训练数据并且训练周期较长,从而本实施例中采用预训练的语义模型,在预训练的语义模型的基础上采用少量的带有人工标记的测试训练语句进行训练。
预训练的语义模型指的是能够提取语句的语义特征的模型,如BERT、XLNET,这两个模型都是基于Transformer模型,在上亿单词量的数据上完成了无监督学习,可以提取语句的语义特征。
其中,采用特征提取的方式提取语句的语义特征,特征提取的方式是现有技术,此处不再赘述。
步骤二、获取带有标记的测试训练语句。
获取少量领域内带有标记的数据作为测试训练语句。其中,测试领域不同,获取到的测试训练语句也是不同的。
例如,Brakes are released为一条测试训练语句,其带有的标记为松开刹车,将这一带有标记的测试训练语句作为训练样本,用于对预训练的语义模型进行训练。
步骤三、利用所述带有标记的测试训练语句对所述预训练的语义模型进行训练,以对所述预训练的语义模型中的参数进行调整,得到语义理解模型。
利用带有标记的测试训练语句对预训练的语义模型进行训练,其中,训练过程中采用迁移学习,可以仅对距离语义模型输出层较近的层结构的参数进行调整,而距离语义模型输出层较远的层结构的参数不进行调整,这样通过在预训练的语义模型的基础上进行微调即可训练得到语义理解模型,降低了训练难度以及降低了所需训练数据的数量。
本实施例中利用带有标记的测试训练语句对预训练的语义模型进行训练的过程与现有技术中深度学习的Fine-tuning过程类似,此处不再过多介绍。
本实施例中除需要预先建立语义理解模型外,还需要预设逻辑归并规则,以基于预设的逻辑归并规则以及测试流程之间的逻辑关系,对多个测试流程进行归并得到完整测试流程。
预设的逻辑归并规则包括下列至少一项:排序和去重。
基于预设的逻辑归并规则对多个测试流程进行归并包括:排序操作和去重操作。
具体地,确定不同测试流程之间的因果关系,基于确定出的因果关系调整不同测试流程之间的执行顺序。
例如,参见表2所示的四个测试流程,松开点火开关后车辆先进入静态模式等待value2秒后,才会松刹车,而不是在松开点火开关后先松刹车,然后才进入静态模式等待value2秒。基于这一因果关系,确定松开点火开关后的执行顺序应该为:松开点火开关->等待value1秒->车辆进入static mode->等待value2秒->松刹车。
确定不同测试流程包括的测试步骤中是否存在重复的测试步骤,其中,每个测试流程包括至少一个测试步骤,若确定不同测试流程包括的测试步骤中存在重复的测试步骤,则去除重复的测试步骤。
例如,参见表2所示的四个测试流程,均存在“启动电瓶”这一测试步骤,则对“启动电瓶”这一测试步骤进行去重操作,仅保留执行一次“启动电瓶”的测试步骤。
除了上述完全一致的测试步骤为重复的测试步骤外,还包括一种情况的测试步骤为重复的测试步骤,具体为操作相同但是数值不同,如,加速这一操作,可以加速到30km/h,还可以加速到60km/h,如果在先有一个测试步骤为加速到30km/h,在后又存在一个测试步骤为加速到60km/h,则将这两个都涉及到加速操作的测试步骤认定为是重复的测试步骤,去除一个测试步骤,而仅保留一个测试步骤,通常情况下去除的是小数值的加速操作,即去除加速到30km/h的测试步骤,而保留加速到60km/h的测试步骤。
结合不同测试流程之间的逻辑关系,对利用预设的逻辑归并规则处理后的测试流程进行整合,即可得到完整测试流程。
在上述实施例的基础上,为了提高测试用例对测试场景的覆盖率,需要对该项功能的测试增加测试用例,通过增加待赋值变量以及对每个待赋值变量的赋值结果,增加测试用例。
增加待赋值变量指的是在上述仅将测试条件变量确定为待赋值变量的基础上,增加待赋值变量。具体地,从逻辑测试用例的测试流程包括的各个测试步骤中提取测试条件中变量,将测试条件变量作为连续变量;确定逻辑测试用例的各个测试步骤中是否存在可跳过的测试步骤;若确定存在可跳过的测试步骤,则为该可跳过的测试步骤设置布尔量;连续变量和布尔量构成全部待赋值变量,实现了增加待赋值变量的目的。在执行对待赋值变量的赋值操作时,除对连续变量进行赋值外,还对布尔量进行赋值。
更为具体的是,逻辑测试用例的测试流程包括的各个测试步骤中确定出测试条件变量,将此测试条件变量确定为第一种类型的待赋值变量,即连续变量;除此之外,增加判断各个测试步骤中是否存在可跳过的测试步骤的操作,如果可以跳过执行某个测试步骤,则为该测试步骤设置第二种类型的待赋值变量,即布尔量。这样,在原本只将测试条件变量作为待赋值变量的基础上,额外增加了布尔量作为待赋值变量。
以完整测试流程:启动电瓶->踩住刹车->按住点火开关->松开点火开关->等待value1秒->车辆进入static mode->等待value2秒->松刹车为例,描述对全部待赋值变量进行赋值的过程。
确定上述完整测试流程的测试步骤中松刹车、松开点火开关、等待value1秒、车辆进入static mode、等待value2秒这几个测试步骤为可跳过的测试步骤。
针对每个可跳过测试步骤分别设置布尔量。在设置布尔量时考虑到测试步骤之间具有关联关系,如松开点火开关与等待value1秒这两个测试步骤之间具有关联关系,且车辆进入static mode与等待value2秒这两个测试步骤之间具有关联关系,因此对具有关联关系的测试步骤设置同一布尔量,避免具有关联关系的测试步骤不能同时执行或同时跳过而导致测试无效的情况发生,并且可以减少待赋值变量的数量,降低赋值难度。
本实施例中为松刹车这一测试步骤设置布尔量bool1,为相关联的松开点火开关以及等待value1秒均设置布尔量bool2,为相关联的车辆进入static mode以及等待value2秒均设置布尔量bool3。
进而针对上述完整测试流程,确定出的全部待赋值变量包括两个测试条件变量value1和value2;三个布尔量bool1、bool2和bool3。
对于每个连续变量,确定该连续变量的临界值、极限值和异常值,并在大于该临界值的一定范围内选取第一数据,在小于该临界值的一定范围内选取第二数据;其中,第一数据和第二数据均小于所述极限值。
将所述第一数据、所述第二数据、所述极限值与所述异常值作为该连续变量的取值向量。
其中,临界值为直接从测试文档中提取到的,即测试条件临界值;一定范围指的是距离临界值较近的范围。可以理解的是,对于不同的连续变量,该范围可以不同。
例如,value1的临界值为2秒,一定范围指的是1秒,那么,在大于2秒的一定范围内选取第一数据为3秒,在小于2秒的一定范围内选取第二数据为1秒。而value1对应的测试条件为松开点火开关后的等待时间,在实际应用中并不存在极限值以及异常值,因此value1的取值向量中可以仅包括1秒和3秒,而不包括其他数据。
Value2的临界值为1秒,一定范围指的是0.5秒,在大于1秒的一定范围内选取第一数据为1.5秒,在小于1秒的一定范围内选取第二数据为0.5秒。而value2对应的测试条件为车辆进入static mode后的等待时间,在实际应用中并不存在极限值以及异常值,因此value2的取值向量中可以仅包括0.5秒和1.5秒,而不包括其他数据。
在其他实施例中,如果连续变量对应的是车速,那么,在车速这一测试条件下,车辆能够行驶的最大车速即为极限值,而正常行驶时车速为0则为异常值。
对于每个布尔量,将跳过该布尔量对应的测试步骤的情况对应第一布尔值,即true;将执行该布尔量对应的测试步骤的情况对应第二布尔值,即false;基于所述第一布尔值和所述第二布尔值生成该布尔量的取值向量,从而任意一个布尔量的取值向量中都包括false和true。
确定出全部连续变量的取值向量和全部布尔量的取值向量后,对全部连续变量的取值向量和全部布尔量的取值向量进行笛卡尔积运算,即可得到针对全部待赋值变量进行赋值的数据组合。将每一种数据组合作为一组赋值数据,分别对对应的待赋值变量进行赋值。
针对上述完整测试流程,确定出的每个待赋值变量与其对应的取值向量之间的对应关系如下:
bool1:[True,False]
bool2:[True,False]
bool3:[True,False]
value1:[2,4]
value2:[0.5,1.5]
对上述5个待赋值变量的取值向量进行笛卡尔积运算,得到2×2×2×2×2=32种赋值方式。
下面以得到的几种赋值方式为例进行介绍,(bool1,bool2,bool3,value1,value2)=(False,False,False,4,1.5);(bool1,bool2,bool3,value1,value2)=(False,False,False,4,0.5);(bool1,bool2,bool3,value1,value2)=(False,False,False,2,0.5);(bool1,bool2,bool3,value1,value2)=(False,False,False,2,1.5)。
为了进一步提高测试用例的覆盖范围,确定连续变量的取值时,除了包括第一数据、第二数据、极限值以及异常值这四个关键数据外,还可以在该连续变量的取值范围内执行一定次数的均匀采样,每次采样得到的数据都可以作为该连续变量的数据对该连续变量进行赋值。
其中,连续变量的取值范围指的是从0到极限值之间。如连续变量为车速变量,车辆最大行驶车速值为150Km/h,那么,该连续变量的取值范围为0-150Km/h。
均匀采样并不受限于临界值,不仅可以在临界值附近进行采样,还可以在距离临界值较远的数值范围内进行采样。
可以将连续变量的均匀采样值作为该连续变量的取值向量中的元素,进而与布尔量的取值向量进行笛卡尔积运算,基于运算结果对待赋值变量进行赋值;
也可以考虑到赋值运算量,不对连续变量的取值向量与布尔量的取值向量进行笛卡尔积运算,而仅将连续变量的均匀采样值作为取值向量的补充,此时,针对不同连续变量的均匀采样值并不需要与其他布尔量的取值向量进行笛卡尔积运算,而是对于每个连续变量而言,将每次采样得到的数据对该连续变量进行赋值,对于每个布尔量而言,在第一布尔值和第二布尔值中随机选择一个布尔值对该布尔量进行赋值。
例如,具有3个连续变量(a、b、c)以及2个布尔量(bool1、bool2),赋值过程为:
针对每个连续变量采样10个值,a取值为a1、a2、……、a10;b取值为b1、b2、……、b10;c取值为c1、c2、……、c10。
对2个布尔量进行笛卡尔积运算,得到笛卡尔积运算结果,运算结果为(true,true)、(true,False)、(False,true)、(False,False)。
然后在分别将3个连续变量的取值与笛卡尔积运算结果进行拼接,得到赋值结果。
具体地,(a、b、c、bool1、bool2)=(a1,b1,c1,true,true)、(a2,b2,c2,true,false)、(a3,b3,c3,false,true)、(a4,b4,c4,false,false)、(a5,b5,c5,true,true)、(a6,b6,c6,true,false)、(a7,b7,c7,false,true)、(a8,b8,c8,false,false)(a9,b9,c9,true,true)(a10,b10,c10,true,false)。
赋值后得到多个赋值后的完整测试流程,虽然在上述对待赋值变量进行赋值时,对每个连续变量的数据进行取值时考虑到了该连续变量的取值范围、极限值以及异常值等情况,并且仅对可以跳过的测试步骤设置布尔量,避免了生成无效的测试流程。但是,为了进一步保证生成的测试流程中不包括无效的测试流程,因此,在完成赋值操作后,本实施例中还包括剔除测试流程中无效测试流程的操作。
具体地,获取预先设置的约束表;所述约束表中至少包括测试步骤执行顺序的约束条件以及待赋值变量的取值约束条件;然后将具体测试用例中不满足约束表中任意一项约束条件的测试用例删除,得到有效的具体测试用例。
其中,测试步骤执行顺序的约束条件用于对测试步骤的执行顺序进行约束,以检测通过设置布尔量而跳过某些测试步骤后,其他测试步骤之间的执行顺序是否符合实际应用的要求,如点火步骤后直接执行了减速步骤,则不满足对测试步骤的执行顺序的约束条件,需要删除该测试流程;
待赋值变量的取值约束条件用于对每个待赋值变量的取值进行约束,以检测对每个待赋值变量选取的数据是否符合实际应用的要求,如,对车速变量选取的数据是否超过最大车速,如果超过最大车速则确定不满足对待赋值变量的取值约束条件,需要删除该测试流程。
参见图5所示,为本实施例中基于赋值算法对完整测试流程进行赋值并剔除无效测试流程的示意图。
参见图6所示,为本实施例中剔除无效测试流程而得到有效测试流程后,结合测试结果生成测试用例的示意图。其中,逻辑判断的依据是测试条件与测试结果之间的对应关系。
对应上述公开的测试用例生成方法,本申请实施例提供了一种测试用例生成装置,参见图7所示,该装置包括:
拆分单元701、处理单元702、第一确定单元703、归并单元704、第二确定单元705和赋值单元706。
拆分单元701,用于对测试文档进行功能拆分,得到至少一个功能文本段。
处理单元702,用于针对每个功能文本段,将所述功能文本段输入预先建立的语义理解模型中,通过所述语义理解模型对所述功能文本段进行解析后,输出所述功能文本段对应的测试条件以及对应的测试结果。
第一确定单元703,用于基于预先建立的先验知识数据库,分别确定每个测试条件对应的测试流程。
归并单元704,用于基于测试流程之间的逻辑关系,对测试流程进行归并,并结合所述功能文本段对应的测试结果生成逻辑测试用例;
第二确定单元705,用于确定逻辑测试用例包括的待赋值变量及其取值范围。
赋值单元706,用于基于待赋值变量的取值范围及与测试结果的对应关系,对待赋值变量进行赋值,生成具体测试用例。
通过上述技术方案,本实施例中由于基于测试文档自动生成了测试用例,继而在基于生成的测试用例对车辆功能进行自动测试,提高了自动测试的自动化程度,提高了测试效率。
可选地,参见图8所示,在本申请另一实施例中还公开了,所述装置还包括:
训练单元801,用于获取预训练的语义模型;所述预训练的语义模型能够提取语句的语义特征;获取带有标记的测试训练语句;利用所述带有标记的测试训练语句对所述预训练的语义模型进行训练,以对所述预训练的语义模型中的参数进行调整,得到语义理解模型。
可选地,在本申请另一实施例中还公开了,赋值单元706包括:
确定子单元和赋值子单元。
所述确定子单元,用于提取测试条件中的变量作为连续变量;确定逻辑测试用例的各个测试步骤中是否存在可跳过的测试步骤;若确定存在可跳过的测试步骤,则为该可跳过的测试步骤设置布尔量;连续变量和布尔量构成待赋值变量;对于每个连续变量,确定该连续变量的临界值、极限值和异常值,并在大于该临界值的一定范围内选取第一数据,在小于该临界值的一定范围内选取第二数据;所述第一数据和所述第二数据均小于所述极限值;将所述第一数据、所述第二数据、所述极限值与所述异常值作为该连续变量的取值向量;对于每个布尔量,将跳过该布尔量对应的测试步骤的情况作为第一布尔值,将执行该布尔量对应的测试步骤的情况作为第二布尔值,基于所述第一布尔值和所述第二布尔值生成该布尔量的取值向量;
赋值子单元,用于对全部连续变量的取值向量和全部布尔量的取值向量进行笛卡尔积运算,并基于运算结果对待赋值变量进行赋值。
可选的,在本申请另一实施例中还公开了,该装置还包括:删除单元;
所述删除单元,用于获取预先设置的约束表;所述约束表中至少包括测试步骤执行顺序的约束条件以及待赋值变量的取值约束条件;将具体测试用例中不满足约束表中任意一项约束条件的测试用例删除,得到有效的具体测试用例。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (8)

1.一种测试用例生成方法,其特征在于,包括:
对测试文档进行功能拆分,得到至少一个功能文本段;
针对每个功能文本段,将其输入预先建立的语义理解模型中,通过所述语义理解模型对所述功能文本段进行解析后,输出所述功能文本段对应的测试条件以及测试结果;
基于预先建立的先验知识数据库,分别确定每个测试条件对应的测试流程;
基于测试流程之间的逻辑关系,对测试流程进行归并,并结合所述测试结果生成逻辑测试用例;
确定逻辑测试用例包括的待赋值变量及其取值范围;
基于待赋值变量的取值范围及与所述测试结果的对应关系,对待赋值变量进行赋值,生成具体测试用例;
其中,所述对待赋值变量进行赋值包括:
提取测试条件中的变量作为连续变量;
确定逻辑测试用例的各个测试步骤中是否存在可跳过的测试步骤;
若存在,则为该可跳过的测试步骤设置布尔量;所有连续变量和所有布尔量构成待赋值变量;
对于每个连续变量,确定该连续变量的临界值、极限值和异常值,并选取大于该临界值的第一数据及小于该临界值的第二数据;所述第一数据和所述第二数据均小于所述极限值;
将所述第一数据、所述第二数据、所述极限值与所述异常值作为该连续变量的取值向量;
对于每个布尔量,设定跳过该布尔量对应的测试步骤的情况对应第一布尔值,执行该布尔量对应的测试步骤的情况对应第二布尔值,基于所述第一布尔值和所述第二布尔值生成该布尔量的取值向量;
对全部连续变量的取值向量和全部布尔量的取值向量进行笛卡尔积运算,并基于运算结果对待赋值变量进行赋值。
2.根据权利要求1所述的方法,其特征在于,所述语义理解模型采用如下方法建立得到:
获取预训练的语义模型;所述预训练的语义模型能够提取语句的语义特征;
获取带有标记的测试训练语句;
利用所述带有标记的测试训练语句对所述预训练的语义模型进行训练,以对所述预训练的语义模型中的参数进行调整,得到所述语义理解模型。
3.根据权利要求1或2所述的方法,其特征在于,所述基于测试流程之间的逻辑关系,对测试流程进行归并,包括:
确定测试流程之间的因果关系,基于确定出的因果关系调整测试流程之间的执行顺序;
确定不同测试流程包括的测试步骤中是否存在重复的测试步骤;其中,每个测试流程包括至少一个测试步骤;
若存在,则去除重复的测试步骤。
4.根据权利要求1所述的方法,其特征在于,对连续变量进行赋值,包括:
确定每个连续变量的取值范围,并在取值范围内均匀采样,利用每次均匀采样值对该连续变量进行赋值。
5.根据权利要求1或4任一项所述的方法,其特征在于,还包括:
获取预先设置的约束表;所述约束表中包括测试流程中的测试步骤执行顺序的约束条件以及待赋值变量的取值约束条件;
将不满足约束表中任意一项约束条件的具体测试用例删除,得到有效的具体测试用例。
6.一种测试用例生成装置,其特征在于,包括:
拆分单元,用于对测试文档进行功能拆分,得到至少一个功能文本段;
处理单元,用于将所述功能文本段输入预先建立的语义理解模型中,通过所述语义理解模型对所述功能文本段进行解析后,输出所述功能文本段对应的测试条件以及测试结果;
第一确定单元,用于基于预先建立的先验知识数据库,分别确定每个测试条件对应的测试流程;
归并单元,用于基于测试流程之间的逻辑关系,对测试流程进行归并,并结合所述测试结果生成逻辑测试用例;
第二确定单元,用于确定逻辑测试用例包括的待赋值变量及其取值范围;
赋值单元,用于基于待赋值变量的取值范围及与所述测试结果的对应关系,对待赋值变量进行赋值,生成具体测试用例;
其中,所述赋值单元包括:
确定子单元,用于提取测试条件中的变量作为连续变量;确定逻辑测试用例的各个测试步骤中是否存在可跳过的测试步骤;
若确定存在可跳过的测试步骤,则为该可跳过的测试步骤设置布尔量;所有连续变量和所有布尔量构成待赋值变量;对于每个连续变量,确定该连续变量的临界值、极限值和异常值,并选取大于该临界值的第一数据及小于该临界值的第二数据;所述第一数据和所述第二数据均小于所述极限值;
将所述第一数据、所述第二数据、所述极限值与所述异常值作为该连续变量的取值向量;对于每个布尔量,设定跳过该布尔量对应的测试步骤的情况对应第一布尔值,执行该布尔量对应的测试步骤的情况对应第二布尔值,基于所述第一布尔值和所述第二布尔值生成该布尔量的取值向量;
赋值子单元,用于对全部连续变量的取值向量和全部布尔量的取值向量进行笛卡尔积运算,并基于运算结果对待赋值变量进行赋值。
7.根据权利要求6所述的测试用例生成装置,其特征在于,还包括:训练单元;
所述训练单元,用于获取预训练的语义模型;所述预训练的语义模型能够提取语句的语义特征;获取带有标记的测试训练语句;利用所述带有标记的测试训练语句对所述预训练的语义模型进行训练,以对所述预训练的语义模型中的参数进行调整,得到所述语义理解模型。
8.根据权利要求6所述的装置,其特征在于,还包括:删除单元;
所述删除单元,用于获取预先设置的约束表;所述约束表中包括测试流程中的测试步骤执行顺序的约束条件以及待赋值变量的取值约束条件;将不满足约束表中任意一项约束条件的具体测试用例删除,得到有效的具体测试用例。
CN202010246780.3A 2020-03-31 2020-03-31 一种测试用例生成方法及装置 Active CN111475410B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010246780.3A CN111475410B (zh) 2020-03-31 2020-03-31 一种测试用例生成方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010246780.3A CN111475410B (zh) 2020-03-31 2020-03-31 一种测试用例生成方法及装置

Publications (2)

Publication Number Publication Date
CN111475410A CN111475410A (zh) 2020-07-31
CN111475410B true CN111475410B (zh) 2024-01-09

Family

ID=71750294

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010246780.3A Active CN111475410B (zh) 2020-03-31 2020-03-31 一种测试用例生成方法及装置

Country Status (1)

Country Link
CN (1) CN111475410B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113468065A (zh) * 2021-07-19 2021-10-01 京东科技控股股份有限公司 测试用例的运行方法及装置
CN113722210A (zh) * 2021-08-07 2021-11-30 中国航空工业集团公司沈阳飞机设计研究所 一种基于数据模型分布的测试用例生成方法及装置
CN116795725B (zh) * 2023-08-23 2023-11-17 长沙砝码柯数据科技有限责任公司 一种临床电子数据采集系统的自动验库方法和系统
CN117453576B (zh) * 2023-12-25 2024-04-09 企迈科技有限公司 基于DXM模型的SaaS软件测试用例构建方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007014521A1 (fr) * 2005-08-01 2007-02-08 Tong Wang Procede permettant de concevoir un scenario d'essai et systeme correspondant
CN101436128A (zh) * 2007-11-16 2009-05-20 北京邮电大学 软件测试用例自动生成方法及系统
CN104156313A (zh) * 2014-08-12 2014-11-19 南京大学 一种Web服务测试用例自动生成方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7089545B2 (en) * 2002-12-17 2006-08-08 International Business Machines Corporation Detection of reduction variables in an assignment statement
CN102999426B (zh) * 2012-11-30 2016-06-29 北京邮电大学 基于抽象内存模型的非数值型数据的计算方法
CN103544107A (zh) * 2013-11-01 2014-01-29 深圳市通力科技开发有限公司 生成测试用例文档的方法及装置
CN104991863B (zh) * 2015-07-14 2017-11-03 株洲南车时代电气股份有限公司 一种基于功能块图测试模型自动生成测试用例的方法
CN105808437B (zh) * 2016-03-09 2020-05-12 广州优视网络科技有限公司 基于测试用例数据表的自动化测试方法及系统
CN107608874A (zh) * 2016-07-12 2018-01-19 博彦科技股份有限公司 测试方法和装置
WO2018218371A1 (en) * 2017-06-01 2018-12-06 Royal Bank Of Canada System and method for test generation
CN107678973B (zh) * 2017-10-31 2020-06-05 北京润科通用技术有限公司 一种测试脚本的自动生成方法及系统
CN107832229B (zh) * 2017-12-03 2021-06-11 中国直升机设计研究所 一种基于nlp的系统测试用例自动生成方法
CN109189666A (zh) * 2018-08-02 2019-01-11 腾讯科技(北京)有限公司 接口测试方法、装置和计算机设备
CN109491917A (zh) * 2018-11-13 2019-03-19 北京车和家信息技术有限公司 一种测试用例处理方法及其装置
CN109656813A (zh) * 2018-11-21 2019-04-19 恒为科技(上海)股份有限公司 一种测试用例运行方法及装置
CN110825619A (zh) * 2019-10-12 2020-02-21 深圳壹账通智能科技有限公司 接口测试用例自动生成方法、装置及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007014521A1 (fr) * 2005-08-01 2007-02-08 Tong Wang Procede permettant de concevoir un scenario d'essai et systeme correspondant
CN101436128A (zh) * 2007-11-16 2009-05-20 北京邮电大学 软件测试用例自动生成方法及系统
CN104156313A (zh) * 2014-08-12 2014-11-19 南京大学 一种Web服务测试用例自动生成方法

Also Published As

Publication number Publication date
CN111475410A (zh) 2020-07-31

Similar Documents

Publication Publication Date Title
CN111475410B (zh) 一种测试用例生成方法及装置
CN109522556B (zh) 一种意图识别方法及装置
CN109726120B (zh) 一种基于机器学习的软件缺陷确认方法
KR101719278B1 (ko) 비주얼 콘텐츠기반 영상 인식을 위한 딥러닝 프레임워크 및 영상 인식 방법
CN107147639A (zh) 一种基于复杂事件处理的实时安全预警方法
CN110765235B (zh) 训练数据的生成方法、装置、终端及可读介质
CN110704682A (zh) 一种基于视频多维特征智能推荐背景音乐的方法及系统
CN107391353A (zh) 基于日志的复杂软件系统异常行为检测方法
CN116629275B (zh) 一种基于大数据的智能决策支持系统及方法
CN109241534B (zh) 一种基于文本ai学习的考题自动生成方法和装置
CN113780367A (zh) 分类模型训练和数据分类方法、装置、电子设备
CN112784905A (zh) 数据样本扩充的方法、装置和电子设备
CN109766274B (zh) 一种测试脚本自动化融合方法、存储介质
CN108629124B (zh) 一种基于活动图路径的仿真参数数据自动生成方法
CN111831545A (zh) 测试用例生成方法、生成装置、计算机设备和存储介质
CN111125319A (zh) 一种企业基础法律智能咨询终端、系统及方法
CN112542166B (zh) 一种语音交互的方法和装置
CN114417828A (zh) 一种服务器告警日志描述文本的实体关系抽取方法及系统
CN111273901B (zh) 一种可快捷上线部署的机器学习模型的文件格式及部署方法
CN114610576A (zh) 一种日志生成监控方法和装置
KR101904643B1 (ko) 의사결정트리를 이용한 기사 생성 방법
CN112230895A (zh) 一种el表达式解析方法、装置、设备及存储介质
CN111737988B (zh) 一种复述句识别的方法及装置
CN117573798A (zh) 数据库索引推荐方法及装置
Kamiya Code difference visualization by a call tree

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 4 / F, building 1, No.14 Jiuxianqiao Road, Chaoyang District, Beijing 100020

Applicant after: Beijing Jingwei Hirain Technologies Co.,Inc.

Address before: 8 / F, block B, No. 11, Anxiang Beili, Chaoyang District, Beijing 100101

Applicant before: Beijing Jingwei HiRain Technologies Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant