Page 178 - 《软件学报》2026年第7期
P. 178
宋壹 等: 基于异常检查点植入的软件缺陷定位方法 2863
DStar 和 Naish2) 进行对比, 以评估 INSPECT 对 Tie 问题的处理能力. 实验结果如表 4 和表 5 所示, 其中第 2 行展
示了 4 种 SBFL 技术 (为方便表格展示, 记为 M) 在数据集各个待测错误版本上的平均 Tie 规模, 第 3 行展示了分
别配置不同 M 的 INSPECT 变体的平均 Tie 规模, 第 4 行是 INSPECT M 相较于 M 的提升幅度.
表 4 INSPECT 方法对 Tie 问题的缓解能力 (模拟缺陷)
对比技术 Crosstab Ochiai DStar Naish2
M 208.86 363.70 363.70 208.86
INSPECT M 10.43 10.44 10.43 10.43
提升幅度 (%) 95.01 97.13 97.13 95.01
表 5 INSPECT 方法对 Tie 问题的缓解能力 (真实缺陷)
对比技术 Crosstab Ochiai DStar Naish2
M 160.28 284.18 284.22 160.28
9.22 9.22 9.22 9.22
INSPECT M
提升幅度 (%) 94.25 96.76 96.76 94.25
以对表 4 的分析为例, 可以看出, 4 项 SBFL 技术在实验数据集上产生的缺陷定位结果中均存在较严重的 Tie
问题, 例如, 在 Crosstab 生成的程序语句风险值排序列表中, 平均存在 208.86 条与真实缺陷语句具有相同风险值
的语句, 在 Ochiai、DStar 和 Naish2 的结果中, 这一数字分别是 363.70、363.70 和 208.86. 在真实的软件缺陷定位
任务中, 过大规模的 Tie 会严重影响缺陷定位技术的实用价值, 因为调试人员需要手工从 Tie 中逐条找出缺陷语
句. 与单纯使用 SBFL 技术相比, 融合了 SBFL 的 INSPECT 方法能够明显降低 Tie 的规模, 削减幅度最高可达
97.13%. 从表 5 中可以看出, 4 项 SBFL 技术在真实缺陷数据集上的缺陷定位同样受制于 Tie 问题, 例如, 在 Crosstab
生成的程序语句风险值排序列表中, 平均存在 160.28 条与真实缺陷语句具有相同风险值的语句. 与单纯使用 SBFL
技术相比, 融合了 SBFL 的 INSPECT 方法能够明显降低 Tie 规模, 削减幅度最高可达 96.76%.
4.3 检查点植入密度如何影响 INSPECT 方法的效果
第 2.1 节介绍了植入检查点的具体方法, 其中植入密度 (即被选为检查点植入目标的程序函数比例) 可能对方
法的缺陷定位效果有关键影响. 方法默认的植入密度为 20%, 即顺序扫描程序中的所有函数, 以固定间隔 4 为函数
植入检查点. 本研究问题额外选取 1%、5%、10% 和 25% 这 4 个不同的密度值, 即在检查点植入阶段分别以固定
间隔 99、19、9 和 3 为顺序扫描的函数植入检查点. 其中, 1%、5% 和 10% 是比原配置 20% 更低的密度值, 25%
则更高. 实验不选取 50%、100% 等进一步高的密度值, 因为在这些密度设置下可能收集到规模过大的异常触发
信息, 导致异常信息失去相较现有方法广泛采用的传统信息源所具有的规模更小、分析难度更低的优势. 本研究
问题用最好、平均和最差情况下的 EXAM 指标来进行度量, 实验结果如表 6、表 7 和图 5 所示 (为了控制变量便
于比较, 本研究问题将打破 Tie 阶段所采用的 SBFL 技术固定为 Crosstab, 即对 INSPECT C 变换不同的密度值).
表 6 不同检查点植入密度下 INSPECT 方法的缺陷定位有效性 (模拟缺陷)
密度值 (%) EXAM_Best EXAM_Average EXAM_Worst
1 193.72 215.73 237.73
5 107.05 124.37 140.79
10 0.91 28.03 33.74
20 (INSPECT C ) 0.63 5.85 11.06
25 23.78 29.66 35.53
以对表 6 的分析为例, 可以发现, INSPECT C 在 3 种情况下的缺陷定位有效性均随检查点植入密度的降低而
下降. 以 EXAM_Average 为例, 配置 20% 密度值的原始 INSPECT 方法的指标值为 5.85, 而在 10%、5% 和 1% 的
密度值下, 该值分别为 28.03、124.37 和 215.73, 效果呈明显下降趋势. 这一现象可能与临时植入检查点的特性有

