DocumentCode
841576
Title
What Types of Defects Are Really Discovered in Code Reviews?
Author
Mantyla, Mika V. ; Lassenius, Casper
Author_Institution
Helsinki Univ. of Technol., Helsinki
Volume
35
Issue
3
fYear
2009
Firstpage
430
Lastpage
448
Abstract
Research on code reviews has often focused on defect counts instead of defect types, which offers an imperfect view of code review benefits. In this paper, we classified the defects of nine industrial (C/C++) and 23 student (Java) code reviews, detecting 388 and 371 defects, respectively. First, we discovered that 75 percent of defects found during the review do not affect the visible functionality of the software. Instead, these defects improved software evolvability by making it easier to understand and modify. Second, we created a defect classification consisting of functional and evolvability defects. The evolvability defect classification is based on the defect types found in this study, but, for the functional defects, we studied and compared existing functional defect classifications. The classification can be useful for assigning code review roles, creating checklists, assessing software evolvability, and building software engineering tools. We conclude that, in addition to functional defects, code reviews find many evolvability defects and, thus, offer additional benefits over execution-based quality assurance methods that cannot detect evolvability defects. We suggest that code reviews may be most valuable for software products with long life cycles as the value of discovering evolvability defects in them is greater than for short life cycle systems.
Keywords
pattern classification; software maintenance; software reviews; defect classification; execution-based quality assurance methods; software engineering tools; software evolvability; software functionality; software products; Code documentation; Code inspections and walkthroughs; Construction QA; Maintainability; Measurement applied to SQA and V& Methods for SQA and V& Source code organization; V; enhancement; extensibility; maintainability; restructuring.;
fLanguage
English
Journal_Title
Software Engineering, IEEE Transactions on
Publisher
ieee
ISSN
0098-5589
Type
jour
DOI
10.1109/TSE.2008.71
Filename
4604671
Link To Document