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

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


                                     表 5    本文模型与其他链式模型在不同程序上的各指标对比

                 待测   目标      评价指标                         对比链式模型                            改进程度 (%)
                 程序 路径数                C-SVMRF C-SVMBP C-XGBRF C-XGBBP  C-RFBP C-SVMXGBoost  最小    最大
                             覆盖率 (%)     100     100     100     100     100       100       0      0
                            进化代数总量       904     897     922     895     937       875      2.23   6.62
                 PG1   2
                            平均进化代数       6.81    6.63    6.97    6.85    8.19     6.23      6.03   23.91
                             执行时间 (s)    58.43   58.27   61.24  60.86   65.22     57.27     1.70   12.19
                             覆盖率 (%)     100     100     100     100     100       100       0      0
                            进化代数总量       4 990   5 023   5 231   5 206  8 442     5 051     −1.22  40.17
                 PG3   2
                            平均进化代数       34.27   35.32   37.10  36.78   65.31     35.63     −4.00  45.44
                             执行时间 (s)    62.89   63.02   65.11  65.07   74.42     64.40     −2.40  13.46
                             覆盖率 (%)      92      90      95     95      79        100       5      21
                            进化代数总量      132 714  148 017  121 736  117 969  249 326  89 534  24.10  64.09
                 PG6   57
                            平均进化代数      124.63  129.12   94.51  93.13   253.29    65.10     30.10  74.30
                             执行时间 (s)   257.00  270.33  261.54  260.19  284.02    163.72    36.30  42.36
                             覆盖率 (%)      77      75      86     83      68        95        9      27
                                               4.51%, 最大改进程度可达
                            进化代数总量      539 480  557 125  329 419  371 842  591 075  195 410  40.68  66.94
                 PG8   123
                            平均进化代数      309.74  312.54  190.53  225.18  453.20    98.69     48.20  78.22
                             执行时间 (s)   862.15  872.32  845.95  850.74  924.82    807.83    4.51   13.65
                             覆盖率 (%)      85      82      79     75      69        97        12     28
                            进化代数总量       91 472  115 745  136 172  145 975  227 101  50 230  45.09  77.88
                 PG10  20
                            平均进化代数      182.65  231.09  268.34  291.80  388.22    70.33     61.49  81.88
                             执行时间 (s)   134.08  141.62  137.48  145.51  160.26    117.11    12.66  26.93
                 注: 本文链式模型C-SVMXGBoost (用灰底表示)与其他链式模型在各评价指标上的最小改进程度用粗体表示, 而最大改进程度
                 用粗体加下划线表示, 并在对比链式模型的对应数据上用同样方式进行标注

                    对于简单程序      PG1  和  PG3, 这  6  种链式模型在覆盖率方面均达到       100%, 但在进化代数总量、平均进化代数
                 和执行时间方面, 链式模型        C-RFBP  相比于其他模型结果较差. 与个别模型相比, 本文模型               C-SVMXGBoost 优势
                 不明显. 例如, 在程序    PG1 上, 本文模型略优于     C-SVMBP  与  C-XGBBP; 在程序  PG3 上, 本文模型仅次于    C-SVMRF
                 模型, 是由于该程序输入数据维度较高, 在            C-SVMRF  链式模型中仅选择      SVM  子模型即可达到较高精度, 但        SVM
                 与  RF  在求解因存在难覆盖节点而导致样本不均衡问题上均不及                  XGBoost, 故在我们的链式模型       C-SVMXGBoost
                 中包含了    XGBoost 子模型, 这需花费一定的初始融合时间, 而且由于              PG3  程序本身较为简单, 难覆盖节点较少,
                 XGBoost 在该程序上的作用不明显, 从而导致本文模型在              PG3  程序上比   C-SVMRF  模型稍差.
                    对于稍复杂程序      PG6, PG8  和  PG10, 链式模型  C-SVMXGBoost 在  4  种评价指标下均优于其他几种模型, 且优
                 势明显; 在程序    PG6  和  PG8  中, 链式模型  C-XGBRF  和  C-XGBBP  的结果优于  C-SVMRF, C-SVMBP  和  C-RFBP;
                 在程序   PG10  中, 链式模型  C-SVMRF  和  C-SVMBP  的结果优于   C-XGBRF, C-XGBBP  和  C-RFBP. 对比以上几种
                 模型在这些程序上的改进程度, C-SVMXGBoost 的覆盖率最小可提升                 5%, 最大可提升    28%; 进化代数总量上, 最
                 小改进程度为     24.10%, 最大改进程度可达      77.88%; 平均进化代数上, 最小改进程度为         30.10%, 最大改进程度可达
                 81.88%; 执行时间上, 最小改进程度为                             42.36%. 得以改进的主要原因是, 无论是针对输
                 入数据类型为数值型程序         (如  PG6), 还是针对非数值型程序      (如  PG8), 在链式融合过程中, 将     SVM  和  XGBoost 分
                 别作为初始预训练模型, 使得链式模型精度较高, 为模型融合节省时间; 而分别将                        SVM, XGBoost 与  RF, BP  两两
                 融合的模型不能很好地应对上述程序特点, 对于涉及高维数据处理以及样本不均衡等问题的测试程序, 不能准确
                 地将其路径节点状态分类. 因此, 相比于将            SVM  与  XGBoost 融合的  C-SVMXGBoost 模型, 其他链式模型的精度
                 有所下降, 在遗传变异过程中, 使得路径预测的准确率降低. 此外, 由于融合                     RF  和  BP  的链式模型精度较低, 导致
                 需进行插桩验证的次数增多, 同时排除了较多的优秀个体, 从而使得进化代数总量、平均进化代数、执行时间也
                 远多于本文的链式模型        C-SVMXGBoost. 所以, 为适应不同测试程序的特征以及需求, 选择合适的子模型进行链
                 式融合对提升测试效率十分关键.
   234   235   236   237   238   239   240   241   242   243   244