Page 299 - 《软件学报》2026年第7期
P. 299
2984 软件学报 2026 年第 37 卷第 7 期
5.4 不同因果模型和融合权重的不同取值对定位能力的影响 (RQ4)
为验证提出因果图模型 (用 CG 1 表示) 的有效性, 将其与另外两种因果图模型在 6 个产品线系统的单缺陷案
例上进行实验比较, 这两种因果图模型分别为 Baah 等人 [26] 构建的因果图 (用 CG 2 表示) 和未约简的因果图模型
(用 CG 3 表示). 实际上, 由于 CG 3 可能存在环, 无法直接作为因果图进行因果效应评估. 因此, 本文使用一种简单
的方式去除环, 同时尽可能保留已有的因果关系, 即找到环中出度最小的节点, 并删除以它为先驱节点的边, 直至环消失.
表 5 展示了在相同因果效应评估方法下, 分别使用 CG 1 、CG 2 和 CG 3 时对缺陷定位的性能比较. 表中“-”表
示由于因果图模型过大, 无法在有限的时间内计算出因果效应. 当使用 CG 3 作为因果图模型时, 由于 Elevator、
ZipMe 和 GPL 的语句节点数较多, 逐一计算每个节点对测试结果的因果效应极为费时, 因此无法获得结果. 这表
明过长的因果路径会严重降低因果推理的效率, 尤其在更复杂的系统中. 对于 ExamDB 和 Email-FH-JML, 使用
CG 3 进行因果推断可以获得比 CG 1 和 CG 2 更优的定位性能, 因为它考虑了语句间更多的因果关系, 在混淆因素少
的情况下可以得到更准确的因果效应. 然而, 在 BankAccountTP 中, 使用 CG 3 取得了最差的定位性能, 这是因为未
约简的因果图模型可能包含更多的潜在因子, 增加了模型的复杂性和混淆因素的数量, 这些因素同时影响因变量
和自变量, 导致观察到的效应并不是真正的因果效应. 因此, 对基于程序依赖得到的因果图模型进行因果关系约简
是有必要的. 此外, 从表 5 中可知, 使用 CG 2 进行因果推断时, 定位性能略低于使用 CG 1 . 这是因为 CG 1 将中介变
量纳入因果效应计算, 以减少误差项的方差, 使因果效应评估更精确.
表 5 FCS-FL 使用不同因果图的性能比较
平均Rank 平均EXAM
系统
FCS-FL (CG 1 ) FCS-FL (CG 2 ) FCS-FL (CG 3 ) FCS-FL (CG 1 ) FCS-FL (CG 2 ) FCS-FL (CG 3 )
Elevator-FH-JML 1.54 1.54 - 0.34 0.34 -
BankAccountTP 2.71 2.73 2.80 3.53 3.55 3.66
ExamDB 2.46 2.56 2.27 0.98 1.02 0.90
Email-FH-JML 2.30 2.35 2.20 0.93 0.95 0.89
ZipMe 9.20 9.35 - 0.40 0.40 -
GPL 6.79 6.82 - 0.70 0.71 -
图 9 展示了 µ 和 η 在不同取值下, FCS-FL 的 Hit@1 表现, 反映其定位缺陷语句的能力. 从图中可以看出, 当因
果效应的权重显著高于频谱效应的权重 (例如, µ 取值为 0.9 或 1 且 η 取值为 0.5 时), 缺陷定位能力有所下降. 然
而, 当 µ 取值为 0 或 1 时, 所获得的 Hit@1 显著低于取值在 0.1–0.9 范围内的 Hit@1. 这表明, FCS-FL 仅使用频谱
效应或因果效应时, 其缺陷定位能力较差. 造成这一现象的原因在于, 频谱效应能够更准确地定位缺陷的代码块,
而因果效应则更有效地识别代码块中的具体缺陷语句, 两种效应的优势相辅相成. 因此, 融合这两种效应显得尤为
重要. 此外, 图 9 同样说明当频谱效应仅由基于产品评估或基于单元测试评估决定时 (例如, η 取值为 0 或 1 且 µ
取值为 0.1), 算法定位缺陷语句的能力明显下降. 这表明, 基于产品评估和基于单元测试评估能从不同粒度上反映
可疑语句的可疑性, 从而降低频谱效应的误差.
µ 取值在 0.1–0.8 之间时, Hit@1 的值相对接近, 因为因果效应在通过 Softmax 函数归一化后
值得注意的是, 当
对频谱效应的影响变化较小. 此外, µ 和 η 都在取非极端值 (如 0 和 1) 时对缺陷定位性能的影响较为平稳, 主要原
因是中间权重区域同时利用了频谱效应和因果效应, 两种信息的优势叠加、劣势互补, 使得组合模型的误差接近
最小且对权重扰动不敏感; 只有在极端权重下忽略了一整类信息时, 性能才明显下降. 需要说明的是, 对于不同的
软件产品, 超参数的取值应依据其测试充分性进行设定. 当测试较为充分, 即语句覆盖率较高时, 可适当提高频谱
µ 设置为 0.2 或 0.3; 反之, 则应适当提高因果效应的权重. 同理, 当被测产品的采样覆盖率较高时,
效应的权重, 如
可增大基于产品的频谱信息权重, 如 η 设置为 0.7–0.9; 反之可增大基于单元测试的频谱信息权重.
基于以上分析, 对 RQ4 的回答如下: 本文提出的因果图模型, 相较于现有基于程序依赖的图模型, 更适合用于
程序缺陷定位任务. 与未约简的因果图模型相比, 该模型不仅能够保证更高的效率, 还能实现更为精确的因果评
估. 对于所使用的数据集, 在测试较充分且采样覆盖率较高时减小 µ 且增大 η 能更精确地定位缺陷.

