Skip to main content

Mutation Testing-Based Evaluation Framework for Evaluating Software Clone Detection Tools

  • Conference paper
  • First Online:
Reliability and Risk Assessment in Engineering

Part of the book series: Lecture Notes in Mechanical Engineering ((LNME))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 189.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 249.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 249.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. 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

    Google Scholar 

  2. 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

    Article  Google Scholar 

  3. 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

    Google Scholar 

  4. 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

    Google Scholar 

  5. 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

    Google Scholar 

  6. 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

    Google Scholar 

  7. 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

    Google Scholar 

  8. 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

    Google Scholar 

  9. 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

    Article  MathSciNet  Google Scholar 

  10. 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

    Google Scholar 

  11. 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

    Article  Google Scholar 

  12. 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

    Article  Google Scholar 

  13. 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

    Article  Google Scholar 

  14. 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

    Google Scholar 

  15. 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

    Google Scholar 

  16. 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

    Google Scholar 

  17. Baker BS (2007) Finding clones with dup: analysis of an experiment. IEEE Trans Software Eng 33(9):608–621

    Article  Google Scholar 

  18. Offutt J (2011) A mutation carol: past, present and future. Inf Softw Technol 53(10):1098–1107

    Article  Google Scholar 

  19. Lipton RJ (1971) Fault diagnosis of computer programs. Student report, Carnegie Mellon University

    Google Scholar 

  20. Budd T, Sayward F (1977) Users guide to the Pilot mutation system. Technique report 114, Yale University, New Haven, CT

    Google Scholar 

  21. Hamlet RG (1977) Testing programs with the aid of a compiler. IEEE Trans Softw Eng 4:279–290

    Article  Google Scholar 

  22. DeMillo RA, Lipton RJ, Sayward FG (1978) Hints on test data selection: help for the practicing programmer. Computer 11(4):34–41

    Article  Google Scholar 

  23. 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

    Google Scholar 

  24. Woodward MR (1990) Mutation testing—an evolving technique. In: IEE colloquium on software testing for critical systems, p 3-1

    Google Scholar 

  25. Woodward MR (1993) Mutation testing—its origin and evolution. Inf Softw Technol 35(3):163–169

    Article  Google Scholar 

  26. Mathur AP (2013) Foundations of software testing, 2/e. Pearson Education India

    Google Scholar 

  27. Ammann P, Offutt J (2016) Introduction to software testing. Cambridge University Press, Cambridge

    Book  Google Scholar 

  28. Offutt AJ, Untch RH (2001) Mutation 2000: uniting the orthogonal. In: Mutation testing for the new century. Springer, USA, pp 34–44

    Google Scholar 

  29. Jia Y, Harman M (2011) An analysis and survey of the development of mutation testing. IEEE Trans Softw Eng 37(5):649–678

    Article  Google Scholar 

  30. 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

    Google Scholar 

  31. Reales P, Polo M, Fernandez-Aleman JL, Toval A, Piattini M (2014) Mutation testing. IEEE Softw 31(3):30–35

    Article  Google Scholar 

  32. Gligoric M, Jagannath V, Luo Q, Marinov D (2013) Efficient mutation testing of multithreaded code. Softw Test Verification Reliab 23(5):375–403

    Article  Google Scholar 

  33. 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

    Article  Google Scholar 

  34. Mateo PR, Usaola MP (2015) Reducing mutation costs through uncovered mutants. Softw Test Verification Reliab 25(5–7):464–489

    Article  Google Scholar 

  35. Namin AS, Xue X, Rosas O, Sharma P (2015) MuRanker: a mutant ranking tool. Softw Test Verification Reliab 25(5–7):572–604

    Article  Google Scholar 

  36. Derezinska A, Hałas K (2015) Improving mutation testing process of python programs. In: Software engineering in intelligent systems. Springer, Cham, pp 233–242

    Google Scholar 

  37. 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

    Article  Google Scholar 

  38. 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

    Article  Google Scholar 

  39. Bashir MB, Nadeem A (2017) Improved genetic algorithm to reduce mutation testing cost. IEEE Access 5:3657–3674

    Article  Google Scholar 

  40. Wet Lab (1989) Retrieved from http://ftp.gnu.org/gnu/wget/

    Google Scholar 

  41. 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

    Article  Google Scholar 

  42. Roy CK, Cordy JR (2007) A survey on software clone detection research. Queen’s School of Computing TR, 541(115), pp 64–68

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Pratiksha Gautam .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Singapore Pte Ltd.

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics