中文

持续集成剧场

软件工程 2019-07-04 v1

摘要

背景:持续集成(CI)系统如今是若干软件开发实践的基石。TravisCI、CircleCI 与 Hudson 等实现了 CI 实践的若干工具已被软件工程师广泛采用。然而,软件工程师使用这些工具的方式可能导致我们称之为“持续集成剧场”的状况,即软件工程师未能有效运用这些工具,从而导致不健康的 CI 实践。目标:本文旨在厘清这些不健康的持续集成实践在实际中有多普遍。方法:通过检视使用最常用 CI 服务 TravisCI 的 1,270 个开源项目,我们定量研究了以下情况有多常见:(1) 提交不频繁地使用 CI,(2) 在测试覆盖率低下的软件项目中使用 CI,(3) 构建长时间处于损坏状态,(4) 构建运行耗时过长。结果:我们观察到 748(simsim60%)个项目面临提交不频繁的问题,这实质上使合并过程更为困难。此外,我们为 51 个项目找到了代码覆盖率信息。平均代码覆盖率为 78%,尽管 Ruby 项目的代码覆盖率高于 Java 项目(分别为 86% 与 63%)。然而,也发现了覆盖率极低(simsim4%)的项目。仍观察到所研究项目中 85% 至少有一个损坏构建需超过四天才能修复。有趣的是,极小型项目(至多 1,000 行代码)修复损坏构建耗时最长。最后,我们注意到多数所研究项目的构建执行符合 10 分钟的的经验法则。结论:我们的结果对日益增多的日常采用 CI 实践却可能未察觉所偶用不良实践的软件工程师群体十分重要。

关键词

引用

@article{arxiv.1907.01602,
  title  = {Continuous Integration Theater},
  author = {Wagner Felidré and Leonardo Furtado and Daniel da Costa and Bruno Cartaxo and Gustavo Pinto},
  journal= {arXiv preprint arXiv:1907.01602},
  year   = {2019}
}

备注

to appear at ESEM 2019