关键词:
路径测试
路径选择
消息传递并行程序
多目标优化
Pareto最优解集
摘要:
软件测试是软件质量保证的重要手段,贯穿整个软件开发生命周期。路径测试作为一种应用广泛的方法,其前提是测试有效的路径。然而,现有路径生成方法具有测试效率不高与易生成冗余路径等缺点,这导致路径测试难以满足实际需求。此外,并行程序现已广泛用于大规模科学或工程计算,但并行程序中多进程和通信语句的存在,进一步增加了测试路径生成的难度。鉴于此,本文主要研究用于软件测试的路径选择优化模型及其进化求解方法。本文的主要研究工作如下:(1)针对已有路径生成方法易生成冗余测试路径的问题,提出一种用于串行程序测试的路径选择优化模型及其进化求解方法。为解决该问题,本文建立优化模型,并采用多目标进化算法求解。主要思想为:首先,以多条路径为决策变量,基于该决策变量包含的边数、路径数及其覆盖难度,建立多目标优化模型;然后,采用多目标进化算法求解该模型,得到满足需求的目标路径集。将所提方法应用于7个基准测试程序,并与其它5种经典算法比较。实验结果表明,相比其它算法,所提方法能够在保证测试充分性的条件下,减少冗余路径的数量并降低覆盖难度,从而减少生成测试数据的时间消耗,提升测试效率。(2)针对并行程序中多进程和通信语句的存在导致测试难度增加的问题,提出一种用于并行程序测试的路径选择优化模型及其进化求解方法。该方法需建立适用于并行程序的多目标优化模型,将多条并行程序路径作为决策变量,确定如下4个指标:决策变量包含的控制边和通信边的总数,并行程序路径数,路径集中通信路径数比例以及路径集的覆盖难度。根据以上四个指标设计两个目标函数。在多目标优化模型的求解过程中,通过集合间和集合内的交叉操作进化种群,直至得到满足需求的目标路径集。将所提方法应用于7个消息传递并行程序,并与其它3个经典算法比较。实验结果表明,相比其它算法,所提方法能够有效选择并行程序的测试路径。上述研究工作丰富了串行和并行程序路径测试的路径选择理论与方法,扩大了多目标进化算法的应用范围,具有重要的理论意义和实用价值。该篇文章含有图10幅,表18个,参考文献92篇。