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

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


                                             P(s) 不包含交汇节点的后代且图经传递约简后无额外祖先-后代混杂, 路径仍
                 其后代被条件化才能打开路径; 由于
                 被阻断. 因此,   P(s) 阻断  s 的所有后门路径成立. 接着, 设不再对        P(s) 中的一个节点   v 进行条件化, 这将导致暴露一
                 条长度为    2  的后门路径   s ← V → Y, 因此  P(s) 中缺少任一节点都不再阻断全部后门路径, 证明最小性. 综上,               P(s)
                 是满足后门准则的最小调整集.
                    命题  2. 顺序可忽略性. 约简因果图       G  在固定输入与无并发环境下, 满足处理独立性和中介独立性.
                                                 ′
                    解释: 显然,   P(s) 包含了全部可影响     s 与  Y  的上游状态变量. 不同于其他问题, 软件程序是确定性转移系统, 这
                          P(s) 后  s 的取值由控制-数据依赖唯一确定, 即处理独立性成立. 同理, 给定                                M(s)
                 意味着固定                                                              s 和   P(s), 子节点集合
                 的执行状态完全由控制-数据依赖决定, 且程序输出               Y  仅再受下游状态影响, 因此中介独立性亦成立.
                    命题   3. 无交互性. 对于处理变量       T、中介变量     R = (R 1 ,R 2 ,...,R k )  与结果变量  Y, 在给定协变量  X  的条件下,
                   2
                  ∂ Y
                      = 0, j = 1,2,...,k, 即  T  对  Y  的边际效应不随任何单个中介变量  R j  的取值而变化, 处理效应与中介效应可加
                 ∂T∂R j
                 而无交互项.
                            ′               m ∈ M(s) 的唯一交汇节点是测试结果节点          Y. 这意味着不存在既受            m 共
                    解释: 在  G  中, s 与每个子节点                                                       s 又受
                 同影响的第    3  节点; 也不存在   s ← m → s 型的交汇节点. 意味着      s 与  m 之间无公共子后代. 此外, 所有      s → Y  的直
                        s → m → Y  的间接路径仅在    Y  会合, 无其余交汇节点. 从图论意义上, 这说明两条路径可加而非相乘或相
                 接路径与
                                2
                               ∂ Y
                                                          ′
                 互调节, 意味着          = 0. 为此, 无交互性假设在     G  中成立, 可使用线性可加模型估计直接效应与间接效应, 故
                             ∂T s ∂R m
                 公式  (4) 可修改为:

                                                    Y = α+τT +βX +υR+ε                                (5)
                 其中,  R 为中介变量向量,    υ 表示中介通路系数.
                    命题  4. 可观测性. 约简因果图      G  中的所有节点均对应可测随机变量.
                                             ′
                    解释: 语句节点可通过频谱信息记录其执行标志{0, 1}, 其父节点与子节点皆来源于                       PDG, 可在一次执行中被
                 唯一确定. 此外, 结果节点由测试通过/失败输出直接给出. 因此, 提出的约简因果图中不存在任何未测量的潜在变
                 量或缺失依赖, 满足因果推断所需的可观测性前提.
                    综上, 由于命题     1–4  同时成立, 则处理语句对测试结果的因果效应可由公式                (5) 得到. 并且基于公式     (5) 得到
                 的因果模型相比于基于公式          (4) 的因果模型, 其误差项     ε 中的方差更小. 因为公式       (5) 考虑了缺陷在程序间的传递

                 影响, 更适合软件的缺陷定位任务.
                    为更清晰地说明提出因果图模型的构造细节, 用程序                  transfer (见第  3  节) 进行说明, 其完整的  PDG  如图  3(a)
                 所示, 每个节点的值对应程序中语句的行数, 两个节点间的有向边表示语句间的依赖关系. 以语句                              11  作为处理节
                 点为例, 提出的约简因果模型如图           3(b) 所示, 保留语句  11  及其父节点和子节点的依赖关系, 并新建测试结果变量
                 节点  Y, 构建所有到    Y  的有向边. 要计算变量节点       11  对节点  Y  的因果效应, 首先利用后门准则确定混杂因子. 显
                 然, 节点  8  阻断了节点   11  到  Y  的全部路径, 因此可得到后门路径       11←8→Y. 接着, 将节点   12、13  和  15  作为中介
                 变量纳入节点     11  对节点  Y  的因果效应评估中.
                    与现有技术不同的是, Baah       等人  [26] 提出的因果模型如图     4  所示, 该模型仅保留节点      11  的父节点来约简因果
                 关系. 尽管这种方式得到的因果图模型可以消除环, 并减轻混杂因子对因果效应评估带来的影响. 然而, 与其他领
                 域不同的是, 缺陷定位任务中的观察数据由程序的执行过程得到. 因此, 由处理节点到测试结果节点的因果效应可
                 能通过中间节点的传导. 换言之, 处理节点除了自身对结果节点的直接效应, 还可能通过子节点传递间接影响. 例
                 如, 在  transfer 程序中, 语句  11  导致测试无法通过是因为它的执行进一步触发了语句               12  和  13  的执行. 因此, 本文
                 提出的约简因果图模型将处理节点的子节点作为中介变量, 将其纳入因果效应计算中以减少误差项                                  ε 中的方差,
                 进而提升了评估的准确性.
                    综上所述, 对于每个未通过的产品系统, 每一条可疑语句均可以基于提出的因果图模型计算出对测试结果的
                 因果效应. 然而, 由于不同产品系统具有不同的程序语句及依赖关系, 导致可疑语句在不同产品中会得到不同的因
   287   288   289   290   291   292   293   294   295   296   297