论文部分内容阅读
在软件演化中,回归测试是软件测试的重要方法。它可以发生在单元测试、集成测试、功能测试等多个测试阶段,特别是在迭代式软件开发中,软件新版本连续发布,回归测试更加频繁,测试成本高昂。测试用例优先级技术将测试用例按照某种测试目标进行排序,提高缺陷早期检测速率,对于提高回归测试的效率和降低测试成本有重要意义。本文一方面针对传统遗传算法在白盒测试用例优先排序中收敛速度慢和稳定性差的问题对传统遗传算法做出改进;另一方面,研究时间感知和多目标优化这两个测试场景下的测试用例优先级问题并提出了新的求解方法和设计了新的算法。相关研究工作如下:1.利用佳点集遗传算法进行白盒测试用例优先排序。针对传统遗传算法在白盒测试用例优先排序中收敛速度慢和稳定性差的问题,使用随机抽样选择策略和佳点集交叉算子对遗传算法进行重新定义。算法根据程序实体覆盖矩阵对个体进行编码,以程序实体覆盖平均百分比作为适应度函数,采用随机抽样选择算子和佳点集交叉算子产生新一代种群。实验结果表明所提算法比传统遗传算法收敛速度快、稳定性好,有助于尽早发现软件缺陷,降低测试成本。2.基于时间感知的测试用例优先排序。针对基于时间感知的测试用例优先排序问题,提出整数线性规划与遗传算法相结合的混合算法。首先,基于整数线性规划选择对待测程序实体的覆盖量最大且满足时间约束的测试用例集;然后,根据程序实体覆盖矩阵对个体进行编码,以程序实体覆盖率作为适应度函数,利用遗传算法对测试用例集进行排序。实验结果表明混合算法收敛速度快、稳定性好,优于传统整数线性规划方法。3.多目标优化的测试用例优先排序。针对多目标测试用例优先排序问题,提出上位粒子群优化算法。该算法将生物学中的上位性引进粒子群优化算法,以测试用例序列对待测程序的平均分支覆盖率和有效执行时间作为适应度函数,采用上位交叉更新粒子。实验结果表明上位粒子群优化算法所得非支配解集分布范围广,平均分支覆盖率比基于单点交叉的粒子群优化算法和基于顺序交叉的粒子群优化算法更高,是一种求解多目标测试用例优先排序问题的有效算法。4.开发出测试用例优先排序原型工具,工具实现了测试用例优先排序的智能化、自动化和可视化。