中文

Bears:一个用于自动程序修复研究的可扩展 Java 缺陷基准

软件工程 2019-04-04 v1

摘要

缺陷基准对于自动程序修复工具的实证评估至关重要。本文中,我们提出 Bears,一个用于收集并将缺陷存入可扩展 Java 自动修复研究缺陷基准的项目。缺陷收集依赖于来自持续集成(CI)的提交构建状态,以从托管于 GitHub 的开源项目中寻找有缺陷与已修补程序版本的潜在配对。每对程序版本经过一条流水线,其中尝试复现一个缺陷及其补丁。复现流水线的核心步骤是在两个程序版本上执行程序的测试套件。若在候选有缺陷程序版本中发现测试失败,而在其候选已修补程序版本中未发现测试失败,则成功复现了一个缺陷及其补丁。Bears 的独特之处在于使用 CI(构建)来识别有缺陷与已修补程序版本的候选,该方法近年已在开源项目中被广泛采用。此方法使我们能从多样的项目中收集缺陷,超越使用缺陷跟踪系统的成熟项目。此外,Bears 设计为公开可用,并通过在给定 GitHub 仓库中自动创建含缺陷分支来易于被研究界扩展,这些分支可用于 Bears 仓库中的拉取请求。本文介绍 Bears 所采用的方法,并发布 Bears 1.0 版,其包含从 72 个使用 Travis CI 与 Maven 构建环境的项目收集的 251 个可复现缺陷。

关键词

引用

@article{arxiv.1901.06024,
  title  = {Bears: An Extensible Java Bug Benchmark for Automatic Program Repair Studies},
  author = {Fernanda Madeiral and Simon Urli and Marcelo Maia and Martin Monperrus},
  journal= {arXiv preprint arXiv:1901.06024},
  year   = {2019}
}

备注

Proceedings of the 26th IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER '19)