Scalable and systematic detection of buggy inconsistencies in source code

2010; Association for Computing Machinery; Volume: 45; Issue: 10 Linguagem: Inglês

10.1145/1932682.1869475

ISSN

1558-1160

Autores

Mark Gabel, Junfeng Yang, Yuan Yu, Moisés Goldszmidt, Zhendong Su,

Tópico(s)

Software Reliability and Analysis Research

Resumo

Software developers often duplicate source code to replicate functionality. This practice can hinder the maintenance of a software project: bugs may arise when two identical code segments are edited inconsistently. This paper presents DejaVu, a highly scalable system for detecting these general syntactic inconsistency bugs. DejaVu operates in two phases. Given a target code base, a parallel /inconsistent clone analysis/ first enumerates all groups of source code fragments that are similar but not identical. Next, an extensible /buggy change analysis/ framework refines these results, separating each group of inconsistent fragments into a fine-grained set of inconsistent changes and classifying each as benign or buggy. On a 75+ million line pre-production commercial code base, DejaVu executed in under five hours and produced a report of over 8,000 potential bugs. Our analysis of a sizable random sample suggests with high likelihood that at this report contains at least 2,000 true bugs and 1,000 code smells. These bugs draw from a diverse class of software defects and are often simple to correct: syntactic inconsistencies both indicate problems and suggest solutions.

Referência(s)
Altmetric
PlumX