论文部分内容阅读
在软件修改后,为了确认当前的系统的功能是否受到修改的影响通常会进行回归测试。这是软件测试的重要组成部分,最常用的策略是重新运行测试用例集合中已被执行的全部测试用例,用以确定程序原有行为是否发生改变。由于软件的频繁修改,版本的不断更新及错误的修正等原因导致执行回归测试的频率也越来越高。然而在软件演化过程中软件规模不断增长,测试用例数量也随之不断增多,运行测试用例集中所有的测试用例所需的开销也不断增大。研究人员提出了一些测试用例集优化技术,包括测试用例选择,测试用例集最小化和测试用例预优化。本文研究了回归测试用例预优化方法,该方法依据某个准则对测试用例进行排序。早期的预优化技术通常只需要优化一个目标,然而随着测试环境复杂性的提高及人们需求的不断变化,在进行预优化过程中需要同时考虑多个目标,所依据的准则也由单一向多个准则变化。本文针对平均语句覆盖率(average percentage of statement coverage, APSC)和有效执行时间(effective execution time, EET)两个目标的测试用例预优化问题,提出了多目标测试用例预优化的蚁群优化算法(Ant Colony Optimization,ACO)。设计了算法中的选择概率公式以及启发信息函数,详细介绍了算法中的各主要部分:解的构造,解的评价,非支配排序以及解集更新和信息素更新过程。蚁群算法中的参数设置对算法快速收敛到最优解有重要影响,根据具体问题不同,参数设置不尽相同。多个参数优化问题本身是一个多目标优化问题,本文采用控制单一变量法和遗传算法优化这些参数使ACO能以较低的计算开销达到质量较高的解。随后应用一个基于搜索的优化算法一遗传算法进行参数组合优化。实验对象取自SIR(Software-artifact Infrastructure Repository, SIR)库中的五个被测程序和基于Google发布的一个开源程序V8。结果表明将蚁群优化算法应用于多目标测试用例预优化问题是可行的,并且由控制单一变量法能很好地平衡解的质量和收敛时间,遗传算法优化参数组合能得到更多的参数组合,其得到的解基本不劣于前者,说明该方法的可行性和有效性。