Page 138 - 《软件学报》2025年第5期
P. 138
2038 软件学报 2025 年第 36 卷第 5 期
均时间消耗的约减率为 33.9%. 由此可以得出结论, 利用多任务进化优化的测试用例生成可以大大减少生成测试
用例所需的时间消耗.
表 2 所提方法和 Approach-SingTask 的实验结果对比
指标 IMB-MPI1 DepSolver Kfray HPL SUSY-HMC ClustalW mpiBLAST 平均值
所提方法 90.7 95.8 92.7 84.5 89.7 86.4 75.3 87.9
平均覆盖率 (%) Approach-SingTask 76.1 85.0 81.4 66.3 73.9 68.5 54.1 72.2
百分比差异 14.6 10.8 11.3 18.2 15.8 17.9 21.2 15.7
所提方法 (min) 6 093.5 2 739.7 7 596.4 51 494.1 97 686.3 142 756.8 259 793.7 81 165.8
平均时间消耗 Approach-SingTask (min) 8 869.7 3 853.3 10 961.6 81 997.0 144 935.2 219 964.3 446 380.9 130 994.6
约减率 (%) 31.3 28.9 30.7 37.2 32.6 35.1 41.8 33.9
路径覆盖率 0.025 0.061 0.039 <0.001 0.012 <0.001 <0.001 -
P值
时间消耗 0.028 0.062 0.041 <0.001 0.013 <0.001 <0.001 -
此外, 对于每一被测 MPI 程序记录的 20 次运行的路径覆盖率和时间消耗, 我们基于 Welch’s t-test 计算相应
的 P 值, 见于表 2 中第 7 和第 8 行.
根据表 2 中第 7 和第 8 行, 我们能够获得如下推论: (1) 针对 DepSolver 的路径覆盖测试, 运用所提方法和
Approach-SingTask 的路径覆盖率和时间消耗没有显著差异; (2) 对于其他测试程序, 使用提出方法和 Approach-
SingTask 的路径覆盖率和时间消耗具有显著差异.
结合表 2 中第 1–6 行的数据, 我们可以得出结论使用所提方法生成测试用例的有效性和效率明显优于
Approach-SingTask. 因此, 验证了基于多任务进化优化能够高效生成 MPI 程序目标路径的测试用例.
(2) 验证 RQ2
为了验证 RQ2, 我们分别使用所提方法和 Approach-NoMod 来生成测试用例, 用于覆盖每一被测 MPI 程序的
基本目标路径集. 表 3 列出了相关的实验结果, 表 3 中各行数据的含义可参考表 2.
表 3 所提方法和 Approach-NoMod 的实验结果对比
指标 IMB-MPI1 DepSolver Kfray HPL SUSY-HMC ClustalW mpiBLAST 平均值
所提方法 90.7 95.8 92.7 84.5 89.7 86.4 75.3 87.9
平均路径覆盖率 (%) Approach-NoMod 83.5 91.2 86.8 72.9 80.4 75.6 60.9 78.8
百分比差异 7.2 4.6 5.9 11.6 9.3 10.8 14.4 9.1
所提方法 (min) 6 093.5 2 739.7 7 596.4 51 494.1 97 686.3 142 756.8 259 793.7 81 165.8
平均时间消耗 Approach-NoMod (min) 9 331.5 3 982.1 11 474.9 85 255.1 154 322.7 231 748.1 463 090.4 137 029.3
约减率 (%) 34.7 31.2 33.8 39.6 36.7 38.4 43.9 36.9
路径覆盖率 0.073 0.089 0.081 0.034 0.066 0.057 0.023 -
P值
时间消耗 <0.001 0.022 0.005 <0.001 <0.001 <0.001 <0.001 -
由表 3 的第 1–3 行可知: (1) 对于所有被测 MPI 程序, 所提方法和 Approach-NoMod 的平均路径覆盖率的平均
值分别为 87.9% 和 78.8%; (2) 对于所有被测程序, 提出方法和 Approach-NoMod 的平均路径覆盖率的平均百分比
差为 9.1%. 以上数据表明, 本文所训练的代理模型在提高路径覆盖率方面具有优势.
从表 3 的第 4–6 行可以看出: (1) 对于 7 个被测 MPI 程序, 所提方法和 Approach-NoMod 的平均时间消耗的平
均值分别为 81 165.8 min 和 137 029.3 min; (2) 面向所有被测 MPI 程序, 使用所提方法和 Approach-NoMod, 平均时
间消耗的约减率为 36.9%. 需明确的是, Approach-NoMod 没有使用代理模型来代替 MPI 程序的实际执行, 也就是
说 Approach-NoMod 的运行过程中, 单纯依靠重复执行每一被测 MPI 程序, 计算每一测试用例生成任务中种群内
进化个体适应值, 这需要花费的平均时间消耗为 3 982.1–463 090.4 min, 它们的平均值为 137 029.3 min. 基于此, 所
提方法在测试用例生成效率方法提升了 31.2%–43.9%, 它们的平均值为 36.9%. 相应地, 可证明本文所训练的代理
模型可以大幅减少被测 MPI 程序重复执行所需的计算成本.