摘要

软件缺陷可能会导致软件产品故障和经济损失,有效识别潜在的软件缺陷在软件开发、运行维护过程中是至关重要的。先前软件缺陷预测方面的研究工作主要关注判断一个软件模块是否有缺陷。但由于测试资源,预测软件模块缺陷数会对软件开发和维护更有帮助。因此,在集成算法基础上,融合依赖度,提出一种新的缺陷数预测方法ELDDP(Ensemble Learning Fusion Dependencies for Software Defect Count Prediction)。首先,基于smote算法,对从最k近邻选择目标类方法进行改进。将类之间的依赖关系进行度量并引入smote算法中,选择目标类时优先选择依赖度高的类。其次,提出结合集成学习Adaboost.R2算法和Stacking模型融合算法构建缺陷数预测模型。在Promise数据集进行实验,对比了三种常用缺陷预测回归模型,实验结果表明该算法有较好的准确性和稳定性。