Abstract
Mutation testing has become a prominent research area in the past few decades. The mutation testing has been basically used in the testing society. It is a type of software testing where we mutate (small change, modification in the program) source code using mutant operators by introducing potential new bugs in the program code without changing its behavior. Analogously, mutant operators generate new clones by copy/paste editing activities. However, several software clone detection tools and techniques have been introduced by numerous scientists and a large number of tools comprises for a perceivable evaluation. Moreover, there have been a lot of efforts to empirically assess and analyze variant state-of-the-art tools. The current abstraction exhibits that various aspects that could leverage the legitimacy of the outcome of such assessment have been roughly anticipated due to lack of legitimized software clone benchmark. In this paper, we present a mutation testing-based automatic evaluation structure for valuating software clone detection tools and techniques. The proposed framework uses the edit-based taxonomy of mutation operator for assessing code clone detection tools. The proposed structure injects software clones in the source code automatically, and after that, we evaluate clone detection tools. The clone detection tools are evaluated on the basis of precision (number of corrected clones) and recall (total number of clones). We visualize that such a framework will present a valuable augmentation to the research community.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Andrews JH, Briand LC, Labiche Y (2005) Is mutation an appropriate tool for testing experiments? In: Proceedings of the 27th international conference on software engineering. ACM, pp 402–411
Offutt AJ, Lee A, Rothermel G, Untch RH, Zapf C (1996) An experimental determination of sufficient mutant operators. ACM Trans Softw Eng Methodol 5(2):99–118
Roy CK, Cordy JR (2009) A mutation/injection-based automatic framework for evaluating code clone detection tools. In: International conference on software testing, verification and validation workshops. IEEE Computer Society, Washington, DC, USA, pp 157–166
Roy CK, Cordy JR (2008) Towards a mutation-based automatic framework for evaluating code clone detection tools. In: Proceedings of the 2008 C3S2E conference. ACM, New York, NY, USA, pp 137–140
Gautam P, Saini H (2016) Various code clone detection techniques and tools: a comprehensive survey. In: International conference on smart trends for information technology and computer communications. Springer, Singapore, pp 655–667
Baker BS (1995) On finding duplication and near-duplication in large software systems. In: Proceedings of 2nd working conference on reverse engineering. IEEE, pp 86–95
Ducasse S, Rieger M, Demeyer S (1999) A language independent approach for detecting duplicated code. In: Proceedings of software maintenance. IEEE, Oxford, UK, pp 109–118
Mayrand J, Leblanc C, Merlo E (1996) Experiment on the automatic detection of function clones in a software system using metrics. In: ICSM, vol 96, p 24
Kontogiannis KA, DeMori R, Merlo E, Galler M, Bernstein M (1996) Pattern matching for clone and concept detection. Autom Softw Eng 3(1–2):77–108
Lague B, Proulx D, Mayrand J, Merlo EM, Hudepohl J (1997) Assessing the benefits of incorporating function clone detection in a development process. In: Proceedings of software maintenance. IEEE, Washington, DC, USA, pp 314–321
Li Z, Lu S, Myagmar S, Zhou Y (2006) CP-Miner: finding copy-paste and related bugs in large-scale software code. IEEE Trans Softw Eng 32(3):176–192
Bellon S, Koschke R, Antoniol G, Krinke J, Merlo E (2007) Comparison and evaluation of clone detection tools. IEEE Trans Softw Eng 33(9):577–591
Bruntink M, Van Deursen A, Van Engelen R, Tourwe T (2005) On the use of clone detection for identifying crosscutting concern code. IEEE Trans Softw Eng 31(10):804–818
Burd E, Bailey J (2002) Evaluating clone detection tools for use during preventative maintenance. In: Proceedings of second IEEE international workshop on source code analysis and manipulation. IEEE Computer Society, Washington, DC, USA, pp 36–43
Koschke R, Falke R, Frenzel P (2006) Clone detection using abstract syntax suffix trees. In: 13th working conference on reverse engineering. IEEE Computer Society, Washington, DC, USA, pp 253–262
Van Rysselberghe F, Demeyer S (2004) Evaluating clone detection techniques from a refactoring perspective. In: Proceedings. 19th international conference on automated software engineering, 2004. IEEE Computer Society, Washington, DC, USA, pp 336–339
Baker BS (2007) Finding clones with dup: analysis of an experiment. IEEE Trans Software Eng 33(9):608–621
Offutt J (2011) A mutation carol: past, present and future. Inf Softw Technol 53(10):1098–1107
Lipton RJ (1971) Fault diagnosis of computer programs. Student report, Carnegie Mellon University
Budd T, Sayward F (1977) Users guide to the Pilot mutation system. Technique report 114, Yale University, New Haven, CT
Hamlet RG (1977) Testing programs with the aid of a compiler. IEEE Trans Softw Eng 4:279–290
DeMillo RA, Lipton RJ, Sayward FG (1978) Hints on test data selection: help for the practicing programmer. Computer 11(4):34–41
DeMillo RA (1989) Completely validated software: test adequacy and program mutation (panel session). In: Proceedings of the 11th international conference on software engineering. ACM, Pittsburgh, PA, pp 355–356
Woodward MR (1990) Mutation testing—an evolving technique. In: IEE colloquium on software testing for critical systems, p 3-1
Woodward MR (1993) Mutation testing—its origin and evolution. Inf Softw Technol 35(3):163–169
Mathur AP (2013) Foundations of software testing, 2/e. Pearson Education India
Ammann P, Offutt J (2016) Introduction to software testing. Cambridge University Press, Cambridge
Offutt AJ, Untch RH (2001) Mutation 2000: uniting the orthogonal. In: Mutation testing for the new century. Springer, USA, pp 34–44
Jia Y, Harman M (2011) An analysis and survey of the development of mutation testing. IEEE Trans Softw Eng 37(5):649–678
Zhu Q, Panichella A, Zaidman A (2016) A systematic literature review of how mutation testing supports test activities (No. e2483v1). PeerJ Preprints, pp 1–57
Reales P, Polo M, Fernandez-Aleman JL, Toval A, Piattini M (2014) Mutation testing. IEEE Softw 31(3):30–35
Gligoric M, Jagannath V, Luo Q, Marinov D (2013) Efficient mutation testing of multithreaded code. Softw Test Verification Reliab 23(5):375–403
Baker R, Habli I (2013) An empirical evaluation of mutation testing for improving the test quality of safety-critical software. IEEE Trans Softw Eng 39(6):787–805
Mateo PR, Usaola MP (2015) Reducing mutation costs through uncovered mutants. Softw Test Verification Reliab 25(5–7):464–489
Namin AS, Xue X, Rosas O, Sharma P (2015) MuRanker: a mutant ranking tool. Softw Test Verification Reliab 25(5–7):572–604
Derezinska A, Hałas K (2015) Improving mutation testing process of python programs. In: Software engineering in intelligent systems. Springer, Cham, pp 233–242
Sun CA, Xue F, Liu H, Zhang X (2017) A path-aware approach to mutant reduction in mutation testing. Inf Softw Technol 81:65–81
Delgado-Pérez P, Medina-Bulo I, Palomo-Lozano F, GarcÃa-DomÃnguez A, DomÃnguez-Jiménez JJ (2017) Assessment of class mutation operators for C++ with the MuCPP mutation system. Inf Softw Technol 81:169–184
Bashir MB, Nadeem A (2017) Improved genetic algorithm to reduce mutation testing cost. IEEE Access 5:3657–3674
Wet Lab (1989) Retrieved from http://ftp.gnu.org/gnu/wget/
Kamiya T, Kusumoto S, Inoue K (2002) CCFinder: a multilinguistic token-based code clone detection system for large scale source code. IEEE Trans Softw Eng 28(7):654–670
Roy CK, Cordy JR (2007) A survey on software clone detection research. Queen’s School of Computing TR, 541(115), pp 64–68
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Singapore Pte Ltd.
About this paper
Cite this paper
Gautam, P., Saini, H. (2020). Mutation Testing-Based Evaluation Framework for Evaluating Software Clone Detection Tools. In: Gupta, V., Varde, P., Kankar, P., Joshi, N. (eds) Reliability and Risk Assessment in Engineering. Lecture Notes in Mechanical Engineering. Springer, Singapore. https://doi.org/10.1007/978-981-15-3746-2_3
Download citation
DOI: https://doi.org/10.1007/978-981-15-3746-2_3
Published:
Publisher Name: Springer, Singapore
Print ISBN: 978-981-15-3745-5
Online ISBN: 978-981-15-3746-2
eBook Packages: EngineeringEngineering (R0)