Studying the Unfulfilled Promises of Continuous Integration
Ghaleb, Taher Ahmed Mohammed
MetadataShow full item record
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.
URI for this recordhttp://hdl.handle.net/1974/29417
Request an alternative formatIf you require this document in an alternate, accessible format, please contact the Queen's Adaptive Technology Centre
The following license files are associated with this item: