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 程序重复执行所需的计算成本.
   133   134   135   136   137   138   139   140   141   142   143