Page 295 - 《软件学报》2026年第7期
P. 295

2980                                                       软件学报  2026  年第  37  卷第  7  期


                 单缺陷案例上的平均运行时间, 进而说明提出方法在识别可疑特征交互时的高效性.
                    对于  RQ2, 选用  5  种流行的  SBFL  指标, 分别为  Tarantula [21] 、Ochiai [44] 、OP2 [45] 、Barinel [22] 和  Dstar [10] , 并将它
                 们应用于    FCS-FL  和基准方法中. 在单缺陷案例上, 利用评估指标             Rank、EXAM  [46] 和  Hit@X  [47]  (具体定义见第
                 5.3  节) 比较  FCS-FL  与基准方法的定位性能. 首先, 基于      Rank  和  EXAM  比较提出方法与基准方法的整体定位性
                 能. 接着, 根据结果选择更适合的         SBFL  指标计算所有方法的      Hit@1–Hit@3, 以评估提出方法的根因定位能力. 综
                 合  3  个评估指标分析   FCS-FL  在单缺陷案例上的性能表现.
                    为处理   RQ3, 将  FCS-FL  与  3  个先进方法在多缺陷案例上进行实验比较. 基于           RQ2  中选择的   SBFL  指标, 利
                 用  Hit@1–Hit@3  和  PBL (见第  5.3  节) 比较  FCS-FL  与基准方法的根因定位能力.
                    为回答   RQ4, 首先, 分别使用未约简的因果图模型、Baah           等人  [26] 提出的因果模型和本文提出的因果图模型进
                 行因果效应评估. 在单缺陷案例上, 基于相同的因果效应评估方法计算各自因果效应, 比较不同因果图所得到的性
                 能, 以说明  FCS-FL  的有效性. 接着, 分别取    µ 为  {0,0.1,0.2,...,0.9,1}, 比较  FCS-FL  在单缺陷案例上的  Hit@1  以说
                 明融合因果效应和频谱效应的必要性.
                  4.3   评价指标及基准方法
                    选用  Hit@X、Rank、EXAM    和  PBL [48] 这  4  个指标评估提出方法的有效性, 这些指标在缺陷定位任务中被广
                 泛使用  [4,8,22,49] , 它们的具体介绍如下.
                    1) Hit@X  表示检查到第   X  条语句检查到缺陷语句的样例数, 例如, Hit@1          统计在第    1  次检查即为缺陷语句的
                 样例数. Hit@1  可以体现方法的根因定位能力. 一般而言, 开发者应仅需检查少量的可疑语句即可定位到缺陷, 因
                              X ∈ {1,2,3}.
                 此本文着重关注
                    2) Rank  为排序后缺陷语句在可疑语句中的排名, 排名越靠前表示算法的定位效果越好.
                    3) EXAM  是指检测到缺陷语句时被检测语句的数量占总的可疑语句的比例, 检查语句的比例越少越好.
                    4) PBL  常用于多缺陷案例的评估, 表示检查一定数量语句中缺陷语句所占的比例, 占比越高表示算法的定位
                 能力越优.
                                              [5]
                    选择了   4  个基准算法, 分别为    FB 、SBFL  [45,48–51] 、S-SBFL [30,52] 和  VarCop [11] , 与所提方法进行实验对比. 这些
                 方法是用于    SPL  缺陷定位的先进方法, 其简要介绍如下.
                        [5]
                    1) FB 是一种基于    SBFL  技术的特征级缺陷定位方法.
                    2) SBFL  [45,48–51] 是一种基于频谱的缺陷定位技术, 广泛应用于单系统软件的缺陷定位. 为保证有效评估                   SBFL,
                 将所有产品的语句映射至对应特征下的唯一语句空间                   (即特征-行号), 并利用所有产品的测试用例进行评估.
                    3) S-SBFL  [30,52] 是一种改进的  SBFL  方法, 其在使用  SBFL  指标评估前使用切片技术隔离出与缺陷相关的
                 语句.
                            [11]
                    4) VarCop  是一种基于特征级和语句级的层级式缺陷定位方法: 在特征级上利用缺陷相关性和最小性定位
                 缺陷特征交互; 在语句级上基于程序切片和              SBFL  技术定位缺陷语句. 据我们所知, 这是目前            SPL  缺陷定位中性
                 能最优的技术.
                  5   实验结果与分析

                    本节展示了在      6  个  SPL  系统上的一系列实验, 并通过分析实验结果来回答相应的研究问题.

                  5.1   可疑特征交互识别中效率的提升        (RQ1)
                    图  5  用箱线图展示了在单缺陷案例上执行特征级缺陷定位时, 每个案例中被包含的可疑特征选择集合占所有
                 未通过产品数的比例        (表示为包含率). 如图所示, 6      个  SPL  系统中均存在被包含的可疑特征选择集合. 以              Bank-
                 AccountTP  为例, 该系统包含   56  个单缺陷案例, 因此得到     56  个数据点  (组合为箱型), 其中每个数据点表示该样例
                 中包含率的值. 除     ExamDB  系统外, 其余   5  个系统的平均包含率均较高        (即位于   12.9%  与  62.8%  之间), 意味着在
                 不处理的情况下将生成大量重复的特征交互. 对于                ExamDB  系统, 其大部分案例中的包含率为          0. 一个可能的解释
   290   291   292   293   294   295   296   297   298   299   300