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

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


                 越高. 具体的计算规则可以采用特定           SBFL  指标度量, 如  OP2. 基于单元测试的评估则仅针对未通过产品中的单元
                 测试. 同样地, 根据每条可疑语句在通过的单元测试和未通过的单元测试中的覆盖情况, 使用适合的                              SBFL  指标进
                 行度量.
                    实际上, 基于产品的评估是从全局视角对可疑语句进行度量. 该评估方式既考虑了通过产品的运行情况, 也考
                 虑了未通过产品的运行情况. 而基于单元测试的评估只考虑未通过的产品, 是从局部度量可疑语句. 对于每一条可
                 疑语句   s, 同样采用线性加权聚合的方式平衡其基于产品评估                 ps(s) 和基于单元测试评估     ts(s), 进而最小化总体误
                 差, 即:

                                                  H(s) = η×ps(s)+(1−η)×ts(s)                          (7)
                 其中,  η 表示权重值常数.
                  4   实验设置


                    本节详细地介绍实验实施细节, 包括数据集、研究问题和评价指标及基准方法. 所有实验均在一台硬件条件
                 为  Intel Core i5-12450H CPU (2.00 GHz) 和  16.00 GB RAM  的  Linux  服务器上完成. 对于编程语言, 采用  Python  实
                 现可疑特征交互识别和语句可疑性评估, 程序切片利用                  IBM  公司开源的基于     Java 的  Wala 框架实现. 此外, 所有
                 的实验结果以及      FCS-FL  的源代码公布在    https://github.com/Songluhaining/FCS-FL.
                  4.1   数据集

                    本文选择了一个包含可变缺陷的大型公开数据集用于评估                      FCS-FL, 该数据集包含了     6  个真实的  SPL  系统,
                 其中共包含    260  个只有单个缺陷的单缺陷案例和          999  个具有  2  个及以上缺陷的多缺陷案例. 此外, 选择的产品线
                 系统的特征数从      6  到  27, 语句覆盖率为  42.9%–99.9%, 更详细的信息如表     1  所示. 值得说明的是, 据我们所知, 这
                 是目前唯一公开的用于        SPL  缺陷定位且包含测试信息的数据集           [43] .


                                                      表 1 实验数据集

                       系统        特征数      产品数     单缺陷的案例数       多缺陷的案例数        测试语句覆盖率 (%)      代码规模
                  Elevator-FH-JML  6       18         13             26             92.9          854
                   BankAccountTP   8       34         56             298            99.9          143
                     ExamDB        8        8         48             214            99.5          513
                   Email-FH-JML    9       27         20             55             97.7          439
                      ZipMe        13      25         20             139            42.9          3 460
                       GPL         27      99         103            267            99.4          1 944

                  4.2   研究问题
                    本文通过回答以下几个研究问题            (RQ) 以评估提出方法的有效性.
                    RQ1: FCS-FL  在特征级缺陷定位中效率提升的幅度有多大?
                    RQ2: 在单缺陷情形下, FCS-FL     的语句级缺陷定位准确性如何?
                    RQ3: 在多缺陷情形下, FCS-FL     的根因定位能力如何?
                    RQ4: 在  FCS-FL  中, 不同因果图模型和公式     (7) 中  µ 的不同取值对缺陷定位效果的影响如何?

                    在本研究中, RQ1    旨在验证所提方法在特征级缺陷定位中的效率, 这是后续研究问题的基础. 基于该验证结
                 果, RQ2  进一步评估方法在单缺陷场景下语句级定位的准确性. RQ3                 则将这一评估扩展至多缺陷场景, 考察其在
                 更复杂条件下的适用性. 最后, RQ4        针对方法的超参数设置, 系统分析其对算法性能的影响.
                    为回答   RQ1, 选择每个   SPL  系统的所有单缺陷案例, 在计算未通过产品的可疑特征选择集合时, 统计被包含
                 可疑特征选择集合的比例, 以及不同可疑特征选择集合生成相同特征交互数的比例. 基于这两个比例在不同                                   SPL
                 系统的分布情况, 分析基于        FCS-FL  节约生成和检查特征交互的数量. 此外, 通过与先进方法比较在每个系统所有
   289   290   291   292   293   294   295   296   297   298   299