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

