基于编程语言知识单元 (KUs) 预测发布后缺陷:一项实证研究
软件工程
2025-03-04 v2
摘要
缺陷预测在软件工程中发挥着关键作用,使开发人员能够识别缺陷易感代码并提高软件质量。虽然广泛研究聚焦于精炼机器学习模型以进行缺陷预测,但对新数据源进行特征工程的探索仍有限。缺陷预测模型主要依赖传统指标,如产品指标、过程指标和代码所有权指标,这些指标虽然有效,但未能捕捉可能影响缺陷易感性的语言特定特征。为弥补这一差距,我们引入编程语言知识单元 (KUs) 作为分析软件系统和缺陷预测的新型特征集。KU 是一个由一个或多个编程语言构件提供的关键能力集合。我们利用从 Java 认证考试中派生出的 28 个 KUs,对其在预测 8 个 well-maintained Java 软件系统的发布后缺陷方面的有效性进行了经验研究。我们的结果表明,KU 具备显著的预测能力,实现了中位数 AUC 为 0.82,优于传统指标基于模型的单个组别。 在 KU 特征中,方法与封装、继承和异常处理 emerge 为最具影响力的预测器。此外, 将 KU 与传统指标结合可提升预测性能,使中位数 AUC 提升至 0.89。我们还引入了一个仅使用 10 个特征即可实现的成本效益模型,保持强大的预测性能,同时降低了特征工程成本。我们的发现表明,KU 在预测发布后缺陷方面具有价值,为传统指标提供了补充视角。这项研究对希望从与传统指标互补的视角分析软件系统的研究者具有帮助。
引用
@article{arxiv.2412.02907,
title = {Predicting post-release defects with knowledge units (KUs) of programming languages: an empirical study},
author = {Md Ahasanuzzaman and Gustavo A. Oliva and Ahmed E. Hassan and Zhen Ming and Jiang},
journal= {arXiv preprint arXiv:2412.02907},
year = {2025}
}