Tomassi D A, Dmeiri N, Wang Y, et al. Bugswarm: mining and continuously growing a dataset of reproducible failures and fixes[C]//2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE). IEEE, 2019: 339-349.
2. 摘要
完成此功能需求两项关键的技术:高效的、可自定义的基于容器的虚拟化简化了对复杂依赖性的处理,而脚本化 CI 服务器允许自动化的构建和测试过程。项目维护者创建脚本来定义其项目的测试环境(平台,依赖项等);基于云的 CI 服务可以运用这些脚本构建虚拟化的运转时(通常是 Docker 容器)以构建和运转测试。之后对 CI 结果停止存档以便后期发掘和分析。我们正是应用这些 CI 数据和技术创建一个自动化的,持续增长的,大规模的,多样化的,真实且持久的可复现缺陷数据集。
本文我们引见了 CI 搜集工具 BUGSWARM,以及一个持续增长的可复现的大型缺陷数据集。该工具使实时更新性和添加多样性成为能够。BUGSWARM 应用已归档的 CI 日志记录来创建详细的工件,包括错误代码版本,失败的回归测试集和缺陷修复操作。当找到一对延续的提交时,第一个提交中 CI 日志显示运转失败,第二个提交则经过运转,则 BUGSWARM 运用项目的 CI 定制脚本创建制品:完全容器化的虚拟环境,包括版本和脚本,以搜集一切必需的工具、依赖项、平台和操作系统等。BUGSWARM 构件允许残缺构建和测试成对的失败/经过运转。容器化可以持久地复现这些制品。运用 CI 服务的相关项目的规模和多样性使 BUGSWARM 也可以捕获大规模的、持续增长的、多样化且最新的制品。
详细地,我们的贡献如下:
(1)我们提出一种应用 CI 的方法,该方法可以发掘开源项目中失败成功对并尝试在 DOCKER 容器中自动重现这些对。