Can clone detection support test comprehension?

Tests are central artifacts of software systems. Therefore, understanding tests is essential for activities such as maintenance, test automation, and efficient execution. Redundancies in tests may significantly decrease their understandability. Clone detection is a technique to find similar parts in software artifacts. We suggest using this technique to gain a better understanding of tests and to provide guidance for testing activities. We show the capabilities as well as the limits of this approach by conducting a case study analyzing more than 4000 tests of seven industrial software systems.

[1]  Elmar Jürgens,et al.  Do code clones matter? , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[2]  Bernhard Schätz,et al.  Can clone detection support quality assessments of requirements specifications? , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[3]  H. D. Rombach,et al.  The Goal Question Metric Approach , 1994 .

[4]  Gerard Meszaros,et al.  xUnit Test Patterns: Refactoring Test Code , 2007 .

[5]  Mary Jean Harrold,et al.  Test-suite reduction and prioritization for modified condition/decision coverage , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[6]  Ji-Rong Wen,et al.  Clustering user queries of a search engine , 2001, WWW '01.

[7]  Tsong Yueh Chen,et al.  A new heuristic for test suite reduction , 1998, Inf. Softw. Technol..

[8]  Robert V. Binder,et al.  Testing object‐oriented software: a survey , 1996 .

[9]  Helmut Neukirchen,et al.  Utilising Code Smells to Detect Quality Problems in TTCN-3 Test Suites , 2007, TestCom/FATES.

[10]  Bart Van Rompaey,et al.  TestQ: Exploring Structural and Maintenance Characteristics of Unit Test Suites , 2008 .

[11]  A. Jefferson Offutt,et al.  Constraint-Based Automatic Test Data Generation , 1991, IEEE Trans. Software Eng..

[12]  Serge Demeyer,et al.  On The Detection of Test Smells: A Metrics-Based Approach for General Fixture and Eager Test , 2007, IEEE Trans. Software Eng..

[13]  Arie van Deursen,et al.  Refactoring test code , 2001 .

[14]  Danny Holten,et al.  Hierarchical Edge Bundles: Visualization of Adjacency Relations in Hierarchical Data , 2006, IEEE Transactions on Visualization and Computer Graphics.

[15]  Gerard Meszaros,et al.  The Test Automation Manifesto , 2003, XP/Agile Universe.

[16]  Ina Schieferdecker,et al.  Automated Maintainability of TTCN-3 Test Suites Based on Guideline Checking , 2008, SEUS.

[17]  Chanchal K. Roy,et al.  A Survey on Software Clone Detection Research , 2007 .

[18]  Nicolae Goga,et al.  Formal Test Automation: A Simple Experiment , 1999, IWTCS.

[19]  Glenford J. Myers,et al.  Art of Software Testing , 1979 .

[20]  Standard Glossary of Software Engineering Terminology , 1990 .

[21]  Serge Demeyer,et al.  Exploring the composition of unit test suites , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering - Workshops.

[22]  Bogdan Korel,et al.  Automated Software Test Data Generation , 1990, IEEE Trans. Software Eng..

[23]  Jon Edvardsson,et al.  A Survey on Automatic Test Data Generation , 2002 .

[24]  Fintan Culwin,et al.  A REVIEW OF ELECTRONIC SERVICES FOR PLAGIARISM DETECTION IN STUDENT SUBMISSIONS , 2000 .

[25]  Elmar Jürgens,et al.  CloneDetective - A workbench for clone detection research , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[26]  Rainer Koschke,et al.  Survey of Research on Software Clones , 2006, Duplication, Redundancy, and Similarity in Software.

[27]  Stanley M. Sutton,et al.  N degrees of separation: multi-dimensional separation of concerns , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[28]  Stefan P. Jaskiel,et al.  Systematic Software Testing , 2002 .

[29]  Zhou Bo,et al.  A test automation solution on GUI functional test , 2008, 2008 6th IEEE International Conference on Industrial Informatics.

[30]  Mary Jean Harrold,et al.  An empirical study of the effects of test-suite reduction on fault localization , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[31]  Rajiv Gupta,et al.  A methodology for controlling the size of a test suite , 1990, Proceedings. Conference on Software Maintenance 1990.