Page 240 - 《软件学报》2024年第6期
P. 240
2816 软件学报 2024 年第 35 卷第 6 期
5.3.5 本文方法可靠性统计分析
为更好地说明本文方法与传统遗传法实验结果的可靠性, 本节借用 SPSS24 (一款统计分析软件), 通过假设检
验方法中的方差检验 (F 检验, 显著性水平: α=0.05) 进行显著性分析. 将每个待测程序独立运行 100 次, 记录目标
个体首次出现的进化代数, 将传统遗传法与本文方法下获得的该数据作为两组样本来计算 F 统计量. 即, 组间均方
与组内均方的比, 该值能验证随机因素对实验结果造成的影响程度. 原假设 H 0 为各组平均数相等, 无显著性差异.
检验结果如表 6 所示.
表 6 检验结果
待测程序 F值 检验结果
PG1 40.75 拒绝H 0
PG2 18.65 拒绝H 0
PG3 12.76 拒绝H 0
PG4 44.21 拒绝H 0
目标路径, 而关键字流图法仅能覆盖单条路径.
PG5 16.34 拒绝H 0
PG6 24.40 拒绝H 0
PG7 28.33 拒绝H 0
PG8 29.65 拒绝H 0
PG9 42.88 拒绝H 0
PG10 15.74 拒绝H 0
由表 6 可知, 以上几种待测程序的 F 值均远大于界值 3.04. 这从统计学角度可验证: 排除随机因素, 相较于传
统遗传法, 本文方法通过融入链式模型与重用优秀测试用例可使得种群个体朝目标路径方向加速演化, 进而提高
待测程序的测试效率, 体现出本文方法的有效性.
5.4 与其他经典方法的比较
前文与传统遗传法进行对比, 验证了本文方法的有效性. 为进一步阐明本文将代理模型用于遗传算法在多目
标路径测试用例生成方面的优势, 选取一些利用遗传算法或通过构建代理模型生成测试用例的经典方法设计对比
实验, 包括关键字流图法 [7] 、关键点概率法 [15] 、否定遗传法 [14] 、神经网络法 [8] 和 SAEO 法 [9] . 这些方法涉及单目
标路径或多目标路径的测试用例生成方面, 与本文方法的研究方向一致, 代表性较强. 下面比较本文方法与这些对
比方法在程序 PG4, PG6, PG9, PG10, PG11, PG12, PG13 上的测试效果, 对比结果如表 7 所示. 为更直观地展示在
各评价指标下, 本文方法比其他对比方法提升的程度, 对原指标进行扩展, 增加“最大覆盖率差值” (即本文方法与
各对比方法在待测程序上覆盖率之差的最大值) 和“平均进化代数差值比例” (对比方法与本文方法的平均进化代
数之差占对比方法的比例) 这两个指标.
由表 7 可知, 相较于其他几种方法, 本文方法在覆盖率方面较优, 在平均进化代数方面也具有一定优势. 其中,
在程序 PG4 和 PG6 上, 对比关键字流图法, 本文方法与该方法的覆盖率均达到 100%; 平均进化代数差值比例分
别为–6.11 和–6.28, 这表明本文方法需要更多迭代次数. 但是, 从覆盖路径数方面, 本文方法可覆盖更多的难覆盖
在程序 PG9 和 PG10 上, 对比关键点概率法, 本文方法与该方法的覆盖率均为 100%; 平均进化代数差值比例
分别为 0.99 和 0.98, 这表明本文方法所需进化代数更少. 对比否定遗传法, 在程序 PG9 上, 本文方法与该方法覆盖
率差值最大, 差值为 3; 在这两种程序上的最小平均进化代数差值比例分别为 0.86 和 0.65.
对比神经网络法, 在程序 PG10 和 PG11 上, 均达到最大覆盖率差值, 分别为 13 和 15. 这表明本文方法较神经
网络法, 在覆盖率方面提升较大. 对比 SAEO 法, 在程序 PG12 和 PG13 上, 该方法的覆盖率分别为 100% 和 85%,
本文方法的覆盖率分别为 100% 和 94%, 在程序 PG13 上可提升 9%. 这说明, 对比其他两种代理模型, 本文模型