中文

利用源代码语法模式通过机器学习模型检测引入缺陷的提交

软件工程 2025-03-04 v1

摘要

使用基于机器学习(ML)的模型检测引入缺陷的提交(BIC)或即时(JIT)缺陷预测,需要来自软件系统源代码或历史维护数据的表格化特征值。现有研究利用源代码仓库的元数据(我们称之为 GitHub 统计或 GS)、基于 n-gram 的源代码文本处理,以及开发者信息(如开发者经验)作为基于 ML 的缺陷检测模型中的特征值。然而,这些特征值并未体现开发者在编程语言提供的可用有效替代方案中偏好的源代码语法风格或模式。本研究提出一种从其源代码语法模式中提取特征以表示软件提交的方法,并探究它们是否有助于检测软件系统中的缺陷倾向。我们利用来自八个开源软件项目的六个手动标注和两个自动标注数据集,这些项目使用 Java、C++ 和 Python 编程语言。我们的数据集分别包含来自六个和两个被测系统的 642 个手动标注以及 4,014 个自动标注的有缺陷与无缺陷提交。被测系统包含数量各异的修订版本,且来自不同应用领域。我们的研究表明,在五种不同机器学习分类模型中,所提特征的加入提升了有缺陷与无缺陷软件提交的检测性能。我们使用深度信念网络生成的特征与分类模型,所提特征在检测有缺陷提交上也表现更优。本研究还实现了一个前沿工具,以比较使用我们所提特征与传统特征对预测有缺陷提交的可解释性,发现我们所提特征提供了更好的缺陷推理……

关键词

引用

@article{arxiv.2212.03399,
  title  = {Utilizing Source Code Syntax Patterns to Detect Bug Inducing Commits using Machine Learning Models},
  author = {Md Nadim and Banani Roy},
  journal= {arXiv preprint arXiv:2212.03399},
  year   = {2025}
}