The Community for Technology Leaders
2015 IEEE International Conference on Software Maintenance and Evolution (ICSME) (2015)
Bremen, Germany
Sept. 29, 2015 to Oct. 1, 2015
ISBN: 978-1-4673-7531-3
pp: 131-140
Jeffrey Svajlenko , Department of Computer Science, University of Saskatchewan, Canada
Chanchal K. Roy , Department of Computer Science, University of Saskatchewan, Canada
ABSTRACT
Many clone detection tools have been proposed in the literature. However, our knowledge of their performance in real software systems is limited, particularly their recall. In this paper, we use our big data clone benchmark, BigCloneBench, to evaluate the recall of ten clone detection tools. BigCloneBench is a collection of eight million validated clones within IJaDataset-2.0, a big data software repository containing 25,000 open-source Java systems. BigCloneBench contains both intra-project and inter-project clones of the four primary clone types. We use this benchmark to evaluate the recall of the tools per clone type and across the entire range of clone syntactical similarity. We evaluate the tools for both single-system and cross-project detection scenarios. Using multiple clone-matching metrics, we evaluate the quality of the tools' reporting of the benchmark clones with respect to refactoring and automatic clone analysis use-cases. We compare these real-world results against our Mutation and Injection Framework, a synthetic benchmark, to reveal deeper understanding of the tools. We found that the tools have strong recall for Type-1 and Type-2 clones, as well as Type-3 clones with high syntactical similarity. The tools have weaker detection of clones with lower syntactical similarity.
INDEX TERMS
Cloning, Benchmark testing, Software systems, Big data, Java, Data mining
CITATION

J. Svajlenko and C. K. Roy, "Evaluating clone detection tools with BigCloneBench," 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME), Bremen, Germany, 2015, pp. 131-140.
doi:10.1109/ICSM.2015.7332459
85 ms
(Ver 3.3 (11022016))