CN114676035A - 一种测试用例生成方法、装置和电子设备 - Google Patents
一种测试用例生成方法、装置和电子设备 Download PDFInfo
- Publication number
- CN114676035A CN114676035A CN202110214339.1A CN202110214339A CN114676035A CN 114676035 A CN114676035 A CN 114676035A CN 202110214339 A CN202110214339 A CN 202110214339A CN 114676035 A CN114676035 A CN 114676035A
- Authority
- CN
- China
- Prior art keywords
- jump
- test
- condition
- path
- engineering
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本发明提供了一种测试用例生成方法、装置和电子设备,所述测试用例生成方法包括:获取用户输入的被测工程的工程状态和位于所述工程状态之间的工程跳转要素;所述工程跳转要素包括跳转条件,以及位于所述跳转条件之间的逻辑条件要素;所述跳转条件包括信号元素、逻辑符号、信号赋值和常量元素;获取所述工程状态之间的全部测试路径;根据预设跳转规则,对每一条所述测试路径上的所述工程跳转要素进行跳转组合,生成测试用例。本发明方案,可以实现自动全面的生成测试用例,减少编写测试用例时耗费时间长,提高效率,节约成本。
Description
技术领域
本发明涉及测试技术领域,特别涉及一种测试用例生成方法、装置和电子设备。
背景技术
在汽车电子控制器测试领域,对软件算法的验证测试一般通过硬件在环(Hardware-in-the-Loop,HIL)、安全完整性等级(Safety Integrity Level,SIL)等基于规格说明的测试进行的,即测试工程师根据开发工程师提供的测试需求,编写测试用例并进行测试,验证软件实际表现与功能需求是否一致。目前测试用例基本基于修正条件判定覆盖(Modified Condition/Decision Coverage,MC/DC),等价类分析,边界值分析等测试技术,由测试工程师人工编写完成。因此测试用例的质量和覆盖度,随着测试工程师的经验差异而不同,并且测试工程师大量的时间花费在了基于相同的测试技术编写测试用例这一重复性劳动上面,而无法提高测试深度,同时,测试工程师本身能力的提升也受到制约。
发明内容
本发明实施例提供一种测试用例生成方法、装置和电子设备,用以解决现有技术中,测试工程师编写测试用例时耗费时间长、效率低,以及浪费人力成本的问题。
为了解决上述技术问题,本发明实施例提供如下技术方案:
本发明实施例提供一种测试用例生成方法,包括:
获取用户输入的被测工程的工程状态和位于所述工程状态之间的工程跳转要素;所述工程跳转要素包括跳转条件,以及位于所述跳转条件之间的逻辑条件要素;所述跳转条件包括信号元素、逻辑符号、信号赋值和常量元素;
获取所述工程状态之间的全部测试路径;
根据预设跳转规则,对每一条所述测试路径上的所述工程跳转要素进行跳转组合,生成测试用例。
可选地,所述根据预设跳转规则,对每一条所述测试路径上的所述工程跳转要素进行跳转组合,生成测试用例,包括:
对所述跳转条件进行分析,生成条件组合列表;
对所述测试路径进行分析,生成路径组合列表;
按照所述预设跳转规则,对所述条件组合列表和所述路径组合列表进行组合,生成所述测试用例;
所述预设跳转规则为根据所述测试路径的数量、所述跳转条件的数量和所述跳转条件的结果生成所述测试用例的算法。
可选地,所述对所述跳转条件进行分析,生成条件组合列表之前,所述方法还包括:
对所述信号元素按照预设的数据格式进行处理,得到数据化信号;
对所述数据化信号进行特征分析,得到特征分类信号。
可选地,所述对所述跳转条件进行分析,生成条件组合列表,包括:
对所述常量元素中的时间元素进行分析,得到时间元素分析结果;
对所述逻辑条件要素进行分析,得到逻辑组合;
根据所述时间元素分析结果和所述逻辑组合,生成所述条件组合列表。
可选地,所述方法还包括:
根据引用规则,对所述跳转条件中的前置条件进行分析,得到前置条件用例;
将所述前置条件用例添加至所述测试用例。
可选地,所述对所述跳转条件进行分析,生成条件组合列表,还包括:
对所述特征分类信号进行等价类分析,得到等价分析结果;
将所述等价分析结果添加至所述条件组合列表。
可选地,所述对所述测试路径进行分析,生成路径组合列表,包括:
对所述测试路径进行环路处理,得到路径环路分析结果;
对所述测试路径进行引用关系分析,得到路径引用分析结果;
根据所述路径环路分析结果和所述路径引用分析结果,生成所述路径组合列表。
可选地,所述信号元素是所述用户由预先存储的信号库中调用的;所述信号库包括所述信号元素;
所述常量元素是所述用户由预先存储的常量库中调用的;所述常量库包括所述常量元素。
本发明实施例还提供一种测试用例生成装置,包括:
输入模块,用于获取用户输入的被测工程的工程状态和位于所述工程状态之间的工程跳转要素;所述工程跳转要素包括跳转条件,以及位于所述跳转条件之间的逻辑条件要素;所述跳转条件包括信号元素、逻辑符号、信号赋值和常量元素;
获取模块,用于获取所述工程状态之间的全部测试路径;
用例生成模块,用于根据预设跳转规则,对每一条所述测试路径上的所述工程跳转要素进行跳转组合,生成测试用例。
可选地,所述用例生成模块包括:
条件分析单元,用于对所述跳转条件进行分析,生成条件组合列表;
路径分析单元,用于对所述测试路径进行分析,生成路径组合列表;
用例生成单元,用于按照所述预设跳转规则,对所述条件组合列表和所述路径组合列表进行组合,生成所述测试用例;
所述预设跳转规则为根据所述测试路径的数量、所述跳转条件的数量和所述跳转条件的结果生成所述测试用例的算法。
可选地,所述用例生成模块还包括:
信号数据处理单元,用于对所述信号元素按照预设的数据格式进行处理,得到数据化信号;
信号特征分析单元,用于对所述数据化信号进行特征分析,得到特征分类信号。
可选地,所述条件分析单元包括:
时间条件分析子单元,用于对所述常量元素中的时间元素进行分析,得到时间元素分析结果;
逻辑条件分析子单元,用于对所述逻辑条件要素进行分析,得到逻辑组合;
条件列表生成子单元,用于根据所述时间元素分析结果和所述逻辑组合,生成所述条件组合列表。
可选地,所述条件分析单元还包括:
前置条件分析子单元,用于根据引用规则,对所述跳转条件中的前置条件进行分析,得到前置条件用例;
第一添加子单元,用于将所述前置条件用例添加至所述测试用例。
可选地,所述条件分析单元还包括:
等价类分析子单元,用于对所述特征分类信号进行等价类分析,得到等价分析结果;
第二添加单元,用于将所述等价分析结果添加至所述条件组合列表。
可选地,所述路径分析单元包括:
环路分析子单元,用于对所述测试路径进行环路处理,得到路径环路分析结果;
引用分析子单元,用于对所述测试路径进行引用关系分析,得到路径引用分析结果;
路径列表生成子单元,用于根据所述路径环路分析结果和所述路径引用分析结果,生成所述路径组合列表。
可选地,所述信号元素是所述用户由预先存储的信号库中调用的;所述信号库包括所述信号元素;
所述常量元素是所述用户由预先存储的常量库中调用的;所述常量库包括所述常量元素。
本发明实施例还提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如上任一项所述的测试用例生成方法的步骤。
本发明实施例还提供一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如上任一项所述的测试用例生成方法的步骤。
本发明的有益效果是:
本发明方案,通过获取用户输入的被测工程的工程状态和位于所述工程状态之间的工程跳转要素,并获取所述工程状态之间的全部测试路径,根据预设跳转规则,对每一条所述测试路径上的所述工程跳转要素进行跳转组合,生成测试用例,可以实现自动全面的生成测试用例,减少编写测试用例时耗费时间长,提高效率,节约成本。
附图说明
图1表示本发明实施例提供的测试用例生成方法的流程图;
图2表示本发明实施例提供的测试需求的流程图;
图3表示本发明实施例提供的环路示意图;
图4表示本发明实施例提供的测试用例生成装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明进行详细描述。
本发明针对现有技术中,测试工程师编写测试用例时耗费时间长、效率低,以及浪费人力成本的问题,提供一种测试用例生成方法、装置和电子设备。
如图1所示,本发明实施例提供一种测试用例生成方法,包括:
步骤101:获取用户输入的被测工程的工程状态和位于所述工程状态之间的工程跳转要素;所述工程跳转要素包括跳转条件,以及位于所述跳转条件之间的逻辑条件要素;所述跳转条件包括信号元素、逻辑符号、信号赋值和常量元素。
在本发明实施例中,用户输入的测试需求是通过工程状态和位于所述工程状态之间的工程跳转要素进行表达的,工程状态主要包括:进入工程的要素、退出工程的要素和保持工程运行的要素。工程跳转要素表示两个工程状态间的转换触发条件,工程跳转要素上可以添加多个跳转条件,每个跳转条件由信号元素、逻辑符号、信号赋值和常量元素构成,各个转换条件之间由逻辑条件要素,也就是逻辑运算符号连接。
需要说明的是,在用户输入测试需求时,一个工程状态可以通过一个工程跳转要素连接另一个工程状态,也可以通过多个工程跳转要素连接多个工程状态。
在本发明实施例中,提供一种基于模型的测试用例装置,也即测试用例自动生成工具,该测试用例自动生成工具由两部分组成:上位机界面、获取模块和用例生成模块,其中,上位机界面是用户的需求表达界面,表达测试的需求。上位机界面包括输入模块。
测试用例自动生成工具定义了一套领域特定语言(domain specific language,DSL),通过工具中的上位机界面中的输入模块,也就是用例设计模块,用户输入被测工程的工程状态和位于所述工程状态之间的工程跳转要素。
需要说明的是,上位机界面中的用例设计模块中用例设计界面主要图形化的界面,主要的构成元素为工程状态和位于工程状态之间的工程跳转要素,此外,还包括注释要素和跳转符号,用户可以通过图形化的语言,在用例设计界面表达出被测工程的工程状态和位于所述工程状态之间的工程跳转要素,也就是表达了测试需求。示例性的,用户通过用例设计模块,输入图形化的测试需求的流程图如图2所示。其中,State代表工程状态,两个工程状态之间的为工程跳转要素。
在用例设计模块进行用例设计时,工程状态要素和工程跳转要素可以支持的特殊语义包括:公式类,比如支持微积分、分段函数等复杂公式算法,查表类,比如支持二维表,时间类,引用类,比如引用同一个工程要素内的其他状态,存取类,比如对当前用例的某个信号变量进行申明、初始化、赋值、运算,对于变量的类型,***能自动的进行推导。
步骤102:获取所述工程状态之间的全部测试路径。
在本发明实施例中,将用户输入的工程状态和工程跳转要素全部展开,获取测试需求流程图中的全部测试路径。
在本发明实施例中,在用户通过用例设计界面输入所有的测试需求后,通过获取模块,得到用例设计界面上所有的测试路径,可以实现全面的覆盖用户的测试需求。
步骤103:根据预设跳转规则,对每一条所述测试路径上的所述工程跳转要素进行跳转组合,生成测试用例。
在本发明实施例中,根据测试路径上的工程跳转要素中的跳转条件,对每一条测试路径及其连接的工程状态进行跳转组合,生成全面覆盖用户测试需求的测试用例。
在本发明实施例中,通过用例生成模块,将用户输入的图形化语言进行解析,转化为计算机程序可识别的测试需求,根据预设的跳转规则,对每一条测试路径上的工程跳转要素与测试路径进行组合,生成测试用例。
本发明实施例,通过获取用户输入的被测工程的工程状态和位于所述工程状态之间的工程跳转要素,并获取所述工程状态之间的全部测试路径,根据预设跳转规则,对每一条所述测试路径上的所述工程跳转要素进行跳转组合,生成测试用例,可以实现自动全面的生成测试用例,减少编写测试用例时耗费时间长,提高效率,节约成本。
可选地,所述根据预设跳转规则,对每一条所述测试路径上的所述工程跳转要素进行跳转组合,生成测试用例,包括:
对所述跳转条件进行分析,生成条件组合列表;
对所述测试路径进行分析,生成路径组合列表;
按照所述预设跳转规则,对所述条件组合列表和所述路径组合列表进行组合,生成所述测试用例;
所述预设跳转规则为根据所述测试路径的数量、所述跳转条件的数量和所述跳转条件的结果生成所述测试用例的算法。
在本发明实施例中,对全部的工程状态间所有的工程跳转要素中的跳转条件进行分析,得到条件分析结果,根据所有的条件分析结果,生成条件组合列表。对所有的测试路径和测试路径上的工程状态进行展开,生成路径组合列表。根据预设的跳转规则,将条件组合列表和路径组合列表进行组合,生成测试用例。
在本发明实施例中,用例生成模块中包括条件分析单元,通过条件分析单元对工程跳转要素中的跳转条件进行分析,生成跳转条件用例,所有的跳转条件用例组成条件组合列表。
用例生成模块中还包括路径分析单元,通过路径分析单元,对每一条测试路径进行分析,然后将分析后的每一条路径进行展开,生成路径组合列表。
用例生成模块中还包括用例生成单元,通过用例生成单元,对条件组合列表和路径组合列表进行组合,生成测试用例。
下面具体说明,对条件组合列表和路径组合列表进行组合的过程:
1、获得路径组合列表中的所有的测试路径,用P1-Pm表示。2、对于测试路径P1中的初始的工程状态及其第一个工程跳转要素,也就是第一个跳转状态,根据条件组合列表得到第一个跳转状态的跳转条件用例,将跳转条件中结果为真(True)的跳转条件逐一分配给测试路径P1-Pm中存在该跳转条件的测试路径,将跳转条件用例中结果为假(False)的跳转条件分配给测试路径P1-Pm中任一存在该跳转条件的测试路径。若测试路径的跳转次数小于跳转条件用例的个数,则循环重复使用符合跳转条件的测试路径,此时测试路径的个数增加,大于m个(存在重复的测试路径,不存在重复的跳转条件,假设测试路径为n个);反之,则重复使用跳转条件,测试路径的个数不再增加,此时,所有存在该跳转状态的测试路径均已填充进测试用例。3、对于测试路径P1中的第一个跳转工程状态及其工程跳转要素,也就是跳转状态,同样先得到其跳转条件的集合,将集合与上述步骤2中得到的测试路径P1-Pn中所有存在该跳转条件的测试路径相结合。若测试路径的跳转次数小于跳转条件用例的个数,则循环重复使用符合跳转条件的测试路径,此时,测试路径的个数增加至大于n个;反之,则循环重复使用跳转条件,测试路径的个数不再增加,此时,所有存在该跳转状态的测试路径均已填充进测试用例。4、依次对测试路径P1中所有的工程跳转要素,也就是跳转状态,实施上述步骤2和步骤3中的步骤。5、依次对测试路径P2-Pm中的所有跳转状态实施上述步骤2、步骤3和步骤4中的步骤,其中,若某跳转状态在之前的步骤中执行过,则跳过,最终完成所有的测试用例组合,也就是测试点列表。
可选地,所述对所述跳转条件进行分析,生成条件组合列表之前,所述方法还包括:
对所述信号元素按照预设的数据格式进行处理,得到数据化信号;
对所述数据化信号进行特征分析,得到特征分类信号。
在本发明实施例中,信号元素主要包括常规信号和特殊信号,对信号元素按照预设的数据格式进行正规化处理,得到数据化信号,对数据化信号进行特征分析,其中,对常规信号进行特征分析后,输出信号的类型、精度、范围和误差等特征,对特殊信号进行分析后,输出查表、公式、逻辑等特殊信号特征,包括:索引用信号特征、查表值、MAP表及公式的特征位置等。
在本发明实施例中,用例生成模块中还包括信号数据处理单元和信号特征分析单元,在通过信号特征分析单元对信号元素进行特征分析之前,需要通过信号数据处理单元按照预设的数据格式对信号元素进行正规化处理,可以从dbc文件或者硬线接口文件等输入文件中获取各种信号元素的信息,定义数据格式来对这些信号元素进行处理和存储,如表1所示,表1为信号元素正规化示例表。
表1信号元素正规化示例表
将正规化处理之后的信号元素的属性保存为JSON格式。
可选地,所述对所述跳转条件进行分析,生成条件组合列表,包括:
对所述常量元素中的时间元素进行分析,得到时间元素分析结果;
对所述逻辑条件要素进行分析,得到逻辑组合;
根据所述时间元素分析结果和所述逻辑组合,生成所述条件组合列表。
在本发明实施例中,对跳转条件进行分析主要包括对常量元素中的时间元素进行分析以及对逻辑条件要素进行分析,根据时间元素分析结果和逻辑条件要素的分析结果,生成条件组合列表。
其中,对时间元素进行分析,主要是分析跳转条件是否受时间的限制。对逻辑条件要素进行分析,主要是利用修正判定条件覆盖(Modified Condition Decision Coverage,MCDC)准则和条件影响性进行分析。
在本发明实施例中,条件分析单元用于对跳转条件中的时间元素、逻辑条件要素进行分析。
条件分析单元中的时间条件分析子单元用于对时间元素进行分析,比如在工程状态1满足跳转条件A&B且保持10秒后,跳转至工程状态2,可选地,时间元素一般包括超时计数器大于多少秒、某超时计数器等于多少秒。
条件分析单元中的逻辑条件分析子单元用于对逻辑条件要素进行分析,利用修正判定条件覆盖(Modified Condition Decision Coverage,MCDC)准则和条件影响性得到转化条件的逻辑组合。
条件分析单元中的条件列表生成子单元根据时间元素分析结果和逻辑组合,得到条件组合列表。
可选地,所述方法还包括:
根据引用规则,对所述跳转条件中的前置条件进行分析,得到前置条件用例;
将所述前置条件用例添加至所述测试用例。
在本发明实施例中,跳转条件中还包括一类特殊的条件,前置条件。在本实施例中,设置了如下几种前置条件的设置与引用方式:1、引用外部生成的测试用例Excel表作为前置条件,在用例设计界面上通过设置节点属性来导入该Excel表。2、引用框图来作为前置条件。引用前置条件的步骤为:引用当前或者其他功能描述框图中的某个程序状态作为当前测试功能的前置步骤,使用该程序状态的名称作为索引来进行选择,在触发该前置步骤时,将按照该引用的流程步骤展开生成前置条件用例,将该前置条件用例添加至测试用例。
在本发明实施例中,条件分析单元中的前置条件分析子单元还用于对跳转条件中的前置条件进行分析,第一添加子单元,也就是用例添加子单元将分析生成后的前置条件用例添加至所述测试用例。
可选地,所述对所述跳转条件进行分析,生成条件组合列表,还包括:
对所述特征分类信号进行等价类分析,得到等价分析结果;
将所述等价分析结果添加至所述条件组合列表。
在本发明实施例中,对跳转条件进行分析还包括对特征分类信号进行等价类分析,等价类分析的主要目的是减少测试量。对于等价类划分的对象包括特征分类信号中的布尔信号、连续信号和枚举信号。
在本发明实施例中,条件分析单元中的等价类分析子单元对特征分类信号进行等价类分析,将输入域划分为若干个等价的部分,且每个等价类的域中,各个取值对于测试的结果的影响是相同的。由于等价性,测试时在某个等价类中选取有代表性的少量数据进行测试即可。
在本发明实施例中,对于布尔类型的信号,其有效等价类为使该跳转条件为真的信号取值,无效等价类为使该跳转条件为假的信号取值。
对于离散型的枚举信号,其有效等价类为使该跳转条件为真的信号取值子集合,无效等价类为使该跳转条件为假的信号取值子集合。当子集合元素数目≤5的时候,子集合中的每个元素都进行测试;当子集合元素数目>5的时候,为减少用例数量,手动设置或自动随机选取其中的5以下的元素进行测试。
对于连续信号,其有效等价类为使该跳转条件为真的信号取值子集合,无效等价类为使该跳转条件为假的信号取值子集合。连续信号包括IO模拟输入量、float型CAN信号以及时间变量等。由于取值是连续的,因此需要离散化。离散化的方法是,通过选取指定数据域的上点(边界上的点)、离点(离上点最近的点,一般通过边界点加/减一个精度或步长获取)或内点(域内的任意点)来选取离散化的值。
一般而言对于一个离散信号,“上点”和“离点”规则固定,而“内点”可以有无数多个选择。在本发明实施例中使用了以下规则:“内点”使用连续信号有效值范围两个边界值的中间点,若该连续信号有效值范围的一个边界点与该信号的取值范围相同,则使用该边界点与其对应的物理最大/小值中间点;若该连续信号取值范围为无穷大(时间信号),则只对其边界值进行测试。
可选地,所述对所述测试路径进行分析,生成路径组合列表,包括:
对所述测试路径进行环路处理,得到路径环路分析结果;
对所述测试路径进行引用关系分析,得到路径引用分析结果;
根据所述路径环路分析结果和所述路径引用分析结果,生成所述路径组合列表。
在本发明实施例中,对测试路径进行分析主要包括对测试路径中的环路进行分析,以及对引用关系进行分析。其中,对环路进行分析的主要目的是检查测试路径中是否存在环或环嵌套的路径,环的位置以及环涉及的工程状态的番号。对引用关系进行分析主要是通过对逻辑信号进行检查,判断判断引用步骤是否与之前的操作冲突。
在本发明实施例中,路径分析单元主要包括环路分析子单元、引用分析子单元和路径列表生成子单元。
环路分析子单元主要用于对用例设计界面上,用户输入的图形化的测试需求的流程图中是否存在环路或者环嵌套路径,环路的位置以及涉及的工程状态的标号进行检查。请参阅图3,测试需求的流程图存在如图3所示的环路,工程状态A→工程状态C→工程状态D→工程状态A构成了一个闭环,如果不加以限制,根据回溯算法,会形成一个死循环,可选地,可以对环路的循环加一个默认的最大循环值,比如1000,以防止算法无法终结,还可以提供一个配置给用户,让用户事先手动设置某个环路的循环阈值。
通过引用分析子单元,对测试需求的流程图中是否存在引用步骤进行分析。
通过路径列表生成子单元,在常规路径覆盖基础上扩展加入路径环路分析结果以及路径引用分析结果,输出最终的路径组合。
可选地,所述信号元素是所述用户由预先存储的信号库中调用的;所述信号库包括所述信号元素;
所述常量元素是所述用户由预先存储的常量库中调用的;所述常量库包括所述常量元素。
本发明实施例中,测试用例自动生成工具中的上位机界面还包括信号管理模块和常量管理模块。
其中,信号管理模块可以对信号库进行管理,用户可以在信号库中调用信号元素,还可以通过信号管理模块对信号元素进行新建、存储、编辑、删除、索引,删除功能支持批量操作,新建可以通过手动添加的方式建立。
信号库还支持信号元素的导入及导出功能。信号库的导入功能支持对于以下文件格式的自动解析:dbc文件、a2l文件。
另外,在设计用例需要输入信号元素时,输出窗口会自动提示最近用到的信号列表或本工程中使用到的信号元素的列表。
每种信号元素包括以下等属性:变量名、中文描述名、类型(CAN、CCP、IO等)、数据类型(布尔、枚举、连续)、取值、精度、最大值、最小值、允许判定误差、响应延迟时间、发送/接受等。
需要说明的是,对于同一个车型或者同一次软件测试过程,被测控制器和测试环境中有一些参数是相对固定不变的,例如空调的允许开启温度,可以通过上位机界面的常量管理模块中的常量库进行调用,且常量管理模块还支持对常量进行的新建、存储、编辑、删除、索引功能,删除功能支持批量操作,且常量库支持批量导入及导出功能。
需要说明的是,测试用例自动生成工具中的上位机界面还包括工程管理模块,用户通过工程管理模块对工程文件进行目录式的管理,可以管理多个工程文件。工程可以新建、删除、导入、导出及切换。用户设计的工程,包括信号、常量、流程图等相关信息,可以保存为独立的工程文件,并具备导入导出的功能。其他用户在导入该工程文件后,可以正常使用工程文件的流程图及信号信息,不需要进行其他额外操作。
在一个工程里可以有多个用例设计,且使用多层次的目录结构进行分类,便于对同一个功能模块的不同子功能用例进行管理。
本发明实施例,通过获取用户输入的被测工程的工程状态和位于所述工程状态之间的工程跳转要素,并获取所述工程状态之间的全部测试路径,根据预设跳转规则,对每一条所述测试路径上的所述工程跳转要素进行跳转组合,生成测试用例,可以实现自动全面的生成测试用例,减少编写测试用例时耗费时间长,提高效率,节约成本。
如图4所示,本发明实施例还提供一种测试用例生成装置,包括:
输入模块401,用于获取用户输入的被测工程的工程状态和位于所述工程状态之间的工程跳转要素;所述工程跳转要素包括跳转条件,以及位于所述跳转条件之间的逻辑条件要素;所述跳转条件包括信号元素、逻辑符号、信号赋值和常量元素;
获取模块402,用于获取所述工程状态之间的全部测试路径;
用例生成模块403,用于根据预设跳转规则,对每一条所述测试路径上的所述工程跳转要素进行跳转组合,生成测试用例。
本发明实施例提供的测试用例生成装置,通过获取用户输入的被测工程的工程状态和位于所述工程状态之间的工程跳转要素,并获取所述工程状态之间的全部测试路径,根据预设跳转规则,对每一条所述测试路径上的所述工程跳转要素进行跳转组合,生成测试用例,可以实现自动全面的生成测试用例,减少编写测试用例时耗费时间长,提高效率,节约成本。
可选地,所述用例生成模块403包括:
条件分析单元,用于对所述跳转条件进行分析,生成条件组合列表;
路径分析单元,用于对所述测试路径进行分析,生成路径组合列表;
用例生成单元,用于按照所述预设跳转规则,对所述条件组合列表和所述路径组合列表进行组合,生成所述测试用例;
所述预设跳转规则为根据所述测试路径的数量、所述跳转条件的数量和所述跳转条件的结果生成所述测试用例的算法。
可选地,所述用例生成模块403还包括:
信号数据处理单元,用于对所述信号元素按照预设的数据格式进行处理,得到数据化信号;
信号特征分析单元,用于对所述数据化信号进行特征分析,得到特征分类信号。
可选地,所述条件分析单元包括:
时间条件分析子单元,用于对所述常量元素中的时间元素进行分析,得到时间元素分析结果;
逻辑条件分析子单元,用于对所述逻辑条件要素进行分析,得到逻辑组合;
条件列表生成子单元,用于根据所述时间元素分析结果和所述逻辑组合,生成所述条件组合列表。
可选地,所述条件分析单元还包括:
前置条件分析子单元,用于根据引用规则,对所述跳转条件中的前置条件进行分析,得到前置条件用例;
第一添加子单元,用于将所述前置条件用例添加至所述测试用例。
可选地,所述条件分析单元还包括:
等价类分析子单元,用于对所述特征分类信号进行等价类分析,得到等价分析结果;
第二添加单元,用于将所述等价分析结果添加至所述条件组合列表。
可选地,所述路径分析单元包括:
环路分析子单元,用于对所述测试路径进行环路处理,得到路径环路分析结果;
引用分析子单元,用于对所述测试路径进行引用关系分析,得到路径引用分析结果;
路径列表生成子单元,用于根据所述路径环路分析结果和所述路径引用分析结果,生成所述路径组合列表。
可选地,所述信号元素是所述用户由预先存储的信号库中调用的;所述信号库包括所述信号元素;
所述常量元素是所述用户由预先存储的常量库中调用的;所述常量库包括所述常量元素。
需要说明的是,本发明实施例提供的测试用例生成装置是能够执行上述的测试用例生成方法的装置,则上述的测试用例生成方法的所有实施例均适用于该装置,且能达到相同或者相似的技术效果。
本发明实施例还提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如上任一项所述的测试用例生成方法的步骤。
本发明实施例还提供一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如上任一项所述的测试用例生成方法的步骤。
以上所述的是本发明的优选实施方式,应当指出对于本技术领域的普通人员来说,在不脱离本发明所述的原理前提下还可以作出若干改进和润饰,这些改进和润饰也在本发明的保护范围内。
Claims (12)
1.一种测试用例生成方法,其特征在于,包括:
获取用户输入的被测工程的工程状态和位于所述工程状态之间的工程跳转要素;所述工程跳转要素包括跳转条件,以及位于所述跳转条件之间的逻辑条件要素;所述跳转条件包括信号元素、逻辑符号、信号赋值和常量元素;
获取所述工程状态之间的全部测试路径;
根据预设跳转规则,对每一条所述测试路径上的所述工程跳转要素进行跳转组合,生成测试用例。
2.根据权利要求1所述的测试用例生成方法,其特征在于,所述根据预设跳转规则,对每一条所述测试路径上的所述工程跳转要素进行跳转组合,生成测试用例,包括:
对所述跳转条件进行分析,生成条件组合列表;
对所述测试路径进行分析,生成路径组合列表;
按照所述预设跳转规则,对所述条件组合列表和所述路径组合列表进行组合,生成所述测试用例;
所述预设跳转规则为根据所述测试路径的数量、所述跳转条件的数量和所述跳转条件的结果生成所述测试用例的算法。
3.根据权利要求2所述的测试用例生成方法,其特征在于,所述对所述跳转条件进行分析,生成条件组合列表之前,所述方法还包括:
对所述信号元素按照预设的数据格式进行处理,得到数据化信号;
对所述数据化信号进行特征分析,得到特征分类信号。
4.根据权利要求2所述的测试用例生成方法,其特征在于,所述对所述跳转条件进行分析,生成条件组合列表,包括:
对所述常量元素中的时间元素进行分析,得到时间元素分析结果;
对所述逻辑条件要素进行分析,得到逻辑组合;
根据所述时间元素分析结果和所述逻辑组合,生成所述条件组合列表。
5.根据权利要求4所述的测试用例生成方法,其特征在于,所述方法还包括:
根据引用规则,对所述跳转条件中的前置条件进行分析,得到前置条件用例;
将所述前置条件用例添加至所述测试用例。
6.根据权利要求3所述的测试用例生成方法,其特征在于,所述对所述跳转条件进行分析,生成条件组合列表,还包括:
对所述特征分类信号进行等价类分析,得到等价分析结果;
将所述等价分析结果添加至所述条件组合列表。
7.根据权利要求2所述的测试用例生成方法,其特征在于,所述对所述测试路径进行分析,生成路径组合列表,包括:
对所述测试路径进行环路处理,得到路径环路分析结果;
对所述测试路径进行引用关系分析,得到路径引用分析结果;
根据所述路径环路分析结果和所述路径引用分析结果,生成所述路径组合列表。
8.根据权利要求1所述的测试用例生成方法,其特征在于,所述信号元素是所述用户由预先存储的信号库中调用的;所述信号库包括所述信号元素;
所述常量元素是所述用户由预先存储的常量库中调用的;所述常量库包括所述常量元素。
9.一种测试用例生成装置,其特征在于,包括:
输入模块,用于获取用户输入的被测工程的工程状态和位于所述工程状态之间的工程跳转要素;所述工程跳转要素包括跳转条件,以及位于所述跳转条件之间的逻辑条件要素;所述跳转条件包括信号元素、逻辑符号、信号赋值和常量元素;
获取模块,用于获取所述工程状态之间的全部测试路径;
用例生成模块,用于根据预设跳转规则,对每一条所述测试路径上的所述工程跳转要素进行跳转组合,生成测试用例。
10.根据权利要求9所述的测试用例生成装置,其特征在于,所述用例生成模块包括:
条件分析单元,用于对所述跳转条件进行分析,生成条件组合列表;
路径分析单元,用于对所述测试路径进行分析,生成路径组合列表;
用例生成单元,用于按照所述预设跳转规则,对所述条件组合列表和所述路径组合列表进行组合,生成所述测试用例;
所述预设跳转规则为根据所述测试路径的数量、所述跳转条件的数量和所述跳转条件的结果生成所述测试用例的算法。
11.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至8中任一项所述的测试用例生成方法的步骤。
12.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至8中任一项所述的测试用例生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110214339.1A CN114676035A (zh) | 2021-02-25 | 2021-02-25 | 一种测试用例生成方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110214339.1A CN114676035A (zh) | 2021-02-25 | 2021-02-25 | 一种测试用例生成方法、装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114676035A true CN114676035A (zh) | 2022-06-28 |
Family
ID=82069911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110214339.1A Pending CN114676035A (zh) | 2021-02-25 | 2021-02-25 | 一种测试用例生成方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114676035A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115756996A (zh) * | 2023-01-09 | 2023-03-07 | 苏州浪潮智能科技有限公司 | 一种芯片测试方法、装置、设备及可读存储介质 |
CN117851254A (zh) * | 2024-01-09 | 2024-04-09 | 浙江大学 | 一种基于符号执行和路径数缩减的mc/dc覆盖用例生成方法 |
-
2021
- 2021-02-25 CN CN202110214339.1A patent/CN114676035A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115756996A (zh) * | 2023-01-09 | 2023-03-07 | 苏州浪潮智能科技有限公司 | 一种芯片测试方法、装置、设备及可读存储介质 |
CN117851254A (zh) * | 2024-01-09 | 2024-04-09 | 浙江大学 | 一种基于符号执行和路径数缩减的mc/dc覆盖用例生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Enoiu et al. | Automated test generation using model checking: an industrial evaluation | |
US6321186B1 (en) | Method and apparatus for integrated circuit design verification | |
US9904524B2 (en) | Method and device for visually implementing software code | |
US20140013313A1 (en) | Editor/Development Tool for Dataflow Programs | |
US8732676B1 (en) | System and method for generating unit test based on recorded execution paths | |
CN114676035A (zh) | 一种测试用例生成方法、装置和电子设备 | |
CN103052943A (zh) | 源代码转换方法和源代码转换程序 | |
US20110145799A1 (en) | Path-sensitive dataflow analysis including path refinement | |
US10915302B2 (en) | Identification and visualization of associations among code generated from a model and sources that affect code generation | |
CN111026670B (zh) | 测试用例的生成方法、测试用例的生成装置及存储介质 | |
Ben-Amram et al. | Complexity of Bradley-Manna-Sipma lexicographic ranking functions | |
Xie et al. | Model checking for an executable subset of UML | |
US5353433A (en) | Method and apparatus for organizing and analyzing timing information | |
CN111381828A (zh) | 生成代码文件的语法树的方法、装置及电子设备 | |
CN117369521A (zh) | 用于无人机决策的行为树模型路径生成方法、装置及设备 | |
CN111581101A (zh) | 软件模型的测试方法、装置、设备和介质 | |
US9971676B2 (en) | Systems and methods for state based test case generation for software validation | |
CN111381826A (zh) | 生成代码文件的语法树的方法、装置及电子设备 | |
US8954307B1 (en) | Chained programming language preprocessors for circuit simulation | |
Conrad et al. | Graph transformations for model-based testing | |
Zündorf | A heuristic for the subgraph isomorphism problem in executing PROGRES | |
CN111381827A (zh) | 生成代码文件的语法树的方法、装置及电子设备 | |
CN111381814A (zh) | 生成代码文件的语法树的方法、装置及电子设备 | |
Legay et al. | Automatic Verification of LLVM Code | |
US7185318B1 (en) | Method, system and computer program for comparing a first specification with a second specification |
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 |