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
   251   252   253   254   255   256   257   258   259   260   261