Studying the Interplay Between the Durations and Breakages of Continuous Integration Builds

被引:1
|
作者
Ghaleb, Taher A. [1 ]
Hassan, Safwat [2 ]
Zou, Ying [3 ]
机构
[1] Univ Ottawa, Sch EECS, Ottawa, ON K1N 6N5, Canada
[2] Univ Toronto, Fac Informat, Toronto, ON M5S 0A5, Canada
[3] Queens Univ, Dept Elect & Comp Engn, Kingston, ON K7L 3N6, Canada
关键词
Software; Measurement; Software development management; Codes; Time measurement; Software engineering; Servers; Continuous integration (CI); build performance; build duration; build breakage; empirical software engineering; mining software repositories; questionnaire survey;
D O I
10.1109/TSE.2022.3222160
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The Continuous Integration (CI) practice allows developers to build software projects automatically and more frequently. However, CI builds may undergo long build durations or frequent build breakages, which we refer to as build performance. Both long durations and frequent breakages of CI builds can impede developers from engaging in other development activities. Prior research has conducted independent studies on build durations or build breakages. However, there is little attention to the possible interplay between reducing build durations and build breakages. In particular, it is unclear from prior studies (i) whether and how build performance is influenced by the context of projects; (ii) whether the actions to reduce build durations would reduce or increase build breakages; and (iii) whether fixing build breakages would lead to longer or faster builds. It is important for developers to understand the practices that make both timely and passing CI builds. In this paper, we conduct experimental and survey studies on the practices that can have dual or inverse associations with two build performance measures: build durations and build breakages. To this end, we extend an existing dataset called TravisTorrent to exclude inactive projects and collect recent builds of active projects. As a result, we study 924,616 CI builds from 588 GitHub projects that are linked with Travis CI. In addition, we survey developers who contributed to the projects in our dataset to get their feedback on our experimental observations. First, we investigate project-level metrics and find that project characteristics have a significant association with build durations and breakages. In addition, we investigate how build-level metrics are associated with both build durations and breakages and observe an evident interplay between them. In particular, we observe that actions to fix build breakages (e.g., retrying or waiting for build commands) not only increase build durations but also do not guarantee passing builds. We also find that improving the build performance of a project is dependent on the current build durations and breakages of that project. Furthermore, we analyze how build performance changes over time and observe nearly a third of projects in which one performance measure is sacrificed in favor of the other, especially when not possible to achieve both together. The majority of our experimental observations are confirmed by survey results, which provide useful insights though some survey responses disagree with some of our experimental observations. Our work (a) provides developers with development and building practices to maintain timely and passing CI builds, and (b) encourages researchers to highlight any potential dual or inverse side effects when reporting actionable findings about CI builds.
引用
收藏
页码:2476 / 2497
页数:22
相关论文
共 50 条
  • [1] On the Interplay between Non-Functional Requirements and Builds on Continuous Integration
    Paixao, Klerisson V. R.
    Felicio, Cricia Z.
    Delfim, Fernando M.
    Maia, Marcelo de A.
    2017 IEEE/ACM 14TH INTERNATIONAL CONFERENCE ON MINING SOFTWARE REPOSITORIES (MSR 2017), 2017, : 479 - 482
  • [2] A Study on the Interplay between Pull Request Review and Continuous Integration Builds
    Zampetti, Fiorella
    Bavota, Gabriele
    Canfora, Gerardo
    Di Penta, Massimiliano
    2019 IEEE 26TH INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION AND REENGINEERING (SANER), 2019, : 38 - 48
  • [3] Characterizing Timeout Builds in Continuous Integration
    Weeraddana, Nimmi
    Alfadel, Mahmoud
    McIntosh, Shane
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2024, 50 (06) : 1450 - 1463
  • [4] The power of continuous integration builds and agile development
    Agile Test.: How to Succeed in an Extreme Test. Environment, (93-102):
  • [5] An empirical study of the long duration of continuous integration builds
    Taher Ahmed Ghaleb
    Daniel Alencar da Costa
    Ying Zou
    Empirical Software Engineering, 2019, 24 : 2102 - 2139
  • [6] An empirical study of the long duration of continuous integration builds
    Ghaleb, Taher Ahmed
    da Costa, Daniel Alencar
    Zou, Ying
    EMPIRICAL SOFTWARE ENGINEERING, 2019, 24 (04) : 2102 - 2139
  • [7] Does using Bazel help speed up continuous integration builds?
    Zheng, Shenyu
    Adams, Bram
    Hassan, Ahmed E.
    EMPIRICAL SOFTWARE ENGINEERING, 2024, 29 (05)
  • [8] Patterns for Continuous Integration Builds in Cross-Platform Agile Software Development
    Hsieh, Chin-Yun
    Chen, Chien-Tsun
    JOURNAL OF INFORMATION SCIENCE AND ENGINEERING, 2015, 31 (03) : 897 - 924
  • [9] BuildSheriff: Change-Aware Test Failure Triage for Continuous Integration Builds
    Zhang, Chen
    Chen, Bihuan
    Peng, Xin
    Zhao, Wenyun
    2022 ACM/IEEE 44TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2022), 2022, : 312 - 324
  • [10] Buildsheriff: Change-Aware Test Failure Triage for Continuous Integration Builds
    Zhang, Chen
    Chen, Bihuan
    Peng, Xin
    Zhao, Wenyun
    Proceedings - International Conference on Software Engineering, 2022, 2022-May : 312 - 324