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  的回答如下: 本文提出的因果图模型, 相较于现有基于程序依赖的图模型, 更适合用于
                 程序缺陷定位任务. 与未约简的因果图模型相比, 该模型不仅能够保证更高的效率, 还能实现更为精确的因果评
                 估. 对于所使用的数据集, 在测试较充分且采样覆盖率较高时减小                   µ 且增大   η 能更精确地定位缺陷.
   294   295   296   297   298   299   300   301   302   303   304