An empirical study of the impact of modern code review practices on software quality
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.
Empirical Software Engineering