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

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


                 果效应值. 对于每一条可疑语句, 本文使用不同产品的算术平均值进行聚合, 聚合后的因果效应值即为最终的值.

                                                  开始



                                              1        结束


                                                                      8
                                        5     2

                                        6     8                       11             Y


                                        11    9
                                                                12    13    15

                                        12    13    15


                                        17          18
                                         (a) transfer的PDG          (b) 提出的因果图模型
                                          图 3 程序   transfer 的  PDG  和提出的因果图模型


                                                    8



                                                    11              Y
                                              图 4 Baah  等人  [26] 提出的因果图模型

                  3.5   可疑语句的可疑值计算及排序
                    对于任意一条可疑语句         s, 同时考虑其对测试结果的因果效应和频谱效应. 线性加权聚合作为一种模型平均
                 策略, 避免了单一度量的不足, 有利于降低评估的总体误差. 因此, 本文采用互补信息的线性加权聚合方式融合因
                 果效应和频谱效应. 该方式既能保留直接与间接路径的因果效应, 又能兼顾频谱效应所提供的全局统计相关性信
                 息. 融合后的值作为可疑语句的可疑值. 设            E = [e 1 ,e 2 ,...,e |S | ] 表示所有可疑语句对测试结果的因果效应. 为突出更
                 高因果效应的语句对导致测试未通过的影响, 在融合前, 采用                   Softmax 函数对所有可疑语句的因果效应值进行归
                                                      E = [e ,e ,...,e ]. 接着, 对于每一条可疑语句   s, 融合其因果效应
                                                           ′
                                                                  ′
                                                       ′
                                                             ′
                 一化. 设归一化后所有可疑语句的因果效应值为
                                                           1  2   |S |
                 和频谱效应作为最终语句         s 的可疑值, 即:

                                                               ′
                                             suspiciousness(s) = µ×E (s)+(1−µ)×H(s)                   (6)
                 其中,  µ 是平衡因果效应和频谱效应的权重值,            H(s) 表示语句   s 的频谱效应.   suspiciousness(s) 值越大, 表示语句  s
                 的可疑性越高. 因果效应与频谱效应往往在不同场景下互补: 当因果效应因样本稀疏或模型简化出现偏差时, 频谱
                 效应可提供冗余支持; 而当统计相关误导频谱效应时, 因果效应可加以修正. 得到所有可疑语句的可疑值后, 利用
                 快速排序算法对可疑语句根据可疑值进行排序.
                    在本文的研究中, 可疑语句的频谱效应计算从基于产品和基于单元测试两个粒度进行评估. 基于产品的评估
                 从产品测试通过或不通过的角度对可疑语句进行评估. 具体来说, 根据测试通过和未通过产品覆盖可疑语句                                   s 的
                                                 s
                 数量, 计算语句    s 的可疑程度. 直观而言,   在未通过的产品中出现得越多, 在通过的产品中出现得越少, 其可疑性
   288   289   290   291   292   293   294   295   296   297   298