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 即时缺陷预测性能与解释的实证研究, 本文获得了一些经验发现, 对

