Page 237 - 《软件学报》2024年第6期
P. 237
钱忠胜 等: 结合 SVM 与 XGBoost 的链式多路径覆盖测试用例生成 2813
标路径数较少, 传统遗传法的进化代数总量分别达到 4 万代和 6 万代之多; 本文方法为 875 代和 5 051 代, 与传统
遗传法相比, 至少减少 92.21%. 随着目标路径数的增加, 传统遗传法所需进化代数总量急剧增加, 本文方法则相对
缓慢. 在较复杂程序 PG8 中, 传统遗传法的进化代数总量达到最高, 为 615 621 代, 本文方法的进化代数总量也达
到最高, 为 195 410 代, 但仍比传统遗传法的减少了 68.26%. 平均进化代数方面, 在程序 PG1 和 PG2 中, 传统遗传
法的分别为 314.47 代和 457.07 代, 本文方法分别为 6.23 代和 8.63 代, 与传统遗传法相比, 分别减少了 98.02% 和
98.11%; 在程序 PG6, PG7, PG8 中, 传统遗传法的分别为 291.28 代、248.74 代、498.05 代, 本文方法分别为
65.10 代、73.41 代、98.69 代, 相比于传统遗传法, 平均进化代数分别减少了 77.65%, 70.49%, 80.18%.
表 3 本文方法与传统遗传法在不同程序上的各指标对比
对比方法 指标 (%)
待测 目标路径数 评价指标 C-SVMXGBoost
程序 传统遗传法 本文方法 进化代数总量 平均进化代数 执行时间之 模型更新次数
之差百分比 之差百分比 差百分比
覆盖率 (%) 77 100
进化代数总量 43 252 875
95
PG1 2 97.98 98.02 –7.29 0
平均进化代数 314.47 6.23
执行时间 (s) 53.38 57.27
覆盖率 (%) 60 100
进化代数总量 75 540 2 539
PG2 5 96.64 98.11 34.93 0
平均进化代数 457.07 8.63
执行时间 (s) 65.02 42.31
覆盖率 (%) 58 100
进化代数总量 64 814 5 051
PG3 2 92.21 94.18 16.42 0
平均进化代数 612.43 35.63
执行时间 (s) 77.05 64.40
覆盖率 (%) 73 100
进化代数总量 128 470 26 365
PG4 21 79.48 86.99 3.08 0
平均进化代数 335.32 43.63
执行时间 (s) 62.41 60.49
覆盖率 (%) 64 100
进化代数总量 215 473 25 710
PG5 35 88.07 93.06 21.22 0
平均进化代数 425.38 29.54
执行时间 (s) 85.10 67.04
覆盖率 (%) 75 100
进化代数总量 292 493 89 534
PG6 57 69.39 77.65 8.28 0
平均进化代数 291.28 65.10
执行时间 (s) 178.50 163.72
覆盖率 (%) 82 100
进化代数总量 285 126 10 092
PG7 61 96.46 70.49 5.09 1
平均进化代数 248.74 73.41
执行时间 (s) 301.20 285.87
覆盖率 (%) 65
进化代数总量 615 621 195 410
PG8 123 68.26 80.18 2.82 1
平均进化代数 498.05 98.69
执行时间 (s) 831.28 807.83
覆盖率 (%) 67 100
进化代数总量 175 379 34 621
PG9 12 80.26 93.47 24.46 0
平均进化代数 430.67 28.13
执行时间 (s) 66.84 50.49
覆盖率 (%) 71 97
进化代数总量 190 217 50 230
PG10 20 73.59 80.30 9.43 1
平均进化代数 357.07 70.33
执行时间 (s) 129.30 117.11