Page 256 - 《软件学报》2024年第6期
P. 256
2832 软件学报 2024 年第 35 卷第 6 期
5.3 实验设置
本文的主要实验设置如下.
• 测试集规模 N: 将 N 取 4, 6, 10, 50 和 100 等 5 个值. 一方面, 上述设置涵盖了小、中和大规模的测试集规模,
使得本文的实验和结论更具说服力; 另一方面, 该设置有助于探究各算法性能随着 N 的变化趋势.
• 算法的终止条件: 采用最大运行时间作为算法的终止条件. 与文献 [33] 的设置保持一致, 对于小规模软件产
品线, 最大运行时间为 6 s; 中等规模软件产品线, 最大运行时间为 30 s; 大规模软件产品线, 最大运行时间为 200 s.
• 参数 P r : 对 RQ1–RQ3, 其取值固定为 0.1, 与既往工作 [33] 保持一致. 对 RQ4, 本文将该参数取不同值以探讨
它们对算法性能的影响.
• 软硬件环境: 本文的实验在个人台式机上进行, 其硬件配置为: Intel i7-7700 处理器, 3.60 GHz 频率, 8.00 GB
内存, 8 线程; 软件配置为: Windows 10 操作系统, Java 编程语言, Eclipse 集成开发环境.
• 独立运行次数: 由于本文算法及对比算法均是随机算法, 故本文将各算法独立运行 30 次, 采用性能指标的中
位数作为分析与比较的标准.
5.4 假设检验
较大时
采用 Mann-Whitney U 检验 (简称 U 检验) [45] 判断两个算法之间是否有显著差异 (显著性水平 α = 0.05 ). 假设
检验结果由 3 个符号•, ◦ 和±标注, 分别表示第 1 个算法显著地优于、差于和等同于第 2 个算法 (通常为第 1 个算
法的变体或其他对比算法).
采用 Vargha 等人的 ˆ A 12 统计量 [46] 判断两个算法之间差异程度的大小. ˆ A 12 ∈ [0,1] 统计量是一种非参数效应
量 (effect size) 度量方法. ˆ A 12 度量了第 1 个算法较第 2 个算法获得更高指标值的概率. 具体地, 若 ˆ A 12 > 0.5 , 则表
示第 1 个算法比第 2 个算法具有更高的概率获得更优指标值 (用符号↑表示); ˆ A 12 = 0.5 表示两算法是相当的
ˆ A 12 < 0.5 表示第 1 个算法比第 2 个算法具有更低的概率获得更优指标值 (用符号↓表示). 根据
(用符号~表示);
Vargha 等人 [46] , 效应量的幅度可定性地评估为 large (l), medium (m), small (s) 和 negligible (n). 本文采用 R 平台的
ˆ A 12 统计量.
effsize 软件包计算
考虑所有的特征模型, 采用 Friedman 检验 [47] 计算各对比算法的平均排名. 该检验法首先在单个特征模型上独
立地对各算法进行排序, 然后计算这些算法在所有特征模型上的平均排名. 显然, 排名越小表示算法越优. 事实上,
Friedman 检验非常适合用于评估与比较算法的整体性能表现.
5.5 实验结果与分析
本节将展示 4 个研究问题的实验结果, 并对结果进行分析与解释, 最后给出各研究问题的答案.
5.5.1 采用多样性求解器有助于改善覆盖率和缺陷检测率 (RQ1)
表 1 给出了 dSATNS 与 SATNS 两个算法的覆盖率 (%) 以及成对比较的 U 检验结果. 如表 1 所示, 对所有 N
值而言, dSATNS 在大多数特征模型的覆盖率是高于 SATNS 的. 具体地, 图 2 (a) 给出了 dSATNS 显著优于 (•)、
差于 (◦) 和等同于 (±) SATNS 的特征模型所占百分比. 例如, 当 N=4 时, dSATNS 在 40% 的模型上显著优于
SATNS. 从图 2 (a) 可看出, 当 N 较小时 ( N ⩽ 10 ), dSATNS 较 SATNS 具有明显优势: 前者表现更优的特征模型百
分比远高于后者表现更优的特征模型百分比. 当 N (N=50 和 N=100), 二者的性能差异不明显. 在绝大多数
(超过 88%) 的特征模型上, dSATNS 和 SATNS 的覆盖率不具有统计意义上的差异. 由此可见, 当 N 较小时, 采用
多样化的 ProbSAT 求解器能显著提升算法的覆盖率.
类似地, dSATNS 与 SATNS 的缺陷检测率以及 U 检验结果汇总在表 2 和图 2(b). 如图 2(b) 所示, 虽然在超过
66% 的特征模型上, 两算法的缺陷检测率并无显著差异. 但是, 不论 N 取何值, dSATNS 表现更优的特征模型所占
百分比始终高于其表现更差的特征模型所占百分比, 且相应百分比的差异最高可达 9 倍 (即 N=10 的情形). 因此,
我们可以认为: dSATNS 较 SATNS 发现更多软件缺陷的潜力更大.
进一步地, 为比较 dSATNS 和 SATNS 两个算法差异程度的大小, 表 3 按照效应量幅度汇总了关于覆盖率和
ˆ A 12 比较结果. 例如, 表 中第 行第 列的数字“28%”表示: 在 就覆
缺陷检测率的 3 2 3 28% 的特征模型上, dSATNS