CN105955882A - 一种迭代学习模型行为相似性的测试用例生成方法和装置 - Google Patents
一种迭代学习模型行为相似性的测试用例生成方法和装置 Download PDFInfo
- Publication number
- CN105955882A CN105955882A CN201610268442.3A CN201610268442A CN105955882A CN 105955882 A CN105955882 A CN 105955882A CN 201610268442 A CN201610268442 A CN 201610268442A CN 105955882 A CN105955882 A CN 105955882A
- Authority
- CN
- China
- Prior art keywords
- behavior
- test
- module
- case
- average
- 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.)
- Granted
Links
- 230000006399 behavior Effects 0.000 title claims abstract description 244
- 238000012360 testing method Methods 0.000 title claims abstract description 164
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000010586 diagram Methods 0.000 claims abstract description 8
- 230000007704 transition Effects 0.000 claims description 70
- 230000008859 change Effects 0.000 claims description 11
- 230000009471 action Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 12
- 230000006870 function Effects 0.000 description 16
- 230000000694 effects Effects 0.000 description 5
- 230000002068 genetic effect Effects 0.000 description 3
- 235000000332 black box Nutrition 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011990 functional testing Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种迭代学习模型行为相似性的测试用例生成方法和装置。本发明首先根据系统状态模型构建系统状态机图,然后根据系统状态机图、已有的测试用例集、已有的测试用例集相应的测试结果生成新的测试用例集;再然后执行生成的测试用例,并记录测试结果;再将测试结果更新到系统状态机图中,并更新已有测试用例集,最后重复上述过程直到满足停止条件。本发明通过基于历史信息的启发式规则提高每次迭代时生成的测试用例的质量,以减少在测试用例空间中探索的次数,从而提高测试过程的效率。
Description
技术领域
本发明涉及计算机基于模型测试方法中的测试用例筛选策略。
背景技术
基于模型的测试,Model-based Testing,是一种可以完全或部分的利用模型自动生成测试用例的方法。
应用这种方法,首先是需要对待测试软件系统建模,将待测试系统的目标行为、目标环境等目标对象,使用模型(一般用UML标准生成模型)表示出来,而后在模型的基础上,以模型规定的系统规约组合模型元素生成实际的测试用例。这样的做法,使用的是待测系统的抽象,只是片面的表示系统的中人们有兴趣的行为;以这种方式获取的测试用例是与模型抽象在同一层次的、对于待测系统的功能性测试用例,并且,这种情况下的测试用例通常也是抽象的测试用例,仍需要对应转换成可执行测试用例,最终才能实际运行。这种方法一般被视为黑盒测试方法的一种。
这种方法适用于测试大型复杂系统。这种方法通过抽象模型可以帮助简化系统,达到关注测试点、忽略非相关部分的效果,通过模型生成测试用例,可以使得对复杂系统的测试用例生成达到自动或半自动化,大大减少人力成本。
然而,随着互联网和软件系统的不断发展壮大,越来越多的系统特别是以物理信息融合系统为代表的一类对网络有相当依赖性的系统,在进行系统测试的过程中不得不将网络这样的复杂网络环境因素考虑进去,如此,即使使用抽象的方法,包含了复杂环境因素的系统模型会依然巨大,诸多测试系统的输入情况使得系统的测试用例空间无比巨大。
生成测试用例来对待测系统进行测试,实质上就是从由系统输入组成的系统测试用例空间中选择测试用例的过程。对于当下考虑复杂网络环境因素的待测试系统,其巨大的测试用例空间使得我们遍历所有的测试用例进行测试的方法变得非常不现实,那么,如何在一个测试用例空间中有目的的选择部分测试用例却能够达到或者逼近遍历全部测试用例的效果,就成了当前亟待解决的问题。总的来说,解决这个问题就是要求我们应用一定的指导方式从测试用例空间选择部分测试用路生成出来。
这样问题的解决可以大大帮助我们提升使用基于模型的测试用例生成方法的效率,使得当下包含复杂网络环境的实际系统生成测试用例测试的过程更具有现实可行性。
发明内容
本发明所要解决的问题是。
为解决上述问题,本发明采用的方案如下:
根据本发明的一种迭代学习模型行为相似性的测试用例生成方法,包括以下步骤:
步骤1,获取待测系统的系统状态模型,然后根据系统状态模型构建系统状态机图;
步骤2,根据系统状态机图、已有的测试用例集、已有的测试用例集相应的测试结果生成新的测试用例集;
步骤3,执行步骤2生成的测试用例集,并记录测试结果;
步骤4,将测试结果更新到所述系统状态机图中,并更新已有的测试用例集;
步骤5,重复步骤2至4,直到满足停止条件;
所述系统状态机图为通过所述系统状态模型描述的系统行为状态信息;
所述步骤2包括:
步骤21,将所述系统状态机图拆分成状态变迁对,组成系统状态变迁对集合Sys_set;并将将所述已有的测试用例集中的测试用例根据其相应的测试结果拆分成用例行为对,组成用例行为对集合Tc_set;
步骤22,根据系统状态变迁对集合Sys_set和用例行为对集合Tc_set生成预测行为对集合Prd_set;
步骤23,计算预测行为对集合Prd_set中的行为对与系统状态变迁对集合Sys_set中的各个行为对之间的平均相似度S;
步骤24,计算预测行为对集合Prd_set中的行为对与用例行为对集合Tc_set中的各个行为对之间的平均相异度D;
步骤25,假如平均相似度S和平均相异度D之和大于阈值Threshold,则从预测行为对集合Prd_set中删除该行为对;
步骤26,根据预测行为对集合Prd_set中剩余的行为对生成相应的测试用例;
所述系统状态变迁对集合Sys_set、用例行为对集合Tc_set和预测行为对集合Prd_set均为行为对的集合;所述行为对至少包含State_src、State_dst和Transition;其中State_src为源状态信息,State_dst为目标状态信息,Transition为源状态至目标状态的行为变迁信息。
进一步,根据本发明的迭代学习模型行为相似性的测试用例生成方法,所述步骤23包括如下步骤:
步骤231,计算预测行为对集合Prd_set中的行为对与系统状态变迁对集合Sys_set中的各个行为对之间的欧拉距离,得到距离数组{Disti|i∈[1..Nsys_set]};其中,Nsys_set为系统状态变迁对集合Sys_set中行为对的数目;
步骤232,对距离数组{Disti|i∈[1..Nsys_set]}中的距离值进行算术平均,得到距离平均值Dist_average;
步骤233,计算平均相似度S=1-距离平均值Dist_average。
进一步,根据本发明的迭代学习模型行为相似性的测试用例生成方法,所述步骤24包括如下步骤:
步骤241,计算预测行为对集合Prd_set中的行为对与用例行为对集合Tc_set中的各个行为对之间的欧拉距离,得到距离数组{Disti|i∈[1..Ntc_set]};其中,Ntc_set为用例行为对集合Tc_set中行为对的数目;
步骤242,对距离数组{Disti|i∈[1..Nsys_set]}中的距离值进行算术平均,得到平均相异度D。
根据本发明的一种迭代学习模型行为相似性的测试用例生成装置,包括:
模块1,用于获取待测系统的系统状态模型,然后根据系统状态模型构建系统状态机图;
模块2,用于根据系统状态机图、已有的测试用例集、已有的测试用例集相应的测试结果生成新的测试用例集;
模块3,用于执行模块2生成的测试用例集,并记录测试结果;
模块4,用于将测试结果更新到所述系统状态机图中,并更新已有的测试用例集;
模块5,用于重复调用模块2至4,直到满足停止条件;
所述系统状态机图为通过所述系统状态模型描述的系统行为状态信息;
所述模块2包括:
模块21,用于将所述系统状态机图拆分成状态变迁对,组成系统状态变迁对集合Sys_set;并将将所述已有的测试用例集中的测试用例根据其相应的测试结果拆分成用例行为对,组成用例行为对集合Tc_set;
模块22,根据系统状态变迁对集合Sys_set和用例行为对集合Tc_set生成预测行为对集合Prd_set;
模块23,用于计算预测行为对集合Prd_set中的行为对与系统状态变迁对集合Sys_set中的各个行为对之间的平均相似度S;
模块24,用于计算预测行为对集合Prd_set中的行为对与用例行为对集合Tc_set中的各个行为对之间的平均相异度D;
模块25,用于假如平均相似度S和平均相异度D之和大于阈值Threshold,则从预测行为对集合Prd_set中删除该行为对;
模块26,用于根据预测行为对集合Prd_set中剩余的行为对生成相应的测试用例;
所述系统状态变迁对集合Sys_set、用例行为对集合Tc_set和预测行为对集合Prd_set均为行为对的集合;所述行为对至少包含State_src、State_dst和Transition;其中State_src为源状态信息,State_dst为目标状态信息,Transition为源状态至目标状态的行为变迁信息。
进一步,根据本发明的迭代学习模型行为相似性的测试用例生成装置,所述模块23包括如下模块:
模块231,用于计算预测行为对集合Prd_set中的行为对与系统状态变迁对集合Sys_set中的各个行为对之间的欧拉距离,得到距离数组{Disti|i∈[1..Nsys_set]};其中,Nsys_set为系统状态变迁对集合Sys_set中行为对的数目;
模块232,用于对距离数组{Disti|i∈[1..Nsys_set]}中的距离值进行算术平均,得到距离平均值Dist_average;
模块233,用于计算平均相似度S=1-距离平均值Dist_average。
进一步,根据本发明的迭代学习模型行为相似性的测试用例生成装置,所述模块24包括如下模块:
模块241,用于计算预测行为对集合Prd_set中的行为对与用例行为对集合Tc_set中的各个行为对之间的欧拉距离,得到距离数组{Disti|i∈[1..Ntc_set]};其中,Ntc_set为用例行为对集合Tc_set中行为对的数目;
模块242,用于对距离数组{Disti|i∈[1..Nsys_set]}中的距离值进行算术平均,得到平均相异度D。
本发明的技术效果如下:
1. 本发明通过基于历史信息的启发式规则提高每次迭代时生成的测试用例的质量,以减少在测试用例空间中探索的次数,从而提高测试过程的效率。
2.在依赖网络的待测系统上应用本发明,可以较快得完成网络环境对系统影响的测试,最终从巨大的测试用例空间中选取到足够有代表性的测试用例,由这些测试用例可以定位出系统在网络扰动下的一些目标问题,从而为从基于模型测试的黑盒测试角度定位出复杂系统中问题大大提高效率,节约测试成本,能够在有限的资源消耗下完成有效的测试工作。
具体实施方式
下面对本发明做进一步详细说明。
步骤1,也即前述模块1所实现的功能,获取待测系统的系统状态模型,然后根据系统状态模型构建系统状态机图。步骤1是本发明的系统初始化步骤。本实施例中,系统状态模型由待测系统的提供者提供,通过UML标准中关于状态机的描述方法进一步表述。假如待测系统需要考虑网络环境的影响,则需要对由待测系统的提供者提供的系统状态模型进行扩充,此时扩充后的系统状态模型即为本发明获取的系统状态模型。需要说明的是,“获取待测系统的系统状态模型”中的“获取”表示是“系统状态模型”是本发明的输入,至于“系统状态模型”如何生成或者是否需要扩充并不是本发明所讨论的范畴。系统状态机图用于标记待测系统实际运行状态,由系统状态模型和系统实际状态变迁信息组成。系统状态机图中的系统实际状态变迁信息通过系统状态模型结构化表述。具体来说,系统状态机图是由状态节点State和行为变迁Transition组成的有向图。状态节点State用于表示系统某个特定的状态。行为变迁Transition是状态节点State之间的有方向的连线,用于表示系统从一个状态变迁至另一个状态所需要的触发条件Trigger、约束条件Guard Condition等信息。系统实际状态变迁信息标记于系统状态模型。系统实际状态变迁信息所标记每个系统的状态是系统状态模型的状态节点的一个实例,该实例即为系统状态机图中的状态节点State。
步骤2,也即前述模块2所实现的功能,步骤2,根据系统状态机图、已有的测试用例集、已有的测试用例集相应的测试结果生成新的测试用例集。步骤2的输入至少包括以下三部分:系统状态机图、已有的测试用例集以及已有的测试用例集相应的测试结果。步骤2的输出为新的测试用例集。步骤2具体来说包括以下步骤:
步骤21,也即前述模块21所实现的功能,将所述系统状态机图拆分成状态变迁对,组成系统状态变迁对集合Sys_set;并将所述已有的测试用例集中的测试用例根据其相应的测试结果拆分成用例行为对,组成用例行为对集合Tc_set。
步骤22,也即前述模块22所实现的功能,根据系统状态变迁对集合Sys_set和用例行为对集合Tc_set生成预测行为对集合Prd_set。
步骤23,也即前述模块23所实现的功能,计算预测行为对集合Prd_set中的行为对与系统状态变迁对集合Sys_set中的各个行为对之间的平均相似度S。
步骤24,也即前述模块24所实现的功能,计算预测行为对集合Prd_set中的行为对与用例行为对集合Tc_set中的各个行为对之间的平均相异度D。
步骤25,也即前述模块25所实现的功能,假如平均相似度S和平均相异度D之和大于阈值Threshold,则从预测行为对集合Prd_set中删除该行为对。
步骤26,也即前述模块26所实现的功能,根据预测行为对集合Prd_set中剩余的行为对生成相应的测试用例。
上述系统状态变迁对集合Sys_set、用例行为对集合Tc_set和预测行为对集合Prd_set均为行为对的集合。行为对至少包含State_src、State_dst和Transition。其中,State_src为源状态信息,State_dst为目标状态信息,Transition为源状态至目标状态的行为变迁信息。这里的系统状态变迁对集合Sys_set即为系统状态机图的数组化表述。也就是步骤21中的“将所述系统状态机图拆分成状态变迁对,组成系统状态变迁对集合Sys_set”的过程为:
将系统状态机图中行为变迁Transition的起始的状态节点State标记为State_src,行为变迁Transition的终止的状态节点State标记为State_dst,由此组成以Transition为唯一标识的行为对数组作为系统状态变迁对集合Sys_set。
步骤21中“将已有的测试用例集中的测试用例根据其相应的测试结果拆分成用例行为对,组成用例行为对集合Tc_set”的过程测试用例执行记录进行,也就是:
将测试用例执行前的系统状态作为用例行为对的源状态State_src,测试用例执行后的系统状态作为用例行为对的目标状态State_dst,将执行该测试用例作为行为变迁Transition的触发条件,由此组成行为对数组作为用例行为对集合Tc_set。测试用例执行前的系统状态也即是测试用例的输入。
步骤22的输入是系统状态变迁对集合Sys_set和用例行为对集合Tc_set。如前所述,系统状态变迁对集合Sys_set和用例行为对集合Tc_set中的元素均为由State_src、State_dst和Transition组成的行为对,而预测行为对集合Prd_set中的各个元素也是行为对。也就是,步骤22中,通过一些已有的行为对生成出一些新的行为对。过程也是一种遗传过程,可采用遗传算法实现。由于最终的根据行为对生成的测试用例主要依赖于行为对中的源状态信息State_src,因此生成的新的行为对只要生成新的行为对的源状态信息State_src即可。步骤22可以采用的遗传算法很多。本实施例给出了一种基于随机变异的方法,具体如下:首先从输入的行为对集合中选取一行为对;然后将构建该行为对由State_src和State_dst的向量空间,并从该向量空间中随机选取一个点作为新的行为对的State_src,新的行为对的State_dst和Transition则拷贝原来的行为对。比如,某行为对的State_src为{s1,s2,s3},State_dst为{d1,d2,d3 };则随机获得的新的行为对的State_src={N1,N2,N3 },其中N1为s1和d1之间的随机数,N2为s2和d2之间的随机数,N3为s3和d3之间的随机数。
步骤23包括如下步骤:
步骤231,也即前述模块231所实现的功能,计算预测行为对集合Prd_set中的行为对与系统状态变迁对集合Sys_set中的各个行为对之间的欧拉距离,得到距离数组{Disti|i∈[1..Nsys_set]};其中,Nsys_set为系统状态变迁对集合Sys_set中行为对的数目;
步骤232,也即前述模块232所实现的功能,对距离数组{Disti|i∈[1..Nsys_set]}中的距离值进行算术平均,得到距离平均值Dist_average;
步骤233,也即前述模块231所实现的功能,计算平均相似度S=1-距离平均值Dist_average。
步骤24包括如下步骤:
步骤241,也即前述模块241所实现的功能,计算预测行为对集合Prd_set中的行为对与用例行为对集合Tc_set中的各个行为对之间的欧拉距离,得到距离数组{Disti|i∈[1..Ntc_set]};其中,Ntc_set为用例行为对集合Tc_set中行为对的数目;
步骤242,也即前述模块242所实现的功能,对距离数组{Disti|i∈[1..Nsys_set]}中的距离值进行算术平均,得到平均相异度D。
上述步骤231和步骤241均涉及到了两个行为对之间的欧拉距离的计算问题。两个行为对之间的欧拉距离方法如下:
步骤D1:将两个行为对的State_src、State_dst和Transition抽象成向量,得到两个行为对的两个行为向量Vect1和Vect2;
步骤D2:根据构建两个行为向量Vect1和Vect2的欧拉空间Soula;
步骤D3:分别对行为向量Vect1和Vect2在欧拉空间Soula内归一化处理;
步骤D4:计算归一化后的行为向量Vect1和Vect2在欧拉空间Soula内之间的距离。该计算得到的距离即为两个行为对之间的欧拉距离。
步骤D1中“行为对的State_src、State_dst和Transition抽象成向量”的处理过程如下:
步骤D11:按照描述状态定义的系统属性,将State_src抽象为向量Vect_src;向量Vect_src中的每一个元素都是一个系统属性。
步骤D12:按照描述状态定义的系统属性,将State_dst抽象为向量Vect_dst;向量Vect_dst中的每一个元素都是一个系统属性。
步骤D13:按照Transition中Tigger的定义,将Transition抽象为向量Vect_tst;向量Vect_tst中的每一个元素都是Tigger定义;众所周知,根据UML定义,Transition分为Trigger,Effect和Guard Condition三部分;本实施例中忽略Effect和Guard
Condition的定义。
步骤D14:合并向量Vect_src、向量Vect_dst和向量Vect_tst组成最终的行为对的行为向量;该行为向量中的元素数是向量Vect_src的元素数、向量Vect_dst的元素数和向量Vect_tst的元素数之和。
需要说明的是,上述步骤231至步骤233针对的是预测行为对集合Prd_set中的某个行为对;步骤23则是针对预测行为对集合Prd_set中所有行为对,因此,步骤23需要通过循环遍历预测行为对集合Prd_set中每个行为对执行步骤231至步骤233。同理,上述步骤241至步骤242针对的是预测行为对集合Prd_set中的某个行为对;步骤24则是针对预测行为对集合Prd_set中所有行为对,因此,步骤24需要通过循环遍历预测行为对集合Prd_set中每个行为对执行步骤241至步骤242。经过步骤23和步骤24后可以分别得到平均相似度数组S_set={Si|i∈[1..Nprd_set]}和平均相异度数组D_set={Di|i∈[1..Nprd_set]}。其中Nprd_set表示预测行为对集合Prd_set中行为对的个数;Si表示预测行为对集合Prd_set中第i个行为对与与系统状态变迁对集合Sys_set中的各个行为对之间的平均相似度S;Di表示预测行为对集合Prd_set中第i个行为对与用例行为对集合Tc_set中的各个行为对之间的平均相异度D。因此步骤25可采用如下步骤实现:
步骤251,对平均相似度数组S_set={Si|i∈[1..Nprd_set]}和平均相异度数组D_set={Di|i∈[1..Nprd_set]}逐个求和得到数组SD_set={SDi|i∈[1..Nprd_set]};其中SDi=
Si+Di。
步骤252,遍历数组SD_set={SDi|i∈[1..Nprd_set]},假如SDi小于阈值Threshold,则在预测行为对集合Prd_set中删除第i个行为对;由此得到剔除了不符合要求的预测行为对之后的剩余预测行为对集合Prd_rmd_set。这里,阈值Threshold为预先设定的值。
由此步骤26的输入也即为前述步骤252中的剩余预测行为对集合Prd_rmd_set。步骤26也即前述步骤21中“将所述已有的测试用例集中的测试用例根据其相应的测试结果拆分成用例行为对,组成用例行为对集合Tc_set”的逆过程,具体为:将剩余预测行为对集合Prd_rmd_set中的行为对的State_src作为新测试用例的输入,将行为对中的Transition中的Tigger和Guard Condition作为新测试用例的执行过程,构建新的测试用例。剩余预测行为对集合Prd_rmd_set中的每个行为对相应的生成一个新的测试用例,从而组成新的测试用例集Tc_new_set。也就是步骤26的输出或步骤2的输出为新的测试用例集Tc_new_set。
步骤3,也即前述模块3所实现的功能,执行步骤2生成的测试用例集,并记录测试结果。步骤3由待测系统的测试用例执行驱动模块驱动执行。测试用例执行驱动模块,也即模块3,所执行的步骤如下:
步骤31,从步骤2的输出的新的测试用例集Tc_new_set中获取一个待测的测试用例;
步骤32,根据待测的测试用例的输入,构建待测系统的当前状态;
步骤33,驱动待测系统执行待测的测试用例的执行过程;
步骤34,记录待测的测试用例执行后的测试结果;
步骤35,循环重复步骤31至步骤34直到新的测试用例集Tc_new_set中所有测试用例被遍历执行。
步骤4,也即前述模块4所实现的功能,将测试结果更新到所述系统状态机图中,并更新已有的测试用例集。如前所述,系统状态机图由系统状态模型和系统实际状态变迁信息组成。系统实际状态变迁信息由两部分组成,一部分是初始的系统实际状态变迁信息,另一部分则是由测试用例执行结果所生成的系统实际状态变迁信息。初始的系统实际状态变迁信息来自于步骤1输入的“待测系统的系统状态模型”,由待测系统提供者提供,是待测系统的软件设计者设计中的系统应有的状态变迁。本步骤也即将步骤3中的每个测试用例的每个输入单独构建相应的状态节点State,然后将每个测试用例的执行结果构建相应的状态节点,最后将测试用例的执行过程作为两个状态节点State之间的有向连线作为Transition。
步骤5,也即前述模块5所实现的功能,重复步骤2至4,直到满足停止条件。本实施例中,停止条件通过两种方式共同控制:第一种是收敛控制,也即,假如步骤2产生的新的测试用例集为空,则跳出循环或结束循环。第二种是循环次数限值控制,假如步骤2至步骤4循环次数超过预先设定的值,则结束循环。
Claims (6)
1.一种迭代学习模型行为相似性的测试用例生成方法,其特征在于,该方法包括以下步骤:
步骤1,获取待测系统的系统状态模型,然后根据系统状态模型构建系统状态机图;
步骤2,根据系统状态机图、已有的测试用例集、已有的测试用例集相应的测试结果生成新的测试用例集;
步骤3,执行步骤2生成的测试用例集,并记录测试结果;
步骤4,将测试结果更新到所述系统状态机图中,并更新已有的测试用例集;
步骤5,重复步骤2至4,直到满足停止条件;
所述系统状态机图为通过所述系统状态模型描述的系统行为状态信息;
所述步骤2包括:
步骤21,将所述系统状态机图拆分成状态变迁对,组成系统状态变迁对集合Sys_set;并将将所述已有的测试用例集中的测试用例根据其相应的测试结果拆分成用例行为对,组成用例行为对集合Tc_set;
步骤22,根据系统状态变迁对集合Sys_set和用例行为对集合Tc_set生成预测行为对集合Prd_set;
步骤23,计算预测行为对集合Prd_set中的行为对与系统状态变迁对集合Sys_set中的各个行为对之间的平均相似度S;
步骤24,计算预测行为对集合Prd_set中的行为对与用例行为对集合Tc_set中的各个行为对之间的平均相异度D;
步骤25,假如平均相似度S和平均相异度D之和大于阈值Threshold,则从预测行为对集合Prd_set中删除该行为对;
步骤26,根据预测行为对集合Prd_set中剩余的行为对生成相应的测试用例;
所述系统状态变迁对集合Sys_set、用例行为对集合Tc_set和预测行为对集合Prd_set均为行为对的集合;所述行为对至少包含State_src、State_dst和Transition;其中State_src为源状态信息,State_dst为目标状态信息,Transition为源状态至目标状态的行为变迁信息。
2.如权利要求1所述的迭代学习模型行为相似性的测试用例生成方法,其特征在于,所述步骤23包括如下步骤:
步骤231,计算预测行为对集合Prd_set中的行为对与系统状态变迁对集合Sys_set中的各个行为对之间的欧拉距离,得到距离数组{Disti|i∈[1..Nsys_set]};其中,Nsys_set为系统状态变迁对集合Sys_set中行为对的数目;
步骤232,对距离数组{Disti|i∈[1..Nsys_set]}中的距离值进行算术平均,得到距离平均值Dist_average;
步骤233,计算平均相似度S=1-距离平均值Dist_average。
3.如权利要求1所述的迭代学习模型行为相似性的测试用例生成方法,其特征在于,所述步骤24包括如下步骤:
步骤241,计算预测行为对集合Prd_set中的行为对与用例行为对集合Tc_set中的各个行为对之间的欧拉距离,得到距离数组{Disti|i∈[1..Ntc_set]};其中,Ntc_set为用例行为对集合Tc_set中行为对的数目;
步骤242,对距离数组{Disti|i∈[1..Nsys_set]}中的距离值进行算术平均,得到平均相异度D。
4.一种迭代学习模型行为相似性的测试用例生成装置,其特征在于,该装置包括:
模块1,用于获取待测系统的系统状态模型,然后根据系统状态模型构建系统状态机图;
模块2,用于根据系统状态机图、已有的测试用例集、已有的测试用例集相应的测试结果生成新的测试用例集;
模块3,用于执行模块2生成的测试用例集,并记录测试结果;
模块4,用于将测试结果更新到所述系统状态机图中,并更新已有的测试用例集;
模块5,用于重复调用模块2至4,直到满足停止条件;
所述系统状态机图为通过所述系统状态模型描述的系统行为状态信息;
所述模块2包括:
模块21,用于将所述系统状态机图拆分成状态变迁对,组成系统状态变迁对集合Sys_set;并将将所述已有的测试用例集中的测试用例根据其相应的测试结果拆分成用例行为对,组成用例行为对集合Tc_set;
模块22,根据系统状态变迁对集合Sys_set和用例行为对集合Tc_set生成预测行为对集合Prd_set;
模块23,用于计算预测行为对集合Prd_set中的行为对与系统状态变迁对集合Sys_set中的各个行为对之间的平均相似度S;
模块24,用于计算预测行为对集合Prd_set中的行为对与用例行为对集合Tc_set中的各个行为对之间的平均相异度D;
模块25,用于假如平均相似度S和平均相异度D之和大于阈值Threshold,则从预测行为对集合Prd_set中删除该行为对;
模块26,用于根据预测行为对集合Prd_set中剩余的行为对生成相应的测试用例;
所述系统状态变迁对集合Sys_set、用例行为对集合Tc_set和预测行为对集合Prd_set均为行为对的集合;所述行为对至少包含State_src、State_dst和Transition;其中State_src为源状态信息,State_dst为目标状态信息,Transition为源状态至目标状态的行为变迁信息。
5.如权利要求4所述的迭代学习模型行为相似性的测试用例生成装置,其特征在于,所述模块23包括如下模块:
模块231,用于计算预测行为对集合Prd_set中的行为对与系统状态变迁对集合Sys_set中的各个行为对之间的欧拉距离,得到距离数组{Disti|i∈[1..Nsys_set]};其中,Nsys_set为系统状态变迁对集合Sys_set中行为对的数目;
模块232,用于对距离数组{Disti|i∈[1..Nsys_set]}中的距离值进行算术平均,得到距离平均值Dist_average;
模块233,用于计算平均相似度S=1-距离平均值Dist_average。
6.如权利要求4所述的迭代学习模型行为相似性的测试用例生成装置,其特征在于,所述模块24包括如下模块:
模块241,用于计算预测行为对集合Prd_set中的行为对与用例行为对集合Tc_set中的各个行为对之间的欧拉距离,得到距离数组{Disti|i∈[1..Ntc_set]};其中,Ntc_set为用例行为对集合Tc_set中行为对的数目;
模块242,用于对距离数组{Disti|i∈[1..Nsys_set]}中的距离值进行算术平均,得到平均相异度D。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610268442.3A CN105955882B (zh) | 2016-04-27 | 2016-04-27 | 一种迭代学习模型行为相似性的测试用例生成方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610268442.3A CN105955882B (zh) | 2016-04-27 | 2016-04-27 | 一种迭代学习模型行为相似性的测试用例生成方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105955882A true CN105955882A (zh) | 2016-09-21 |
CN105955882B CN105955882B (zh) | 2019-01-08 |
Family
ID=56915600
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610268442.3A Active CN105955882B (zh) | 2016-04-27 | 2016-04-27 | 一种迭代学习模型行为相似性的测试用例生成方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105955882B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110688288A (zh) * | 2019-09-09 | 2020-01-14 | 平安普惠企业管理有限公司 | 基于人工智能的自动化测试方法、装置、设备及存储介质 |
CN110688310A (zh) * | 2019-09-20 | 2020-01-14 | 中国人民解放军63921部队 | 基于吸引度的软件测试用例距离计算方法 |
CN111124880A (zh) * | 2019-11-04 | 2020-05-08 | 北京大学 | 基于历史数据的编译器测试输入生成方法和系统 |
CN111552635A (zh) * | 2020-04-03 | 2020-08-18 | 深圳壹账通智能科技有限公司 | 一种数据检测方法、设备、服务器及可读存储介质 |
CN113468053A (zh) * | 2021-07-02 | 2021-10-01 | 建信金融科技有限责任公司 | 一种应用系统的测试方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049603A (zh) * | 2012-12-13 | 2013-04-17 | 南京大学 | 一种带并发的状态机图转换到自动机的方法 |
-
2016
- 2016-04-27 CN CN201610268442.3A patent/CN105955882B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049603A (zh) * | 2012-12-13 | 2013-04-17 | 南京大学 | 一种带并发的状态机图转换到自动机的方法 |
Non-Patent Citations (3)
Title |
---|
EMANUELA G. CARTAXO ETC.: "Automated Test Case Selection Based on a Similarity Function", 《GI JAHRESTAGUNG (2)’07》 * |
HADI HEMMATI ,LIONEL BRIAND: "An Industrial Investigation of Similarity Measures for Model-Based Test Case Selection", 《INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING》 * |
张民: "软件测试用例自动生成系统的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110688288A (zh) * | 2019-09-09 | 2020-01-14 | 平安普惠企业管理有限公司 | 基于人工智能的自动化测试方法、装置、设备及存储介质 |
CN110688288B (zh) * | 2019-09-09 | 2023-11-07 | 新疆北斗同创信息科技有限公司 | 基于人工智能的自动化测试方法、装置、设备及存储介质 |
CN110688310A (zh) * | 2019-09-20 | 2020-01-14 | 中国人民解放军63921部队 | 基于吸引度的软件测试用例距离计算方法 |
CN111124880A (zh) * | 2019-11-04 | 2020-05-08 | 北京大学 | 基于历史数据的编译器测试输入生成方法和系统 |
CN111552635A (zh) * | 2020-04-03 | 2020-08-18 | 深圳壹账通智能科技有限公司 | 一种数据检测方法、设备、服务器及可读存储介质 |
WO2021196454A1 (zh) * | 2020-04-03 | 2021-10-07 | 深圳壹账通智能科技有限公司 | 一种数据检测方法、设备、服务器及可读存储介质 |
CN113468053A (zh) * | 2021-07-02 | 2021-10-01 | 建信金融科技有限责任公司 | 一种应用系统的测试方法和装置 |
CN113468053B (zh) * | 2021-07-02 | 2022-11-15 | 中国建设银行股份有限公司 | 一种应用系统的测试方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105955882B (zh) | 2019-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105955882A (zh) | 一种迭代学习模型行为相似性的测试用例生成方法和装置 | |
Bianchi et al. | Transferring knowledge as heuristics in reinforcement learning: A case-based approach | |
Bhattacharyya et al. | Simulating emergent properties of human driving behavior using multi-agent reward augmented imitation learning | |
Tong et al. | Directed graph contrastive learning | |
US10311356B2 (en) | Unsupervised behavior learning system and method for predicting performance anomalies in distributed computing infrastructures | |
CN111406267A (zh) | 使用性能预测神经网络的神经架构搜索 | |
CN110366734A (zh) | 优化神经网络架构 | |
US20190073591A1 (en) | Execution of a genetic algorithm having variable epoch size with selective execution of a training algorithm | |
KR20170052344A (ko) | 신규 물질 탐색 방법 및 장치 | |
CN111406264A (zh) | 神经架构搜索 | |
CN115066694A (zh) | 计算图优化 | |
Zhang et al. | Autosync: Learning to synchronize for data-parallel distributed deep learning | |
CN114567560B (zh) | 基于生成对抗模仿学习的边缘节点动态资源分配方法 | |
Lin et al. | A scalable distributed parallel simulation tool for the SWAT model | |
Klischat et al. | Falsifying motion plans of autonomous vehicles with abstractly specified traffic scenarios | |
Krishnamoorthy et al. | Deep learning techniques and optimization strategies in big data analytics: automated transfer learning of convolutional neural networks using Enas algorithm | |
CN106383738B (zh) | 任务处理方法和分布式计算框架 | |
Yi et al. | Optimizing DNN compilation for distributed training with joint OP and tensor fusion | |
CN113407312A (zh) | 一种模型训练的任务协同处理方法、装置与系统 | |
Rajaram et al. | An improved methodology for airfoil shape optimization using surrogate based design optimization | |
CN112507554B (zh) | 一种基于图计算的水文模型并行率定方法和系统 | |
Infantes et al. | Learning to Solve Job Shop Scheduling Under Uncertainty | |
CA2928307A1 (en) | Method of construction and selection of probalistic graphical models | |
US20240193423A1 (en) | Systems and methods for building dynamic reduced order physical models | |
TWI709090B (zh) | 類神經人工智慧決策網路核心系統及其資訊處理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |