在回归测试中存在着多个相互制约甚至相互冲突的优化目标,如测试用例的数量、代码覆盖率、缺陷检测效率、测试用例的易调试性等。现有的测试用例选择、优先级技术大多仅针对单一的优化目标,还不能很好地适用于多目标优化的测试实践。本项目将结合软件测试特性,针对多目标约束下的回归测试用例优化技术展开研究,主要内容包括(1)根据测试历史和当前测试实践,结合动态反馈信息,设定或调整约束条件、目标函数和优化策略,建立多目标测试用例选择问题的动态优化模型。(2)根据不同优化模型的特点,选用合适的多目标规划法或进化多目标优化算法求解测试用例选择问题,并通过实验分析、度量并改进不同求解算法。(3) 综合应用多目标测试用例选择技术、测试用例补充生成技术和动态测试用例优先级技术,研究综合的回归测试优化策略。通过上述研究,将有效解决回归测试用例选择、排序过程中存在的多目标优化问题,进一步提高测试效率并降低测试成本。
Regression testing;Multi-objective optimization;Reinforcement learning;Test case selection;Test case prioritization
测试用例选择、优先级技术等测试用例优化技术是软件回归测试中的一个研究热点。本项目针对回归测试中存在着多个相互制约甚至相互冲突的优化目标的测试实际,针对多目标约束下的回归测试用例优化技术展开研究根据测试历史并结合反馈信息,建立了基于马尔科夫链的多目标回归测试用例选择模型。根据模型的特点,分别采用动态规划、遗传算法、强化学习方法作为求解多目标选择问题的算法,特别是深入研究了各类强化学习方法,并从多方面改进了这一算法,以适用于多目标测试用例优化的应用场景。提出了一种基于自适应随机序列的测试用例优先级技术,进一步提高了测试效率并降低了测试成本,给出了综合的回归测试优化策略。三年来,课题总体进展顺利,按照要求完成了研究计划,达到了预期目标。项目共发表论文 23篇,包括SCI索引的期刊论文2篇,EI索引的期刊和会议论文18篇,其中计算机领域的权威核心期刊论文《计算机学报》、《软件学报》和《计算机研究与发展》论文6篇,CCF推荐C类国际会议论文2篇。申请获得软件著作权4项,开展国际合作交流4次,培养研究生 6名。