Code Review of Build System Specifications: Prevalence, Purposes, Patterns, and Perceptions

Authors - Mahtab Nejati, Mahmoud Alfadel, Shane McIntosh
Venue - International Conference on Software Engineering, pp. 1213–1224, 2023

Related Tags - ICSE 2023 build systems code review

Abstract - Build systems automate the integration of source code into executables. Maintaining build systems is known to be challenging. Lax build maintenance can lead to costly build breakages or unexpected software behaviour. Code review is a broadly adopted practice to improve software quality. Yet, little is known about how code review is applied to build specifications.

In this paper, we present the first empirical study of how code review is practiced in the context of build specifications. Through quantitative analysis of 502,931 change sets from the Qt and Eclipse communities, we observe that changes to build specifications are at least two times less likely to be discussed during code review when compared to production and test code changes. A qualitative analysis of 500 change sets reveals that (i) comments on changes to build specifications are more likely to point out defects than rates reported in the literature for production and test code, and (ii) issues related to evolvability of the code and dependency-related issues are the most frequently raised types of issues. Follow-up interviews with nine developers with 1-40 years of experience point out social and technical factors that hinder rigorous review of build specifications, such as a prevailing lack of understanding of and interest in build systems among developers, and the lack of dedicated tooling to support the review of build specifications.

Preprint - PDF

Bibtex

@inproceedings{nejati2023icse,
  Author = {Mahtab Nejati and Mahmoud Alfadel and Shane McIntosh},
  Title = {{Code Review of Build System Specifications: Prevalence, Purposes, Patterns, and Perceptions}},
  Year = {2023},
  Booktitle = {Proc. of the International Conference on Software Engineering (ICSE)},
  Pages = {1213–1224}
}