How Long does a Bug Survive? An Empirical Study by Gerardo Canfora, Michele Ceccarelli, Luigi Cerulo, Massimiliano Di Penta

pubblicato 9 set 2011, 07:25 da Gerardo Canfora

Corrective maintenance activities (bug fixing) can be performed a long time after a bug introduction, or shortly after it. Such a time interval, i.e., the bug survival time, may depend on many factors, e.g., the bug severity/harmfulness, but also on how likely does the bug manifest itself and how difficult was to fix it. This paper proposes the use of survival analysis aimed at determining the relationship between the risk of not fixing a bug within a given time frame and specific source code constructs— e.g., expression operators or programming language constructs— changed when fixing the bug. We estimate the survival time by extracting, from versioning repositories, changes introducing and fixing bugs, and then correlate such a time—by means of survival models—with the constructs changed during bug-fixing. Results of a study performed on data extracted from the versioning repository of four open source projects—Eclipse, Mozilla, OpenLDAP, and Vuze—indicate that long-lived bugs can be characterized by changes to specific code constructs.18th Working Conference on Reverse Engineering (WCRE 2011)