Studying the Unfulfilled Promises of Continuous Integration

Taher A. Ghaleb · QSpace (Queen's University Library) · 2021

Continuous Integration (CI) is a software practice that allows software developers to generate software builds automatically and more frequently. When adopting CI, developers anticipate quick and trustworthy feedback about software builds. However, due to configuration or environmental issues, CI might introduce an overhead to the software development process. For example, a misconfiguration of CI can make builds run for too long (i.e., long build durations). In addition, CI builds can undergo unexpected breakages (i.e., errors or failures) due to environmental factors that are outside the ability of developers to control. As a consequence, developers might need to wait for builds to pass before engaging in other development activities. This dissertation conducts four empirical studies to understand the reasons behind the unfulfilled CI promises: (1) a study of the factors associated with long CI build durations, (2) a study of noisy (development-unrelated) CI build breakages and their impact on observations of prior research, (3) a study of the interplay between the durations and breakages of CI builds, and (4) a study of the considerations for adopting caching in CI builds. Overall, the research conducted in this dissertation highlights the best practices that help mitigate the burden of adopting CI in software projects and, hence, acquire the prospective benefits of CI.

Read the paper · More papers on PaperTik