Do code review practices impact design quality? A case study of the Qt, VTK, and ITK projects

Authors: Rodrigo Morales Shane McIntosh Foutse Khomh

Venue: SANER   2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER), pp. 171-180, 2015

Year: 2015

Abstract: Code review is the process of having other team members examine changes to a software system in order to evaluate its technical content and quality. A lightweight variant of this practice, often referred to as Modern Code Review (MCR), is widely adopted by software organizations today. Previous studies have established a relation between the practice of code review and the occurrence of post-release bugs. While the prior work studies the impact of code review practices on software release quality, it is still unclear what impact code review practices have on software design quality. Therefore, using the occurrence of 7 different types of anti-patterns (i.e., poor solutions to design and implementation problems) as a proxy for software design quality, we set out to investigate the relationship between code review practices and software design quality. Through a case study of the Qt, VTK and ITK open source projects, we find that software components with low review coverage or low review participation are often more prone to the occurrence of anti-patterns than those components with more active code review practices.

BibTeX:

@inproceedings{rodrigomorales2015dcrpidqacsotqvaip,
    author = "Rodrigo Morales and Shane McIntosh and Foutse Khomh",
    title = "Do code review practices impact design quality? A case study of the Qt, VTK, and ITK projects",
    year = "2015",
    pages = "171-180",
    booktitle = "Proceedings of 2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)"
}

Plain Text:

Rodrigo Morales, Shane McIntosh, and Foutse Khomh, "Do code review practices impact design quality? A case study of the Qt, VTK, and ITK projects," 2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER), pp. 171-180