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

王海宁 等: 融合因果效应的高效软件产品线缺陷定位方法                                                     2973


                 值为  1  表示接受处理, 取值为     0  表示未接受处理. 那么, 所有受试单位在          T = 1 时的结果  Y  称为“处理后的潜在结
                                                                                      1
                                   0
                 果”, 在   T = 0 时的结果  Y  称为“未处理的潜在结果”.
                    对于每个受试单位, 处理效应定义为处理与未处理的潜在结果之差                      [38] . 由于在实际研究中无法同时观察到同
                 一个体的两种潜在结果, 通常利用平均处理效应               (average treatment effect, ATE) 来衡量总体的因果效应, 即:

                                                            1
                                                                  0
                                                      τ = E[Y ]− E[Y ]                                (1)
                 其中,  E[·] 为期望算子.
                    在缺陷定位任务中, 数据通常是通过运行一组测试样例并记录它们的执行信息获得的                              [17] . 在这种情况下, 实
                 际的实验过程是观察性研究而非随机性实验. 因此, 覆盖一条语句并不是随机分配到处理组或对照组. 为了在观察
                 性研究中估计平均的处理效应, 需要通过控制潜在混杂因子的观察值, 来减少混杂变量对因果推断的影响. 此时,
                                                                                             1   0
                 处理变量   T  对结果变量的平均处理效应可通过调节一组协变量计算, 使得                   T  条件独立于结果变量      Y  和  Y , 即:

                                                            1
                                                         0
                                                        (Y ,Y )⊥T|X                                   (2)
                    为此, 公式   (1) 可转换为:

                                               τ = E[E[Y|T = 1,X]− E[Y|T = 0,X]]                      (3)
                    此时, 因果效应估计问题即可转化为在控制这些变量条件下, 对处理变量与结果变量之间关系的建模与量化.
                 回归模型是一种常用的方法, 用于通过控制观察到的混杂因子来估计平均因果效应                           [39] , 例如线性模型.

                                                     Y = α+τT +βX +ε                                  (4)
                 其中,  α 表示截距项,   T  为处理变量,   Y  是结果变量,  X  是包含混杂因子的协变量向量,          β 为  X  的系数向量,  ε 是误差
                 项. 该模型被成功应用于单系统软件的缺陷定位任务中                  [26] . 具体而言,  Y  表示为测试结果变量,  T  为处理语句,   X  为
                 T  的混杂因子的协变量向量. 从测试过程中捕捉到的观察数据可以拟合出相应的回归模型                            [40] , 其系数  τ 即为  T  对
                 Y  的因果效应.
                  3   基于因果和频谱效应融合的高效             SPL  可变缺陷定位方法

                    本节首先简要介绍       SPL  系统中缺陷定位的问题描述, 接着详细介绍             FCS-FL  的基本框架及实现细节, 包括可
                 疑特征交互识别、可疑语句隔离、可疑值计算                (因果效应和频谱效应的计算与融合) 及可疑语句排序.
                  3.1   问题描述
                    对于一个存在可变缺陷的          SPL  系统  Γ = ⟨S,F,φ⟩, 其采样产品的配置集合   C = C P ∪C F , 缺陷定位任务可以描述
                            C F  的缺陷特征交互                                 S ⊆ S 及每条语句所对应的可疑值. 形式
                                                                          ′
                 为识别出导致                     B, 并输出该特征交互相关的语句集合
                                                             ′              Φ(s), 即  s 的可疑值. 理论上, 一个好
                 上, 旨在构造一个映射函数        Φ(·), 使得每条可疑语句     s ∈ S  映射为一个常数值
                                ′
                 的定位方法应保证      S  中所包含的语句数应尽可能少, 并且缺陷语句的可疑值尽可能高.
                  3.2   基本框架
                    本文提出的     FCS-FL  方法的基本框架如后文图        2  所示, 包含两个阶段: 特征级缺陷定位和语句级缺陷定位. 在
                 特征级缺陷定位阶段, 基本的流程如下: 首先, 基于缺陷相关性计算每个未通过产品的潜在特征选择集合; 其次, 移
                 除被包含的可疑特征选择集合以避免生成重复部分配置; 接着, 对于每个可疑特征选择集合, 生成相应的                                1–7  阶潜
                 在特征交互集合, 并使用缓存机制防止重复检查相同的特征交互. 最后, 保存满足缺陷相关性的可疑特征交互, 用
                 于定位缺陷语句. 在语句级缺陷定位阶段, 基本的流程是: 首先, 对每个未通过产品中的可疑部分配置利用程序切
                 片技术隔离出可疑语句. 接着, 对每一条可疑语句, 分别计算它们的频谱效应和因果效应, 并加权融合因果效应和
                 频谱效应. 最后, 根据融合后的可疑值进行排序, 检查可疑性高的语句即可实现缺陷定位.
                  3.3   高效的可疑特征交互识别
                    如第  2.1  节所述, 缺陷特征交互应同时满足缺陷相关性和最小性. 事实上, 可能存在多个特征交互同时满足这
                 两点性质. 可利用未通过产品与通过产品在特征选择上的差异, 有效地识别出所有满足缺陷相关性和最小性的特
   283   284   285   286   287   288   289   290   291   292   293