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

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



                                  5.0                          5.0
                                 Rankings  3.8                 Rankings  3.8
                                                               2.5
                                  2.5
                                  1.2
                                                               1.2
                                   0                             0
                                    RUS_AG ROSE_AG ROSE_B SMOTE_B ROS_AG ROSE_MA ROS_B RUS_MA  RUS_B ROS_MA RUS_RA SMOTE_AG SMOTE_MA ROSE_RA ROS_RA SMOTE_RA  ROS_B ROS_MA ROSE_B ROSE_AG ROS_AG ROSE_MA RUS_B SMOTE_B ROS_RA SMOTE_AG SMOTE_RA ROSE_RA SMOTE_MA RUS_AG RUS_MA RUS_RA


                                          (d) F-measure@20%                 (e) IFA
                                              图 11 4  种采样算法的对比结果        (续)

                  5   讨 论


                  5.1   本文与文献  [5] 研究工作的结论对比
                    为了比较本文与      Fan  等人  [5] 研究工作的结论是否具有一致性, 特从以下几个方面进行详细分析和讨论.
                    (1) 数据标注质量方面
                    本文: 数据的标注质量符合         SZZ  变体之间的递进关系.
                    文献  [5]: B-SZZ、MA-SZZ  存在递进关系, 但   AG-SZZ  在某些项目上比     B-SZZ  产生更多的误标数量.
                    分析: AG-SZZ  算法使用注释分析和代码格式检测的方法, 来过滤掉不相关的代码行, 如空行、注释行和代码
                 风格的修改, 基于图的方法, 来构建代码行之间的依赖关系, 从而更准确地追溯缺陷导致的变更. 然而, 如果没有及
                 时删除无用的代码, 没有写清楚的提交信息, 没有及时合并分支等, 造成项目的代码复杂度较高, 代码行之间的依
                 赖关系较多, 会增加     AG-SZZ  算法的计算开销. 这些情况会导致        AG-SZZ  算法的追溯效果受到干扰, 从而影响         AG-SZZ
                 算法的识别效果, 最终导致在某些项目上出现              AG-SZZ  比  B-SZZ  误标数量更多的情况.
                    (2) 模型的性能方面
                    本文: B-SZZ、AG-SZZ  和  MA-SZZ  错误标注的变更会造成     AUC、MCC  得分不同程度的下降, 但不会造成          G-mean
                 得分下降.
                    文献  [5]: 在类不平衡情况下, B-SZZ    和  MA-SZZ  的错误标注更改不会导致        AUC  方面的显著性能降低, 而      AG-
                 SZZ  会造成显著的性能下降. 在类平衡情况下, B-SZZ            和  MA-SZZ  的错误标注变化不会导致         AUC, F1  得分和
                 G-mean  得分方面的显著性能降低. AG-SZZ       错误标注会造成显著的性能下降.
                    分析: 本文的结论在类不平衡和类平衡情况下一致, 结论为                  B-SZZ、AG-SZZ、MA-SZZ    都会造成    AUC  得分
                 不同程度的下降, 但不会造成         G-mean  的得分下降. 文献    [5] 发现只有  AG-SZZ  会显著降低    AUC、F1  和  G-mean
                 得分. 但总体来说, 不论是本文还是         Fan  等人  [5] 的研究, RA-SZZ  的性能是仍然是最优的, 这点在本文和        Fan  等人的
                 工作中都有所体现.
                    (3) 模型的解释方面
                    本文: 在模型解释方面, 不同        SZZ  算法会影响预测过程中贡献程度排名前            3  的度量元, 并且   la (变更增加的代
                 码行数) 度量元对预测结果有重要影响.
                    文献  [5]: SZZ  错误标注的变更会不会影响最重要的度量元 (即             nf, 文件数量), 然而在随机森林分类器上, SZZ
                 错误标注的变更会影响第         2、3  名最重要的度量元.
                    分析: 由于本文的实验数据、相关设置等与文献                [5] 的不同, 度量元在预测过程所产生的效果可能不同, 因此
                 度量元对模型的解释方面有着不同影响, 但总体来说, 在使用随机森林作为分类器时, SZZ                         错误标注的变更会影响
                 第  2、3  名最重要的度量元.
                  5.2   经验发现
                    通过深入比较      4  种  SZZ  算法对移动  APP  即时缺陷预测性能与解释的实证研究, 本文获得了一些经验发现, 对
   181   182   183   184   185   186   187   188   189   190   191