摘要

即时软件缺陷预测是保障软件安全与质量相统一的必要途径,在软件工程领域受到越来越多的关注。然而,现有数据集存在特征冗余和特征相关性低的情况,极大影响了即时软件缺陷预测模型的分类性能和稳定性。此外,分析缺陷数据特征对模型的影响尤为重要,但如今对软件缺陷预测模型进行解释性研究较少。针对这些问题,文章基于6个开源项目的227417个代码级变更的大规模实证研究,创新性地选择了SHAP+SMOTEENN+XGBoost(SHAP-SEBoost)构建即时软件缺陷预测模型。首先通过SHAP(SHapley Additive exPlanation)模型可解释器分析初始数据集特征,并根据分析结果对数据集进行相应的特征选择与组合。然后,利用SMOTEENN对类不平衡的缺陷数据进行正负样本均衡化,使用集成学习算法XGBoost对实验数据进行预测建模。最后,使用SHAP对本文模型进行可解释性分析。实验结果表明SHAP-SEBoost有效地提高了分类性能,与基线模型以及近年优秀模型相比AUC平均提高11.6%,F1平均提升33.5%。