论文部分内容阅读
测试用例优先排序(TCP)技术旨在为被测程序寻找满足特定目标的最优测试用例执行序列。随着对软件回归测试技术的需求不断提升,满足多目标的测试用例优先排序(MOTCP)技术近年来得到广泛研究。许多多目标演化算法用于解决MOTCP问题,但这些算法大都针对特定的测试场景,在不同的测试场景中,不同算法的结果也不尽相同,不存在一个通用的多目标演化算法在各个不同的测试场景中都能够高效运行。为解决不同测试场景中的算法调度问题,一种基于搜索的超启发式(HH)动态自适应框架被应用到MOTCP问题中。该框架主要由底层算法层和上层决策层两部分组成。底层算法层封装了多个多目标演化算法,上层决策层则是动态自适应选择底层算法的调度策略。尽管HH-MOTCP框架表现出了较好的有效性,但是上层调度策略仍有很大的改进空间,更好的上层调度策略有助于得到更满足测试优化目标的解,也会进一步提高超启发框架的性能。本课题从两个方面对HH-MOTCP框架的上层调度策略进行系统研究,一方面是基于“利用”和“探索”思想的上层调度策略,另一方面是基于强化学习方法的上层调度策略。通过对HH-MOTCP框架的上层调度策略进行研究,本课题:(1)基于底层算法即时和历史执行信息对评价指标进行改进并对选择算法展开应用研究,将不同的评价指标和选择算法组合得到18个基于“利用”和“探索”的上层调度策略,并在不同规模的被测对象上进行了实验。(2)在18个基于“利用”和“探索”的调度策略中得到了在所有被测对象上都有较好表现的最佳调度策略,它比已有的调度策略表现更好,且提升了 HH-MOTCP框架的性能。(3)在上层调度策略中使用了基于学习自动机和基于行为估计值的两种强化学习方法,本文针对HH-MOTCP框架的特点对强化学习中的奖励进行了定义并采用了不同的概率更新方式。实验结果表明基于行为估计值的强化学习方法作为上层调度策略比另一种方法用更少的时间得到了更能满足测试优化目标的解,且可以得到跟基于“利用”和“探索”的最佳调度策略同等质量的解,同时能进一步提升HH-MOTCP框架的效率。