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. 一个可能的解释

