An empirical study of the impact of modern code review practices on software quality

Shane McIntosh, Yasutaka Kamei, Bram Adams, Ahmed E. Hassan

Research output: Contribution to journalArticlepeer-review

87 Citations (Scopus)

Abstract

Software code review, i.e., the practice of having other team members critique changes to a software system, is a well-established best practice in both open source and proprietary software domains. Prior work has shown that formal code inspections tend to improve the quality of delivered software. However, the formal code inspection process mandates strict review criteria (e.g., in-person meetings and reviewer checklists) to ensure a base level of review quality, while the modern, lightweight code reviewing process does not. Although recent work explores the modern code review process, little is known about the relationship between modern code review practices and long-term software quality. Hence, in this paper, we study the relationship between post-release defects (a popular proxy for long-term software quality) and: (1) code review coverage, i.e., the proportion of changes that have been code reviewed, (2) code review participation, i.e., the degree of reviewer involvement in the code review process, and (3) code reviewer expertise, i.e., the level of domain-specific expertise of the code reviewers. Through a case study of the Qt, VTK, and ITK projects, we find that code review coverage, participation, and expertise share a significant link with software quality. Hence, our results empirically confirm the intuition that poorly-reviewed code has a negative impact on software quality in large systems using modern reviewing tools.

Original languageEnglish
Pages (from-to)2146-2189
Number of pages44
JournalEmpirical Software Engineering
Volume21
Issue number5
DOIs
Publication statusPublished - Oct 1 2016

All Science Journal Classification (ASJC) codes

  • Software

Fingerprint Dive into the research topics of 'An empirical study of the impact of modern code review practices on software quality'. Together they form a unique fingerprint.

Cite this