• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 15
    • 下载费用:30 金币  

    重庆时时彩开奖直播下载: 基于MOEA/D算法的回归测试用例多目标优化方法.pdf

    摘要
    申请专利号:

    重庆时时彩单双窍门 www.4mum.com.cn CN201510144853.7

    申请日:

    2015.03.30

    公开号:

    CN104765683A

    公开日:

    2015.07.08

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 授权|||实质审查的生效IPC(主分类):G06F 11/36申请日:20150330|||公开
    IPC分类号: G06F11/36 主分类号: G06F11/36
    申请人: 西北工业大学
    发明人: 郑炜; 李知隆; 李隆俊; 阴一溦; 吴潇雪
    地址: 710072陕西省西安市友谊西路127号
    优先权:
    专利代理机构: 西北工业大学专利中心61204 代理人: 王鲜凯
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201510144853.7

    授权公告号:

    104765683B||||||

    法律状态公告日:

    2017.06.06|||2015.08.05|||2015.07.08

    法律状态类型:

    授权|||实质审查的生效|||公开

    摘要

    本发明公开了一种基于MOEA/D算法的回归测试用例多目标优化方法,用于解决现有回归测试用例多目标优化方法复杂的技术问题。技术方案是从影响测试用例效用的所有属性中选取三个属性,分别测定所述三个属性对于测试用例效用的影响程度,采用GCC编译器的内置插件GCOV测定代码覆盖率,测定分支覆盖过程使用插装程序分析被测程序源码,在其中的if-else分支、for循环、do-while和while-do循环之中插入检测代码,采用开源工具Valgrind测试用例执行时间。本发明采用MOEA/D算法进行回归测试用例集三目标优化,在完整覆盖各项测试需求的情况下,可以有效的进行测试用例集优化,方法简单。

    权利要求书

    权利要求书
    1.  一种基于MOEA/D算法的回归测试用例多目标优化方法,其特征在于包括以下步骤:
    定义一个决策向量x,该向量能够优化一个包含M个向量的目标函数fi(x),其中i=1,2,...,M;
    假设最终优化目标为使函数fi取最大值,其中i=1,2,...,M;称决策向量x优超决策向量y,记为x>y;当且仅当目标函数fi(x)与fi(y)满足:且∃i∈{1,...,M}.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(x|λj,z*)=max1im{λij|fi(x)-zi*}]]>
    其中,λj=(λ1j,λ2j,...,λmj)T;]]>
    在该分层方法中,函数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,用于存储搜索最优解过程中找到的非支配解。

    说明书

    说明书基于MOEA/D算法的回归测试用例多目标优化方法
    技术领域
    本发明涉及一种回归测试用例多目标优化方法,特别是涉及一种基于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(x|λj,z*)=max1im{λij|fi(x)-zi*}]]>
    其中,λj=(λ1j,λ2j,...,λmj)T.]]>
    在该分层方法中,函数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层子问题如下:
    gte(x|λj,z*)=max1im{λij|fi(x)-zi*}]]>
    其中,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个套件的详细信息列举如下表:
    套件名代码行数测试用例数tcas1731608tot_info4061052schedule3682650replace5635542print_tokins7054130print_tokens27884115schedule23072710
    根据上面的算法描述,需要测定套件在不同测试用例下的语句覆盖率,分支覆盖率,和运行时间,下面分别描述这三项运行指标的测定和使用流程:
    1)语句覆盖率:
    在语句覆盖率的测定过程中,通??梢圆捎帽嘁肫髋涮椎牟寮赐瓿筛ㄖ嘁牍ぷ?。在本发明中,采用了开源的C程序编译器GCC以及GCC编译器配套的测定代码覆盖信息的插件GCOV。该工具可以在代码编译阶段对被测代码自动插入执行标记,以Siemens Suite中的tcas套件为例,在被测代码执行后,通过GCOV插件的输出结果对被测代码中语句覆盖的情况进行统计,通常情况下绘制出一张如下描述语句覆盖信息的表格:
     s1s2s3...snt1110 1t2101 0t3111 0
    ..................tm011 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算法进行回归测试用例集三目标优化,在完整覆盖各项测试需求的情况下,可以有效的进行测试用例集优化。

    关 键 词:
    基于 MOEA 算法 回归 测试 多目标 优化 方法
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:基于MOEA/D算法的回归测试用例多目标优化方法.pdf
    链接地址://www.4mum.com.cn/p-5894869.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03