An investigation of the fault-proneness of clone evolutionary patterns

Liliane Barbour, Le An, Foutse Khomh, Ying Zou, Shaohua Wang

Research output: Contribution to journalArticlepeer-review

6 Scopus citations


Two identical or similar code fragments form a clone pair. Previous studies have identified cloning as a risky practice. Therefore, a developer needs to be aware of any clone pairs in order to properly propagate any changes between clones. A clone pair may experience many changes during the creation and maintenance of a software system. A change can either maintain or remove the similarity between clones in a clone pair. If a change maintains the similarity between clones, the clone pair is left in a consistent state. When a change makes the clones no longer similar, the clone pair is left in an inconsistent state. The set of states and changes experienced by clone pairs over time form an evolution history known as a clone genealogy. In this paper, we examine clone genealogies to identify fault-prone “patterns” of states and changes. We explore the use of clone genealogy information in fault prediction. We conduct a quasi-experiment with four long-lived software systems (i.e., Apache Ant, ArgoUML, JEdit, Maven) and identify clones using the NiCad and iClones clone detection tools. Overall, we find that the size of the clone can impact the fault-proneness of a clone pair. However, there is no clear impact of the time interval between changes to a clone pair on the fault-proneness of the clone pair. We also discover that adding clone genealogy information can increase the explanatory power of fault prediction models.

Original languageEnglish (US)
Pages (from-to)1187-1222
Number of pages36
JournalSoftware Quality Journal
Issue number4
StatePublished - Dec 1 2018
Externally publishedYes

All Science Journal Classification (ASJC) codes

  • Software
  • Safety, Risk, Reliability and Quality


  • Clone genealogies
  • Fault-proneness
  • Metrics


Dive into the research topics of 'An investigation of the fault-proneness of clone evolutionary patterns'. Together they form a unique fingerprint.

Cite this