中文

Fonte:从失败中定位缺陷引入提交

软件工程 2023-02-16 v3

摘要

缺陷引入提交(Bug Inducing Commit,BIC)是指将软件缺陷引入代码库的提交。对于给定的缺陷,了解相关的 BIC 可为调试和缺陷分派提供有价值的信息。然而,现有的 BIC 识别技术要么代价过高(因为它们需要针对先前版本执行失败测试以进行二分查找),要么在调试时不可用(因为它们需要缺陷报告或缺陷修复等事后产物)。我们提出 Fonte,一种高效且准确的 BIC 识别技术,仅需要测试覆盖率。Fonte 将缺陷定位(Fault Localisation,FL)与 BIC 识别相结合,并根据提交所修改代码元素的可疑度对其进行排序。Fonte 利用失败覆盖率以及一个用于检测仅作风格改动提交的过滤器来缩减 BIC 的搜索空间。我们使用 130 个真实世界 BIC 进行的实证评估表明,Fonte 显著优于基于信息检索以及神经代码嵌入模型的现有最优 BIC 识别技术,其 MRR 至少高出 39%。我们还报告称,Fonte 产生的排序分数可用于执行加权二分查找,进一步降低 BIC 识别的成本。最后,我们将 Fonte 应用于一个超过 1000 万行代码的大规模工业项目,并表明对于所研究的 87% 的真实批量测试失败,它都能将实际 BIC 排在提交的前五名之内,且平均节省 32% 的 BIC 审查成本。

关键词

引用

@article{arxiv.2212.06376,
  title  = {Fonte: Finding Bug Inducing Commits from Failures},
  author = {Gabin An and Jingun Hong and Naryeong Kim and Shin Yoo},
  journal= {arXiv preprint arXiv:2212.06376},
  year   = {2023}
}

备注

13 pages, 10 figures, 5 tables (to be published in ICSE'23)