Page 241 - 《软件学报》2024年第6期
P. 241

钱忠胜 等: 结合   SVM  与  XGBoost 的链式多路径覆盖测试用例生成                                      2817


                 C-SVMXGBoost 的预测结果更准确, 且对不同测试程序均有较强适应性.
                    从以上几种对比方法的结果可看出, 本文方法在规模较小的程序中优势不太明显, 而在规模较大的程序中优
                 势较为明显. 原因是, 虽然本文模型在不同程序上精度均较高, 但是较小规模程序的分支节点数相对较少, 通过链
                 式模型预测此类程序的覆盖路径, 在遗传过程中较优个体被排除的概率反而会增加, 这使得测试效率不太高; 而较
                 大规模的程序则相反, 较优个体被排除的概率会降低, 链式模型可提高覆盖率和减少进化代数.

                                            表 7    6  种方法在不同程序上的多指标对比

                                                              对比方法
                                关键字            关键点
                 评价指标      待测         本文   待测        本文    待测 否定遗 本文      待测 神经网 本文       待测 SAEO 本文
                           程序    流图   方法   程序   概率   方法    程序 传法  [14]  方法  程序 络法 [8]  方法  程序  法 [9]  方法
                                                  [15]
                                  [7]
                                 法              法
                  目标路径数           1    21        30   12        125   12        30   20        119   20
                  覆盖率 (%)   PG4  100  100  PG9   100  100  PG9   97  100  PG10  84   97   PG12  100  100
                 平均进化代数          6.14  43.63    6 292  28.13    200  28.13      -   70.33       -   69.04
                                                △△△△
                  目标路径数           1    57        20   20        233   20        100  25        227   30
                  覆盖率 (%)   PG6  100  100  PG10  100  97  PG10   86   97  PG11  85   100  PG13  85   94
                 平均进化代数          8.94  65.10    5 947  70.33    200  70.33      -   82.19       -   125.71
                  最大覆盖率
                    差值            0              0               13             15              9
                 平均进化  最少       –6.28           0.98            0.65            -               -
                 代数差值
                  比例   最多       –6.11           0.99            0.86            -               -
                 注: ① 因PG9–PG13为非Python代码程序, 为便于本文方法与其他经典方法比较, 此处选取它们的部分程序统一转换成Python代
                 码进行实验; ② 表中数据均来源于各文献的原始数据, 由于不同对比方法选择实验对象不同, 故存在部分程序缺少实验数据的
                 情况

                  5.5   链式模型性能与用例生成方法效率分析
                    上面已对不同链式模型以及测试用例生成方法进行了实验分析, 本节基于这些分析结果从不同角度归纳各模
                 型与用例生成方法的性能.
                    C-SVMXGBoost 的性能是影响本文方法的关键因素. 为综合评价本文构建的链式模型性能, 更直观地对比不
                 同模型在用例生成方面的优劣, 这里根据第             5.3.4  节表  5  的实验结果对链式模型的性能进行总结, 如表          8  所示.

                                                表 8    不同链式模型的性能对比

                        链式模型名称                  时间消耗                分类精度                用例生成效果
                          C-SVMRF                 △△                 △△△                  △△△
                          C-SVMBP                △△△                  △△                   △△
                          C-XGBRF                △△△                 △△△                  △△△
                          C-XGBBP                △△△                  △△                   △△
                          C-RFBP                                       △                    △
                       C-SVMXGBoost                △                △△△△                  △△△△
                 注: 标记“△”表示不同链式模型在不同指标下的性能表现程度, 标记越多则程度越深

                    由表   8  可知, 在时间方面, 耗时最多的是链式模型           C-RFBP, 其次是   C-SVMBP, C-XGBRF, C-XGBBP, C-
                 SVMRF, 最少的是本文方法构建的         C-SVMXGBoost. 在分类精度和用例生成效果方面, 最高的是             C-SVMXGBoost,
                 其次是   C-SVMRF, C-XGBRF, C-SVMBP, C-XGBBP, 最低的是   C-RFBP. 根据以上对比结果, 本文方法采用的模型
                 综合性能最好.
                    本文融合链式模型模拟预测路径, 同时寻找更多的相似目标路径, 实现多路径测试用例生成. 为综合评价本文
   236   237   238   239   240   241   242   243   244   245   246