动态可靠性约束的多阶段测试资源分配研究
2021-02-05占德志张国富苏兆品
占德志,张国富,2,3,苏兆品,2,3,岳 峰,2
(1.合肥工业大学计算机与信息学院,合肥 230601;2.合肥工业大学工业安全与应急技术安徽省重点实验室,合肥 230601;3.安全关键工业测控技术教育部工程研究中心,合肥 230601)
0 概述
软件测试的目的是检测软件故障、发现和纠正软件缺陷从而提高软件的可靠性,其对软件项目开发至关重要[1-3]。对于一个软件开发项目而言,有接近一半的软件开发资源耗费于软件测试[4]。实际可分配的测试资源往往有限,因此,在软件测试中,软件项目经理的首要任务是制定合理且高效的测试资源分配方案,实现以最小代价(指测试成本和测试资源消耗)获得最大软件可靠性[5-7]的目的。
近年来,为了在软件可靠性、测试成本和测试资源之间实现一个理想的均衡,测试资源分配被描述为一个多目标优化问题,以最大程度地提高软件可靠性并尽可能地降低测试成本和测试资源消耗[8-10]。部分多目标进化算法(Multi-ObjectiveEvolutionary Algorithms,MOEAs)被用于解决多目标测试资源分配问题,如非支配排序遗传算法[11-12]和加权归一化多目标差分进化算法[13]等。与单目标优化算法只输出单个解相比,MOEAs可以得到一个Pareto最优解集,从而为用户提供多种选择,这些不同的选择分别对应可靠性、成本和测试时间之间不同的折中方案,因此,可以帮助用户对整个测试周期进行更加合理的安排[14]。
但是,上述研究均针对静态优化环境,都是简单地假设软件测试只有一个完整的静态阶段。在实际的软件测试过程中,整个测试周期往往会被划分成若干个测试阶段,在不同测试阶段用户可能有不同的需求,这就需要根据每个阶段的测试需求动态制定不同的测试资源分配方案。……
