Buginnings: Identifying the origins of a bug
Abstract
Information about the origins of a bug can be useful for many applications, such as the computation of defect age and fault-proneness of code components. Although there exists an extensive body of research that has investigated the applications of bug-fix information, the computation of bug-origin information and its applications have largely been ignored - the only known approach for identifying bug origins has limitations. In this paper, we present a new approach for identifying bug-introducing code changes. The key innovation of our approach is that it analyzes the effects of bug-fix code changes on program dependences and, based on these effects, identifies the bug-introducing version. Thus, unlike the existing approach, which is text-based, our technique partially takes into account semantics of code changes. This can make it not only more accurate, but also applicable to a wider class of bug-fix code changes. To evaluate the feasibility and usefulness of our technique, we performed a preliminary empirical evaluation. Our results indicate that technique can be more effective than the text-based approach, and has an acceptable computational cost, to be potentially useful in practice. Copyright 2010 ACM.