Page 174 - 《软件学报》2025年第10期
P. 174

李志强 等: SZZ  误标变更对移动      APP  即时缺陷预测性能和解释的影响                                    4571


                 来, 越来越多的软件缺陷预测研究          [7,53,54] 采用  SHAP  来计算特征重要性排名.
                    具体地, 对于每个变更, 模型都会输出一个预测值, SHAP              构建一个可加性模型, 将所有特征都作为贡献者, 计
                 算每一个特征对模型输出的贡献. 若训练集有               k 个特征, 假设第   i 个变更为   x i , 第  i 个变更的第  j 个特征为  x ij , 模型
                 对该变更的预测值为       y i , 令所有变更目标变量的均值为模型的基准值, 记为             y base , 则第  i 个特征的  SHAP  值为:

                                               y i = y base + f(x i1 )+ f(x i2 )+...+ f(x ik )        (5)
                    为了对不同     SZZ  算法标注数据的预测结果进行解释, 本文采用              PyPI (Python package index) 库中的  SHAP  算
                 法包  (https://github.com/shap/shap).

                  4   实验结果

                    RQ1: SZZ  错误标注的变更是否影响类不平衡下的移动              APP  即时缺陷预测模型的性能?
                    研究动机: 在实际项目开发过程中, 即时缺陷预测模型可以帮助开发人员迅速地识别哪些变更可能引入了缺
                 陷, 以便及时进行修复, 同时也避免了将更多的缺陷引入到项目中, 从而提高开发效率. 然而, 目前还未有工作研究
                 不同  SZZ  算法错误标注的数据对移动         APP  即时缺陷预测模型性能的影响. 因此, 在类不平衡情况下, 本文深入研
                 究  SZZ  错误标注的变更对移动      APP  即时缺陷预测模型性能的影响.
                    研究方法: 如图     2  所示, 将  RA-SZZ  标注的数据作为测试集, 分别使用       B-SZZ、AG-SZZ  和  MA-SZZ  构建的模
                 型与使用   RA-SZZ  构建的模型进行比较       (RA-SZZ  作为基准模型), 以此来探究这       3  种  SZZ  算法对移动即时缺陷预
                 测模型性能的影响. 采用随机森林、朴素贝叶斯和逻辑回归分类器训练模型, 分别记为                           B、AG、MA    和  RA, 使用
                 AUC、MCC、G-mean   以及工作量感知指标        F-measure@20%  和  IFA  指标来评估模型, 最后应用    SKESD  统计测试
                 对结果进行比较分析.
                    实验结果: 表    5  列出了各分类器对应的       4  种  SZZ  算法在  17  个移动  APP  项目的结果, 以及  B、AG、MA  模型
                 与  RA  模型得分均值的比率, 每行最好的结果以加粗显示             (下同). 图  3 展示了  4 种  SZZ  算法在不同分类器上的   SKESD
                 统计结果. 基于以上观察, 可以得出以下结论.


                                          表 5 类不平衡情况下       4  种  SZZ  算法的模型得分

                                             B                    AG                   MA            RA
                     指标       分类器
                                    得分 B-RA得分均值比 (%) 得分 AG-RA得分均值比 (%) 得分 MA-RA得分均值比 (%) 得分
                               RF    0.8       95        0.8        95         0.8        95         0.84
                               NB   0.72       106       0.68       100        0.68       100        0.68
                     AUC
                               LR   0.73       97        0.73       97         0.74       99         0.75
                              Average 0.75     99        0.74       98         0.74       98         0.76
                               RF   0.35       92        0.36       95         0.36       95         0.38
                               NB   0.22       157       0.16       114        0.16       114        0.14
                     MCC
                               LR   0.26       90        0.26       90         0.27       93         0.29
                              Average 0.28     113       0.26       100        0.26       101        0.27
                               RF   0.68       105       0.68       105        0.68       105        0.65
                               NB   0.59       109       0.54       100        0.54       100        0.54
                    G-mean
                               LR   0.62       98        0.61       97         0.62       98         0.63
                              Average 0.63     104       0.61       100        0.61       101        0.61
                               RF   0.27       87        0.30       97         0.3        97         0.31
                               NB   0.26       93        0.28       100        0.28       100        0.28
                 F-measure@20%
                               LR   0.27       90        0.28       93         0.29       97         0.30
                              Average 0.27     90        0.29       97         0.29       98         0.30
                               RF    3         150        2         100         2         100         2
                               NB    2         100        2         100         2         100         2
                      IFA
                               LR    2         100        2         100         2         100         2
                              Average  2       117        2         100         2         100         2
   169   170   171   172   173   174   175   176   177   178   179