Title :
Clustering static analysis defect reports to reduce maintenance costs
Author :
Fry, Zachary P. ; Weimer, Westley
Author_Institution :
Weimer Univ. of Virginia, Charlottesville, VA, USA
Abstract :
Static analysis tools facilitate software maintenance by automatically identifying bugs in source code. However, for large systems, these tools often produce an overwhelming number of defect reports. Many of these defect reports are conceptually similar, but addressing each report separately costs developer effort and increases the maintenance burden. We propose to automatically cluster machine-generated defect reports so that similar bugs can be triaged and potentially fixed in aggregate. Our approach leverages both syntactic and structural information available in static bug reports to accurately cluster related reports, thus expediting the maintenance process. We evaluate our technique using 8,948 defect reports produced by the Coverity Static Analysis and FindBugs tools in both C and Java programs totaling over 14 million lines of code. We find that humans overwhelmingly agree that clusters of defect reports produced by our tool could be handled aggregately, thus reducing developer maintenance effort. Additionally, we show that our tool is not only capable of perfectly accurate clusters, but can also significantly reduce the number of defect reports that have to be manually examined by developers. For instance, at a level of 90% accuracy, our technique can reduce the number of individually inspected defect reports by 21.33% while other multi-language tools fail to obtain more than a 2% reduction.
Keywords :
C language; Java; pattern clustering; program debugging; program diagnostics; software maintenance; C programs; Coverity Static Analysis tool; FindBugs tool; Java programs; clustering; developer maintenance effort reduction; machine-generated defect reports; maintenance cost reduction; multilanguage tools; software maintenance; static analysis defect reports; static bug reports; structural information; syntactic information; Computer bugs; Context; Frequency measurement; Linux; Maintenance engineering; Syntactics;
Conference_Titel :
Reverse Engineering (WCRE), 2013 20th Working Conference on
Conference_Location :
Koblenz
DOI :
10.1109/WCRE.2013.6671303