CN104765683A - 基于moea/d算法的回归测试用例多目标优化方法 - Google Patents
基于moea/d算法的回归测试用例多目标优化方法 Download PDFInfo
- Publication number
- CN104765683A CN104765683A CN201510144853.7A CN201510144853A CN104765683A CN 104765683 A CN104765683 A CN 104765683A CN 201510144853 A CN201510144853 A CN 201510144853A CN 104765683 A CN104765683 A CN 104765683A
- Authority
- CN
- China
- Prior art keywords
- mrow
- test case
- msup
- msubsup
- objective
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 141
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000005457 optimization Methods 0.000 claims abstract description 58
- 239000013598 vector Substances 0.000 claims description 47
- 230000006870 function Effects 0.000 claims description 38
- 238000013459 approach Methods 0.000 claims description 3
- 238000005303 weighing Methods 0.000 claims 1
- 238000001514 detection method Methods 0.000 abstract description 8
- 230000000694 effects Effects 0.000 abstract description 6
- 230000008569 process Effects 0.000 description 14
- 230000002068 genetic effect Effects 0.000 description 8
- 238000011160 research Methods 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 4
- 230000008439 repair process Effects 0.000 description 4
- 238000013522 software testing Methods 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 230000035772 mutation Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000003745 diagnosis Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- PSFDQSOCUJVVGF-UHFFFAOYSA-N harman Chemical compound C12=CC=CC=C2NC2=C1C=CN=C2C PSFDQSOCUJVVGF-UHFFFAOYSA-N 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 108090000623 proteins and genes Proteins 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000013100 final test Methods 0.000 description 1
- 238000009396 hybridization Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013102 re-test Methods 0.000 description 1
- 230000001172 regenerating effect Effects 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
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于MOEA/D算法的回归测试用例多目标优化方法,用于解决现有回归测试用例多目标优化方法复杂的技术问题。技术方案是从影响测试用例效用的所有属性中选取三个属性,分别测定所述三个属性对于测试用例效用的影响程度,采用GCC编译器的内置插件GCOV测定代码覆盖率,测定分支覆盖过程使用插装程序分析被测程序源码,在其中的if-else分支、for循环、do-while和while-do循环之中插入检测代码,采用开源工具Valgrind测试用例执行时间。本发明采用MOEA/D算法进行回归测试用例集三目标优化,在完整覆盖各项测试需求的情况下,可以有效的进行测试用例集优化,方法简单。
Description
技术领域
本发明涉及一种回归测试用例多目标优化方法,特别是涉及一种基于MOEA/D算法的回归测试用例多目标优化方法。
背景技术
在软件测试的整个周期中,最耗时最昂贵的内容之一就是错误定位及修正过程。特别是在定位到软件故障并进行修复之后,修复的内容就有可能给软件引入新的问题或故障。然而以往的故障再诊断方法往往要求在已发现的故障被修复后重新执行所有的测试用例以确定故障是否被完全修复和是否引入了新的故障,这种方法不仅非常昂贵和耗时,执行过程繁琐且容易出现错误。因此,回归测试作为一种提高故障修复后再诊断的效率和准确率,降低故障修复后重新测试所需的代价和成本的方法,被广泛的应用在软件测试中。
事实上,在实际测试过程中,对软件的每次修改都进行全面的重新测试,不仅仅必要性较低,而且从现实角度看也不可行。因此,不论是在软件开发阶段,还是在最终测试和故障修复阶段,在软件变化较为频繁时,如何提供有效的机制使得回归测试被有效的管理,回归测试用例集被最大的优化以及最大限度降低回归测试的开销和代价,提高回归测试效率,是整个回归测试乃至软件工程领域研究的重点。
目前,国内外研究学者针对回归测试已经展开探索,其中测试用例的选择问题已经成为回归测试所有研究方向中的热点,包括重新测试所有测试用例和选择部分测试用例两方面,其中重新测试所有可用测试用例尽管可以产生复用原有测试用例的优点,并且可以降低测试用例重新生成的代价,但是其缺点也是显而易见的,随着开发进度的增加,测试用例数量不断累积,此时如果复用原有的全部测试用例将给测试工作带来极大的负担,使整个工程的周期和预算变得难于控制。
而对于通过一定的策略筛选部分测试用例进行重新测试而言,只选择可能与软件已知故障修复部分产生关联的测试用例,首先可以减少回归测试中测试用例的运行成本,还可以减少整个测试用例集的维护成本,更重要的是,该策略相比全部重新测试能够更有效和更高效的验证所修改的部分是否达到了修复故障的目的以及是否引入了新的故障。
在现有回归测试的研究成果中,涉及到测试用例选择的有很多,这些方法大体集中在对于满足回归测试覆盖要求的最小测试用例集的选择优化算法和交互等方面,通过优化测试用例选择的模型,去除冗余无用或覆盖效果不理想的测试用例,减小回归测试中使用的测试用例集规模,进而削减回归测试的人力物力以及成本开销。
Yoo与Harman等人于2007年首先提出了采用多目标优化算法对回归测试用例集进行最小化(Shin Yoo and Mark Harman.Pareto efficient multi-objective test case selection.In ACM/SIGSOFT International Symposium on Software Testing and Analysis(ISSTA2007),pages 140–150.ACM,2007.)然而该方法却存在一定的限制因素,采用NSGA-II算法往往只能得到局部的最优解,而很难取得最有帕累托前沿。在该方法中讨论了单目标和双目标的优化策略,而在实际测试过程中,如果仅仅采用单一目标或者两目标为基准对测试用例集进行优化,往往难以覆盖全部测试需求,造成测试需求项遗漏或覆盖不全面等问题。
此外对于两目标优化方法,现有的算法都采用以一个目标为主,先选取一个主要目标进行优化,而后针对第一步的优化结果再对第二个目标进行优化。该方法在一定程度内降低了算法的复杂度,然而采用两个目标先后进行优化的策略忽略了多目标作为一个整体的特性,仅能在算法局部取得最优解,而不能综合多目标取得全局最优解。
对于现有的用于多目标优化的算法,存在着算法复杂度与所求的解对于最优解的逼近程度之间的矛盾,求解效果好的算法往往复杂度较高。相比于传统,遗传算法不仅更适合此类问题的求解,而且计算成本相对较小,此类方法往往首先通过随机选取的测试用例构成初始集合,再将选取的测试用例中不理想的个体通过遗传算法中杂交变异等手段加以剔除,继而产生最优解。这些算法在回归测试多目标优化问题中的应用是本发明的重点。
发明内容
为了克服现有回归测试用例多目标优化方法复杂的不足,本发明提供一种基于MOEA/D算法的回归测试用例多目标优化方法。该方法从影响测试用例效用的所有属性中选取三个属性,即代码覆盖率、分支覆盖率和测试用例执行时间,分别测定以上三个属性对于测试用例效用的影响程度,并通过多目标优化算法选取两目标及所有三个目标进行研究。测定代码覆盖率采用GCC编译器的内置插件GCOV进行代码覆盖信息提取工作,可以在每个测试用例执行之后方便的获得该测试用例覆盖了被测程序中的哪些语句。测定分支覆盖过程,首先使用插装程序分析被测程序源码,在其中的if-else分支、for循环、do-while和while-do循环之中插入检测代码,可以准确的记录每个测试用例在运行时所覆盖的程序分支。采用开源工具Valgrind测试用例执行时间,包括内存使用检测、多线程竞争以及程序性能分析。本发明采用MOEA/D算法进行回归测试用例集三目标优化,在完整覆盖各项测试需求的情况下,可以有效的进行测试用例集优化,方法简单。
本发明解决其技术问题所采用的技术方案是:一种基于MOEA/D算法的回归测试用例多目标优化方法,其特点是采用以下步骤:
定义一个决策向量x,该向量能够优化一个包含M个向量的目标函数fi(x),其中i=1,2,...,M。
假设最终优化目标为使函数fi取最大值,其中i=1,2,...,M。称决策向量x优超决策向量y,记为当且仅当目标函数fi(x)与fi(y)满足:且
在满足帕累托最优的情况下所有的决策向量都不被其他决策向量锁优超,此时相应的目标向量组成帕累托最优前沿,则多目标优化问题被描述为:
给定:一组决策向量x和目标函数集合fi(x),其中i=1,2,...,M;
问题:在可行解集合中寻找一组最优解使得函数组{f1(x),f2(x),...,fM(x),}取值最大;
多目标测试用例集最优化的问题被抽象为如下描述:
给定:一组测试用例集T以及一组M目标函数fi,i=1,2,...,M;
问题:寻找一组测试用例集T的子集T’,使得该自己在目标函数的约束下去的帕累托最优;
在{f1(t1),f2(t1),...,fM(t1),}中,当T的子集t1优超时,即为决策向量t1优超决策向量t2。优化取得的最终结果,即T的帕累托最优子集T’,即能够取得回归测试优化准则中所预期的目标。
MOEA/D算法的主要流程如下:
多目标优化问题被描述为:
使函数F(x)=(f1(x),f2(x),...,fm(x))T取值最大化,其中x∈Ω。其中,Ω代表变量空间,如果x∈Rn,则Ω被描述为:
Ω={x∈Rn|hj(x)≤0,j=1,2,...,m}
令λ1,λ2,...,λN组成均匀分布的权重向量集合,用z*表示代表点,利用切比雪夫方法,该问题的帕累托前沿被近似分解为N层子问题如下:
其中,
在该分层方法中,函数gte关于λ是连续的,即若λi与λj之间距离最小,则gte(x|λi,z*)与gte(x|λj,z*)之间的距离也最小。因此接近λi的每个gte函数所携带的权重向量信息都被用来优化gte(x|λi,z*)。
在MOEA/D算法中,λi与相邻权重向量之间的关系被定义为一组由其相邻权重向量构成的集合{λ1,λ2,...,λN}。第i个子问题的相邻关系由所有子问题关于λi点的权重向量来表示。
在每一代种群t中,MOEA/D算法利用切比雪夫方法保持如下特性:
·一个具有N个点的种群x1,x2,...,xN∈Ω,其中xi为第i个子问题的当前最优解;
·FV1,FV2,...,FVN,其中FVi表示xi的F函数值,即对于每个i=1,2,...N,有FVi=F(xi);
·z=(z1,z2,...,zm)T,其中zi为每个fi目前能够计算出的最优值。
·一个外部种群EP,用于存储搜索最优解过程中找到的非支配解。
本发明的有益效果是:该方法从影响测试用例效用的所有属性中选取三个属性,即代码覆盖率、分支覆盖率和测试用例执行时间,分别测定以上三个属性对于测试用例效用的影响程度,并通过多目标优化算法选取两目标及所有三个目标进行研究。测定代码覆盖率采用GCC编译器的内置插件GCOV进行代码覆盖信息提取工作,可以在每个测试用例执行之后方便的获得该测试用例覆盖了被测程序中的哪些语句。测定分支覆盖过程,首先使用插装程序分析被测程序源码,在其中的if-else分支、for循环、do-while和while-do循环之中插入检测代码,可以准确的记录每个测试用例在运行时所覆盖的程序分支。采用开源工具Valgrind测试用例执行时间,包括内存使用检测、多线程竞争以及程序性能分析。本发明采用MOEA/D算法进行回归测试用例集三目标优化,在完整覆盖各项测试需求的情况下,可以有效的进行测试用例集优化,方法简单。
下面结合附图和具体实施方式对本发明作详细说明。
附图说明
图1是本发明方法所设计的回归测试用例集三目标优化方法在Siemens Suite中的tcas套件上的实际测试结果。
图2是本发明方法所设计的回归测试用例集三目标优化方法在Siemens Suite中的tot_info套件上的实际测试结果。
图3是本发明方法所设计的回归测试用例集三目标优化方法在Siemens Suite中的schedule套件上的实际测试结果。
图4是本发明方法所设计的回归测试用例集三目标优化方法在Gzip中的v3套件上的实际测试结果。
图5是本发明方法所设计的回归测试用例集三目标优化方法在Gzip中的v4套件上的实际测试结果。
具体实施方式
参照图1-5。本发明基于MOEA/D算法的回归测试用例多目标优化方法具体步骤如下:
帕累托最优原本是一个来自于经济学的概念,然而随着科技的发展进步,该概念现在在其他学科或领域如博弈论、社会科学以及工程学中有着广泛的应用。帕累托最优概念的原始表述为:如果对于某种既定的资源配置状态,所有的帕累托改进均不存在,即在该状态上,任何改变都不可能使至少一个人的状况变好而又不使任何人的状况变坏,则称这种资源配置状态为帕累托最优状态。
基于以上的描述,多目标优化问题可以被定义为一个寻找一个决策向量x,该向量能够优化一个包含M个向量的目标函数fi(x),其中i=1,2,...,M。而该目标函数则是优化准则的数学描述。
为不失一般性,假设最终优化目标为使函数fi取最大值,其中i=1,2,...,M。称决策向量x优超决策向量y(记为)当且仅当目标函数fi(x)与fi(y)满足:且
在满足帕累托最优的情况下所有的决策向量都不被其他决策向量锁优超,此时相应的目标向量组成帕累托最优前沿,则多目标优化问题可以被描述为:
给定:一组决策向量x和目标函数集合fi(x),其中i=1,2,...,M;
问题:在可行解集合中寻找一组最优解使得函数组{f1(x),f2(x),...,fM(x),}取值最大;
由于利用帕累托最优前沿进行决策可以充分的在目标交换中取得平衡,因此帕累托最优前沿理论再工程问题中有着广泛的应用。测试用例集多目标优化的实质为基于在测试中的多重优化准则,在可行测试用例集合中选取一组帕累托有效的子集。通过对帕累托最优理论的探讨,多目标测试用例集最优化的问题可以抽象为如下描述:
给定:一组测试用例集T以及一组M目标函数fi,i=1,2,...,M;
问题:寻找一组测试用例集T的子集T’,使得该自己在目标函数的约束下去的帕累托最优;
此问题中的多目标函数即为测试人员所关心的优化准则的数学描述。在{f1(t1),f2(t1),...,fM(t1),}中,当T的子集t1优超时,即为决策向量t1优超决策向量t2。优化取得的最终结果,即T的帕累托最优子集T’,即可取得回归测试优化准则中所预期的目标。
在回归测试用例集多目标优化问题中,本发明采用了最新的MOEA/D作为测试用例优化算法。MOEA/D(Multio-Ojective Evolutionary Algorithm Based on Decomposition)算法最早由Qingfu Zhang等人在2007年提出,该算法在传统多目标进化算法的基础之上首先提出了将分解策略应用于多目标优化问题的求解过程之中,相比于传统的多目标进化算法,MOEA\D算法具有更小的计算成本和更快的收敛速度。
MOEA/D算法的主要思想是将多目标优化问题分解为若干个标量子问题,继而通过对子问题的解进行种群进化,从而计算出原始问题的最优解。在每一代种群的进化过程中,产生的解都是针对目前子问题的最优解组合。子问题之间的关系则由每个子问题之间的聚合系数向量(Aggregation Coefficient Vector)所定义,即两个相邻的子问题解之间的相似度是最大的。基于该策略,MOEA/D算法中的每个子问题,即分层聚合函数,都可以利用其相邻子问题进行优化,MOEA/D算法的主要流程如下:
首先多目标优化问题被描述为:
使函数F(x)=(f1(x),f2(x),...,fm(x))T取值最大化,其中x∈Ω。在该定义中,Ω代表变量空间,如果x∈Rn,则Ω可以被描述为:
Ω={x∈Rn|hj(x)≤0,j=1,2,...,m}
首先令λ1,λ2,...,λN组成均匀分布的权重向量集合,用z*表示代表点,利用切比雪夫方法,该问题的帕累托前沿可以被近似分解为N层子问题如下:
其中,MOEA/D算法在一次运行中即可将所有子问题最小化。
在该分层方法中,函数gte关于λ是连续的,即若λi与λj之间距离最小,则gte(x|λi,z*)与gte(x|λj,z*)之间的距离也最小。因此接近λi的每个gte函数所携带的权重向量信息都被用来优化gte(x|λi,z*)。这一特性是MOEA/D算法的主要特点。
在MOEA/D算法中,λi与相邻权重向量之间的关系被定义为一组由其相邻权重向量构成的集合{λ1,λ2,...,λN}。第i个子问题的相邻关系可以由所有子问题关于λi点的权重向量来表示。这些相邻关系则表示了当前能够找到的子问题的最优解。MOEA/D算法只计算当前相邻子问题的解。
在每一代种群t中,MOEA/D算法利用切比雪夫方法保持如下特性:
·一个具有N个点的种群x1,x2,...,xN∈Ω,其中xi为第i个子问题的当前最优解;
·FV1,FV2,...,FVN,其中FVi表示xi的F函数值,即对于每个i=1,2,...N,有FVi=F(xi);
·z=(z1,z2,...,zm)T,其中zi为每个fi目前能够计算出的最优值。
·一个外部种群EP(External Population),用于存储搜索最优解过程中找到的非支配解。
在多标优化问题的研究过程中,本发明选取了所研究的影响测试用例效用三个因素中的全部三个因素,即语句覆盖率、分支覆盖率和运行时间开销作为优化目标。
语句覆盖率相对直观且容易理解,然而在实际测试过程中,语句的全覆盖往往并不意味着软件功能的全覆盖测试,因此需要更深入的研究软件功能覆盖信息,就需要引入分支覆盖。分支覆盖在语句覆盖的基础上保证了程序中的每个逻辑分支至少被执行了一次,因此对于软件功能的测试相比于单纯的语句覆盖更加全面。
下面的描述中通过一个工程实例说明本专利中的算法如何在工程实践中运用,在本实例中使用了西门子工业用软件套件Siemens Suite作为被测对象。
Siemens Suite作为软件测试界应用最广泛的测试套件,其中中包含7个子测试套件,分别为tcas,tot_info,print_tokins,print_tokins2,schedule,schedule2和replace,其中schedule为一个小型的进程优先级调度程序,schedule2为其改进版本;tcas为一个防止飞机在空中相撞的小型系统;tot_info是专门用于统计输入数据的程序;print_tocken与print_tocken2为编译器中语法分析的组件;replace则用于字符串文本匹配。
所使用的7个套件的详细信息列举如下表:
套件名 | 代码行数 | 测试用例数 |
tcas | 173 | 1608 |
tot_info | 406 | 1052 |
schedule | 368 | 2650 |
replace | 563 | 5542 |
print_tokins | 705 | 4130 |
print_tokens2 | 788 | 4115 |
schedule2 | 307 | 2710 |
根据上面的算法描述,需要测定套件在不同测试用例下的语句覆盖率,分支覆盖率,和运行时间,下面分别描述这三项运行指标的测定和使用流程:
1)语句覆盖率:
在语句覆盖率的测定过程中,通常可以采用编译器配套的插件来完成辅助编译工作。在本发明中,采用了开源的C程序编译器GCC以及GCC编译器配套的测定代码覆盖信息的插件GCOV。该工具可以在代码编译阶段对被测代码自动插入执行标记,以Siemens Suite中的tcas套件为例,在被测代码执行后,通过GCOV插件的输出结果对被测代码中语句覆盖的情况进行统计,通常情况下绘制出一张如下描述语句覆盖信息的表格:
s1 | s2 | s3 | ... | sn | |
t1 | 1 | 1 | 0 | 1 | |
t2 | 1 | 0 | 1 | 0 | |
t3 | 1 | 1 | 1 | 0 |
... | ... | ... | ... | ... | ... |
tm | 0 | 1 | 1 | 1 |
在表格中,si表示被测软件的第1行可执行语句,ti表示针对该被测软件的第i个测试用例,0表示在测试用例中该条语句没有被覆盖,1则表示在测试用例中该语句覆盖(执行)。
有了上述表格,针对每个测试用例对他们在背侧代码上运行的情况生成一个语句覆盖序列。
2)分支覆盖率:
对于分支覆盖,本发明采用的方法是在被测软件运行之前,先对背侧代码进行分析,预先插入用于输出分支覆盖信息的检测代码,例如,对于形如下分支代码片段:
插入检测代码后,该段代码变为:
由于所有的插桩都是在分支语句块内进行,且不涉及任何原始被测软件变量的操作,因此该检测代码在输出被测软件分支覆盖信息的同时并不会对系统执行产生影响。
在运行完经过插桩的被测软件后,对于被测软件中的每个逻辑分支得到一个覆盖序列,形如{{...},{00},{...},...{...}},该序列中分为多个小节,每个小节代表了被测软件中的一个逻辑分支,如果该小节为{00},则表示该小节指代的逻辑分支没有被覆盖;如果为{10},则表示该小节指代的逻辑分支执行了左分支,若为{01}则表示执行了右分支。
3)运行开销:
在运行开销测定的环节,本发明同样采用了开源工具Valgrind作为辅助。该用具同上述GCOV插件类似,也是与GCC编译器同时使用,使用Valgrind测定软件运行开销之后,针对被测软件的每个测试用例都获得一个他们在被测软件上的运行时间(CPU时间),以及内存开销。
有了上述过程中采集到的测试用例运行信息,将这些信息使用在MOEA/D中进行测试用例集优化,使用MOEA/D算法进行测试用例集多目标优化的流程描述如下:
1.初始化:
设置最大遗传代数T,并初始化进化代数计数器为t=0,随机生成初代种群Pop(0),初代种群的生成要求在设定的空间内随机分布。
2.个体评价:
个体评价要求计算Pop(n)中每个个体的适应度。适应度在遗传算法中可以反映出一个个体对环境的适应能力,所以适应度会直接影响个体的弃或留。因此适应度函数体现了各个问题使用遗传算法的根本区别,也反映出用遗传算法解决各种问题的特色。本发明选取了所研究的影响测试用例效用三个因素中的全部三个因素作为计算个体适应度的依据,即语句覆盖率、分支覆盖率和运行时间开销,并据此生成三个独立的各自适应度函数用以评估个体适应度。
3.选择运算:
选择运算主要目的是根据个体适应度的值,对个体进行优胜劣汰操作,即把群体中比较优秀的个体或者通过交叉配对产生适应度比较高的新个体的个体遗传到下一代。本专利根据每个个体的语句覆盖、分支覆盖、运行时间这三个适应度值对个体进行选择操作。
4.交叉运算:
交叉运算是遗传算法中比较核心的部分,是对种群中的个体间进行配对,然后进行基因的交叉操作,产生新的个体。
5.变异运算:
变异运算是对基因值进行低概率的变动操作。对于本专利,即为随机对某个解的某个测试用例选中情况的变动(选中变为未选中,未选中变为选中)。
Pop(n)经过上述几步的选择、交叉、变异操作后得到新的群体Pop(n+1);
若进化代数计数器和最大遗传代数相等,即t=T时,程序终止,输出最后一代结果作为最优解进行接下来的分析操作。
该算法所获得的最优解,就是最终需要得到的测试用例集进行多目标优化后的结果。
为了验证算法的效果,本发明中采用了Siemens Suite提供的标准的错误程序和对应的测试用例,对新算法进行了系统的测试。Siemens Suite是一组开源的用于评测软测试方法和工具的数据集,自从2003年被引入用于评价NNQ法的有效性后,被广泛采用以评估错误定位技术的有效性。
此外,为了验证本发明的效果,实验中还采用了开源软件Gzip进行了实际测试。测试的最后结果证明:采用MOEA/D算法进行回归测试用例集三目标优化,在完整覆盖各项测试需求的情况下,可以有效的进行测试用例集优化。
Claims (1)
1.一种基于MOEA/D算法的回归测试用例多目标优化方法,其特征在于包括以下步骤:
定义一个决策向量x,该向量能够优化一个包含M个向量的目标函数fi(x),其中i=1,2,...,M;
假设最终优化目标为使函数fi取最大值,其中i=1,2,...,M;称决策向量x优超决策向量y,记为x>y;当且仅当目标函数fi(x)与fi(y)满足:且
在满足帕累托最优的情况下所有的决策向量都不被其他决策向量锁优超,此时相应的目标向量组成帕累托最优前沿,则多目标优化问题被描述为:
给定:一组决策向量x和目标函数集合fi(x),其中i=1,2,...,M;
问题:在可行解集合中寻找一组最优解使得函数组{f1(x),f2(x),...,fM(x),}取值最大;
多目标测试用例集最优化的问题被抽象为如下描述:
给定:一组测试用例集T以及一组M目标函数fi,i=1,2,...,M;
问题:寻找一组测试用例集T的子集T’,使得该自己在目标函数的约束下去的帕累托最优;
在{f1(t1),f2(t1),...,fM(t1),}中,当T的子集t1优超时,即为决策向量t1优超决策向量t2;优化取得的最终结果,即T的帕累托最优子集T’,即能够取得回归测试优化准则中所预期的目标;
MOEA/D算法的主要流程如下:
多目标优化问题被描述为:
使函数F(x)=(f1(x),f2(x),...,fm(x))T取值最大化,其中x∈Ω;其中,Ω代表变量空间,如果x∈Rn,则Ω被描述为:
Ω={x∈Rn|hj(x)≤0,j=1,2,...,m}
令λ1,λ2,...,λN组成均匀分布的权重向量集合,用z*表示代表点,利用切比雪夫方法,该问题的帕累托前沿被近似分解为N层子问题如下:
其中,
在该分层方法中,函数gte关于λ是连续的,即若λi与λj之间距离最小,则gte(x|λi,z*)与gte(x|λj,z*)之间的距离也最小;因此接近λi的每个gte函数所携带的权重向量信息都被用来优化gte(x|λi,z*);
在MOEA/D算法中,λi与相邻权重向量之间的关系被定义为一组由其相邻权重向量构成的集合{λ1,λ2,...,λN};第i个子问题的相邻关系由所有子问题关于λi点的权重向量来表示;
在每一代种群t中,MOEA/D算法利用切比雪夫方法保持如下特性:
·一个具有N个点的种群x1,x2,...,xN∈Ω,其中xi为第i个子问题的当前最优解;
·FV1,FV2,...,FVN,其中FVi表示xi的F函数值,即对于每个i=1,2,...N,有FVi=F(xi);
·z=(z1,z2,...,zm)T,其中zi为每个fi目前能够计算出的最优值;
·一个外部种群EP,用于存储搜索最优解过程中找到的非支配解。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510144853.7A CN104765683B (zh) | 2015-03-30 | 2015-03-30 | 基于moea/d算法的回归测试用例多目标优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510144853.7A CN104765683B (zh) | 2015-03-30 | 2015-03-30 | 基于moea/d算法的回归测试用例多目标优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104765683A true CN104765683A (zh) | 2015-07-08 |
CN104765683B CN104765683B (zh) | 2017-06-06 |
Family
ID=53647527
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510144853.7A Expired - Fee Related CN104765683B (zh) | 2015-03-30 | 2015-03-30 | 基于moea/d算法的回归测试用例多目标优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104765683B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107748937A (zh) * | 2017-11-03 | 2018-03-02 | 哈尔滨工业大学 | 一种基于moead的比例区间偏好引导多目标决策优化方法 |
CN108470242A (zh) * | 2018-03-08 | 2018-08-31 | 阿里巴巴集团控股有限公司 | 风险管控方法、装置、及服务器 |
CN110084369A (zh) * | 2019-04-08 | 2019-08-02 | 西北工业大学 | 基于多目标优化的变异测试变异体约简方法 |
CN110221931A (zh) * | 2019-05-20 | 2019-09-10 | 电子科技大学 | 基于切比雪夫的系统级测试性设计多目标优化方法 |
CN111666209A (zh) * | 2020-05-20 | 2020-09-15 | 牡丹江师范学院 | 一种基于多目标优化的测试用例优先级排序方法 |
CN111949552A (zh) * | 2020-09-03 | 2020-11-17 | Oppo广东移动通信有限公司 | 测试用例集生成方法、装置、计算机设备及存储介质 |
CN114610600A (zh) * | 2022-01-21 | 2022-06-10 | 南京航空航天大学 | 基于信息物理系统中RESTful API测试用例生成和优化方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107464022B (zh) * | 2017-08-11 | 2018-07-10 | 同济大学 | 一种基于分解多目标进化算法的选址优化方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063374A (zh) * | 2011-01-07 | 2011-05-18 | 南京大学 | 一种使用半监督信息进行聚类的回归测试用例选择方法 |
CN102253889A (zh) * | 2011-08-07 | 2011-11-23 | 南京大学 | 一种回归测试中基于分布的测试用例优先级划分方法 |
CN103218299A (zh) * | 2013-05-17 | 2013-07-24 | 网宿科技股份有限公司 | 优化的蚁群算法测试用例自动生成方法和系统 |
EP2637093A1 (en) * | 2012-03-06 | 2013-09-11 | Sap Ag | Automatically checking the validity of generated test cases after test-model changes |
US20130311976A1 (en) * | 2012-05-17 | 2013-11-21 | Cognizant Technology Solutions India Pvt. Ltd. | Method and system for generating and processing black box test cases |
-
2015
- 2015-03-30 CN CN201510144853.7A patent/CN104765683B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063374A (zh) * | 2011-01-07 | 2011-05-18 | 南京大学 | 一种使用半监督信息进行聚类的回归测试用例选择方法 |
CN102253889A (zh) * | 2011-08-07 | 2011-11-23 | 南京大学 | 一种回归测试中基于分布的测试用例优先级划分方法 |
EP2637093A1 (en) * | 2012-03-06 | 2013-09-11 | Sap Ag | Automatically checking the validity of generated test cases after test-model changes |
US20130311976A1 (en) * | 2012-05-17 | 2013-11-21 | Cognizant Technology Solutions India Pvt. Ltd. | Method and system for generating and processing black box test cases |
CN103218299A (zh) * | 2013-05-17 | 2013-07-24 | 网宿科技股份有限公司 | 优化的蚁群算法测试用例自动生成方法和系统 |
Non-Patent Citations (2)
Title |
---|
ZEESHAN ANWAR ET.AL.: "Multi-Objective Regression Test Suite Optimization", 《MULTI TOPIC CONFERENCE》 * |
安洁: "基于MOEA/D和局部搜索策略的多目标车辆路径规划方法", 《中国优秀硕士学位论文全文数据库 工程科技II辑》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107748937A (zh) * | 2017-11-03 | 2018-03-02 | 哈尔滨工业大学 | 一种基于moead的比例区间偏好引导多目标决策优化方法 |
CN107748937B (zh) * | 2017-11-03 | 2021-08-13 | 哈尔滨工业大学 | 一种基于moead的比例区间偏好引导多目标决策优化方法 |
CN108470242A (zh) * | 2018-03-08 | 2018-08-31 | 阿里巴巴集团控股有限公司 | 风险管控方法、装置、及服务器 |
CN108470242B (zh) * | 2018-03-08 | 2022-03-22 | 创新先进技术有限公司 | 风险管控方法、装置、及服务器 |
CN110084369A (zh) * | 2019-04-08 | 2019-08-02 | 西北工业大学 | 基于多目标优化的变异测试变异体约简方法 |
CN110221931A (zh) * | 2019-05-20 | 2019-09-10 | 电子科技大学 | 基于切比雪夫的系统级测试性设计多目标优化方法 |
CN110221931B (zh) * | 2019-05-20 | 2021-06-04 | 电子科技大学 | 基于切比雪夫的系统级测试性设计多目标优化方法 |
CN111666209A (zh) * | 2020-05-20 | 2020-09-15 | 牡丹江师范学院 | 一种基于多目标优化的测试用例优先级排序方法 |
CN111666209B (zh) * | 2020-05-20 | 2023-03-31 | 牡丹江师范学院 | 一种基于多目标优化的测试用例优先级排序方法 |
CN111949552A (zh) * | 2020-09-03 | 2020-11-17 | Oppo广东移动通信有限公司 | 测试用例集生成方法、装置、计算机设备及存储介质 |
CN114610600A (zh) * | 2022-01-21 | 2022-06-10 | 南京航空航天大学 | 基于信息物理系统中RESTful API测试用例生成和优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104765683B (zh) | 2017-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104765683B (zh) | 基于moea/d算法的回归测试用例多目标优化方法 | |
CN109931678B (zh) | 基于深度学习lstm的空调故障诊断方法 | |
CN103970965B (zh) | 燃气涡轮发动机加速寿命试验试车方法 | |
CN105893256A (zh) | 基于机器学习算法的软件故障定位方法 | |
Hermadi et al. | Genetic algorithm based test data generator | |
Chandra et al. | Improving software quality using machine learning | |
Ferrer et al. | Estimating software testing complexity | |
CN108563555A (zh) | 基于四目标优化的故障更改代码预测方法 | |
Liparas et al. | Applying the Mahalanobis-Taguchi strategy for software defect diagnosis | |
CN110598305B (zh) | 一种比较电路扫描仿真增量的灵敏度分析方法 | |
CN110515826A (zh) | 一种基于次数频谱与神经网络算法的软件缺陷定位方法 | |
CN112364352A (zh) | 可解释性的软件漏洞检测与推荐方法及系统 | |
CN106294174A (zh) | 测试充分性的多维度度量方法及装置 | |
CN105718368A (zh) | 一种软件测试数据扩增方法 | |
Li et al. | An empirical study for software fault-proneness prediction with ensemble learning models on imbalanced data sets. | |
CN113127342A (zh) | 基于电网信息系统特征选择的缺陷预测方法及装置 | |
Ghiduk et al. | Using genetic algorithms and dominance concepts for generating reduced test data | |
Leśniak et al. | Application of the Bayesian networks in construction engineering | |
CN104111887A (zh) | 基于Logistic模型的软件故障预测系统及方法 | |
Tian et al. | Novel solution for sequential fault diagnosis based on a growing algorithm | |
Oliveira et al. | Footprints of fitness functions in search-based software testing | |
US20220215144A1 (en) | Learning Apparatus, Learning Method and Learning Program | |
EP3805933A1 (en) | Method and device for measuring the complexity of a computer program | |
CN104317706B (zh) | 一种基于预运算的程序变异软件错误定位方法 | |
Zhang et al. | Generating optimal class integration test orders using genetic algorithms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210423 Address after: Room 404-1, 4th floor, building 3, Fengyue yunchuang center, Hanchi 1st Road, Haojing Avenue, Fengdong new town, Xi'an City, Shaanxi Province, 710086 Patentee after: Xi'an Aoxiang cloud Measurement Technology Co.,Ltd. Address before: 710072 Xi'an friendship West Road, Shaanxi, No. 127 Patentee before: Northwestern Polytechnical University |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170606 Termination date: 20210330 |
|
CF01 | Termination of patent right due to non-payment of annual fee |