Continuous Integration (CI) is a development practice where developers frequently integrate code into a common codebase. After the code is integrated, the CI server runs a test suite and other tools to produce a set of reports (e.g., output of linters and tests). If the result of a CI test run is unexpected, developers have the option to manually restart the build, re-running the same test suite on the same code; this can reveal build flakiness, if the restarted build outcome differs from the original build. In this study, we analyze restarted builds, flaky builds, and their impact on the development workflow. We observe that developers restart at least 1.72% of builds, amounting to 56,522 restarted builds in our Travis CI dataset. We observe that more mature and more complex projects are more likely to include restarted builds. The restarted builds are mostly builds that are initially failing due to a test, network problem, or a Travis CI limitations such as execution timeout. Finally, we observe that restarted builds have a major impact on development workflow. Indeed, in 54.42% of the restarted builds, the developers analyze and restart a build within an hour of the initial failure. This suggests that developers wait for CI results, interrupting their workflow to address the issue. Restarted builds also slow down the merging of pull requests by a factor of three, bringing median merging time from 16h to 48h.


翻译:持续整合 (CI) 是开发者经常将代码整合到共同代码库的一种开发做法。 在代码整合后, CI服务器运行一个测试套件和其他工具, 以生成一套报告( 例如 linters 的输出和测试 ) 。 如果 CI 测试运行的结果出乎意料, 开发者可以选择手动重新启动构建, 在同一代码上重新运行同一个测试套件; 如果重新启动的构建结果与最初的构建结果不同, 这可以显示构建不易。 在本研究中, 我们分析重开的构建、 滑动的构建及其对发展工作流程的影响。 我们观察到, CI 服务器至少重新启动了1.72%的建筑, 总共56, 522 重建了一套报告( 例如 linters 的输出和测试 ) 。 如果 CI 测试运行结果出意外, 开发者可以选择手工重开, 在同一代码上重置相同的测试套件中, 重新创建的测试套件可以显示构建不全过程。 最后, 我们发现, 重新创建的建筑对开发流程产生了重大影响。 事实上, 重建后的建设过程的54. 44.2 %, 重新创建者分析并重新启动了56, 522 重建了 重建了 重建了 重建了 重建了, 重建了 重建了, 重建了 进入了 进入了 CIR, 的运行了, 进入了 进入了 运行了 的正常 的正常 的运行 的 的, 。

0
下载
关闭预览

相关内容

Integration:Integration, the VLSI Journal。 Explanation:集成,VLSI杂志。 Publisher:Elsevier。 SIT:http://dblp.uni-trier.de/db/journals/integration/
专知会员服务
38+阅读 · 2020年9月6日
强化学习最新教程,17页pdf
专知会员服务
168+阅读 · 2019年10月11日
【新书】Python编程基础,669页pdf
专知会员服务
186+阅读 · 2019年10月10日
[综述]深度学习下的场景文本检测与识别
专知会员服务
77+阅读 · 2019年10月10日
机器学习入门的经验与建议
专知会员服务
90+阅读 · 2019年10月10日
Hierarchically Structured Meta-learning
CreateAMind
23+阅读 · 2019年5月22日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
IEEE | DSC 2019诚邀稿件 (EI检索)
Call4Papers
10+阅读 · 2019年2月25日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
Hierarchical Imitation - Reinforcement Learning
CreateAMind
19+阅读 · 2018年5月25日
Hierarchical Disentangled Representations
CreateAMind
4+阅读 · 2018年4月15日
carla 学习笔记
CreateAMind
9+阅读 · 2018年2月7日
Capsule Networks解析
机器学习研究会
10+阅读 · 2017年11月12日
【学习】Hierarchical Softmax
机器学习研究会
4+阅读 · 2017年8月6日
Arxiv
0+阅读 · 2021年9月17日
Arxiv
0+阅读 · 2021年9月16日
Arxiv
0+阅读 · 2021年9月16日
Arxiv
12+阅读 · 2019年3月14日
Accelerated Methods for Deep Reinforcement Learning
Arxiv
6+阅读 · 2019年1月10日
VIP会员
相关VIP内容
相关资讯
Hierarchically Structured Meta-learning
CreateAMind
23+阅读 · 2019年5月22日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
IEEE | DSC 2019诚邀稿件 (EI检索)
Call4Papers
10+阅读 · 2019年2月25日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
Hierarchical Imitation - Reinforcement Learning
CreateAMind
19+阅读 · 2018年5月25日
Hierarchical Disentangled Representations
CreateAMind
4+阅读 · 2018年4月15日
carla 学习笔记
CreateAMind
9+阅读 · 2018年2月7日
Capsule Networks解析
机器学习研究会
10+阅读 · 2017年11月12日
【学习】Hierarchical Softmax
机器学习研究会
4+阅读 · 2017年8月6日
Top
微信扫码咨询专知VIP会员