学位专题

目录>
<
DOI:10.7666/d.Y2861715

基于多目标协同进化的测试用例优先排序

石宇楠
北京化工大学
引用
回归测试是保证软件质量的有效手段,是软件生命周期的一个重要组成部分。在很多软件项目中,回归测试开销通常占整个软件产品预算的一半以上,因此,为了能够最大限度约减这部分开销,国内外研究人员进行了广泛而深入的研究,其中测试用例优先排序技术逐渐成为近年来的研究热点。  然而传统的测试用例优先排序技术存在以下两个问题:一是从度量准则来看,传统技术使用单一的测试准则来指导整个排序过程,无法同时满足多个客观因素的约束,所以只给出综合权衡后的优先排序方案,如时间紧迫且人力资源或计算资源短缺等;二是从问题的本质上来看,测试用例优先排序作为一个优化问题,目前的一些方法包括线性规划、限界剪枝、基于搜索的优化技术却都存在收敛速度较慢、易陷入局部最优等问题,并不总能够获得问题的真实最优解。  针对上述这些缺点,本文提出一种基于竞争模式的多目标协同进化算法,利用更贴近生物进化过程的协同进化算法和多个符合实际需求的度量准则来对问题进行解决。在这些度量准则中,选取了两种度量准则来评价个体的优秀程度,一是平均代码覆盖率,使得某一个测试用例排序“在较短的时间内覆盖更多的语句”,二是一种新的度量准则——平均变异杀死率,即“在较短的时间内杀死更多的变异”。协同算法以上述两个约束条件为目标,对测试用例进行优先排序,从而在一定程度上提高发现错误的能力。同时,在算法选择方面,本文利用竞争性的协同进化思想,通过使用绝对适应度与相对适应度两个指标对个体生存能力进行综合评价,不仅对个体的竞争生存能力进行提高,也增加了个体本身优秀程度,使得算法收敛速度得到进一步提升。在个体生存周期方面,与以往的进化算法不同的是,本文提出利用剔除“老年”个体的思想,来控制个体生存周期,避免陷入局部最优问题。  实验结果表明,通过设置不同的迭代次数和不同种群规模,本文算法针对不同规模的程序均可获得较高的平均错误检测率和分布均匀的帕累托边界。同时算法中引入的生存周期控制策略和竞争机制在一定程度上提高了种群的多样性,相对于传统的多目标优化算法来说,具有更快的收敛速度和更强的全局搜索能力。

协同进化;测试用例;优先排序;软件质量;生命周期

北京化工大学

硕士

计算机科学与技术

李征

2015

中文

TP311.52

85

2015-12-29(万方平台首次上网日期,不代表论文的发表时间)

相关文献
评论
相关作者
相关机构
打开万方数据APP,体验更流畅