论文部分内容阅读
在软件工程领域中,软件测试是减少系统漏洞、检测和修正错误最为行之有效的一种方法。然而随着计算机技术的飞速发展,软件系统的规模在不断扩大,系统结构越发复杂,软件测试资源的投入以及成本的消耗也在显著增加。因此,系统可靠性不再是软件项目经理唯一关注的目标。如何分配有限的测试资源,在系统可靠性、测试资源消耗以及耗费成本之间寻求一个令人满足的平衡,已成为近年来软件工程领域中的一个研究热点。然而,现有研究大都局限于测试资源的多目标静态分配。为了应对测试阶段的环境或用户需求变化导致系统结构以及测试资源分配的不确定性,本文主要研究测试资源的动态多目标分配问题。本文的主要研究内容如下:(1)分析了测试资源分配问题的研究现状以及实际应用的问题;讨论了测试资源分配问题中的多目标优化模型,包括测试资源、可靠性以及成本的相关数学描述。介绍了多目标进化算法的发展历程、原理、相关技术以及特点,并重点介绍两个性能优越的多目标进化算法:第二代非支配排序遗传算法NSGA-II和第三代广义差分进化算法GDE3。(2)针对在优化过程中,由于用户需求的变化而导致的系统结构中子系统内模块数的增加、子系统数的增加等动态变化,分别设计了相应的种群重新初始化策略和约束处理机制,并提出了一种基于GDE3的系统结构动态变化的多目标测试资源分配算法D-GDE3。D-GDE3同时考虑系统可靠性、测试成本和耗费的测试资源,能够通过历史解重新初始化种群以适应系统结构的变化,并对新解进行约束处理以保证解的可行性。对比实验结果表明,D-GDE3能够快速收敛并获得质量较好的解集。(3)构建了一种最小化系统剩余错误总数和测试时间消耗的多阶段两目标动态测试资源分配问题数学模型,并提出了一种基于NSGA-II的多阶段两目标动态测试资源分配算法MS-NSGA-II。MS-NSGA-II以NSGA-II为基础,嵌入了参数估计、种群重新初始化和约束处理技术,实现了多阶段的动态反馈与多目标优化,能够自适应的调整每个测试阶段的测试资源分配。对比实验结果表明,MSNSGA-II能够很好的适应每个测试阶段之间的环境变化,提供更多更高质量的测试资源分配方案。(4)构建了一种最大化系统可靠性、最小化测试成本和测试资源消耗的多阶段三目标动态测试资源分配数学模型,并提出了一种基于GDE3的多阶段三目标动态测试资源分配算法MP-GDE3。根据构建的模型,在MP-GDE3算法中设计了相应的参数估计、种群重新初始化和约束处理技术。参数估计是多阶段不可缺少的技术,也是软件可靠性增长模型的基础;种群重新初始化可以节省测试资源,充分利用历史信息获得具有一定收敛程度的初始种群;约束处理可以帮助个体自我修正、加快解集的收敛速度,从而获得高质量的分配方案。对比实验结果验证了上述策略的有效性。