Revealing Missing Bug-Fixes in Code Clones in Large-Scale Code Bases

Martin Poehlmann, Elmar Juergens

Abstract


When a bug is fixed in duplicated code, it is often necessary to modify all duplicates (so-called clones) accordingly.
In practice, however, fixes are often incomplete, which causes the bug to remain in one or more of the clones.
This paper presents an approach that detects such incomplete bug-fixes in cloned code by analyzing a system's version history to reveal those commits that fix problems.
The approach then performs incremental clone detection to reveal those clones that became inconsistent as a result of such a fix.
We present results from a case study that analyzed incomplete bug-fixes in six industrial and open-source systems to demonstrate the feasibility and defectiveness of our approach.
We identified likely incomplete bug-fixes in all analyzed systems.

Full Text:

PDF


DOI: http://dx.doi.org/10.14279/tuj.eceasst.60.853

DOI (PDF): http://dx.doi.org/10.14279/tuj.eceasst.60.853.847

Hosted By Universitätsbibliothek TU Berlin.