Using classification for cost reduction of applying mutation testing

The paper uses machine learning methods to deal with the problem of reducing the cost of applying mutation testing. A method of classifying mutants of a program using structural similarity is proposed. To calculate such a similarity each mutant is firstly converted into a hierarchical graph, which represents the mutant's control flow, variables and conditions. Then using such a graph form graph kernels are introduced to calculate similarity among mutants. The classification algorithm is then applied for prediction. This approach helps to lower the number of mutants which have to be executed. An experimental validation of this approach is also presented.

[1]  Lionel C. Briand,et al.  A Systematic Review of the Application and Empirical Investigation of Search-Based Test Case Generation , 2010, IEEE Transactions on Software Engineering.

[2]  John A. Clark,et al.  Class Mutation : Mutation Testing for Object-Oriented Programs , 2000 .

[3]  Joanna Strug Mutation Testing Approach to Negative Testing , 2016 .

[4]  Wasif Afzal,et al.  A systematic review of search-based testing for non-functional system properties , 2009, Inf. Softw. Technol..

[5]  Kaspar Riesen,et al.  Reducing the dimensionality of dissimilarity space embedding graph kernels , 2009, Eng. Appl. Artif. Intell..

[6]  Joanna Strug,et al.  Machine Learning Approach in Mutation Testing , 2012, ICTSS.

[7]  René Just,et al.  The major mutation framework: efficient and scalable mutation analysis for Java , 2014, ISSTA 2014.

[8]  A.P. Mathur Performance, effectiveness, and reliability issues in software testing , 1991, [1991] Proceedings The Fifteenth Annual International Computer Software & Applications Conference.

[9]  Barbara Strug,et al.  Using Co-occurring Graph Patterns in Computer Aided Design Evaluation , 2015, ICAISC.

[10]  W. Eric Wong,et al.  An Empirical Comparison of Mutation and Data Flow Based Test Adequacy Criteria , 1993 .

[11]  Timothy Alan Budd,et al.  Mutation analysis of program test data , 1980 .

[12]  Anna Derezi Object-Oriented Mutation to Asses the Quality of Tests , 2003 .

[13]  Tetsuji Kuboyama,et al.  A Generalization of Haussler's Convolution Kernel — Mapping Kernel and Its Application to Tree Kernels , 2008, ICML '08.

[14]  Jian Pei,et al.  Mining Frequent Patterns without Candidate Generation: A Frequent-Pattern Tree Approach , 2006, Sixth IEEE International Conference on Data Mining - Workshops (ICDMW'06).

[15]  Mark Harman,et al.  An Analysis and Survey of the Development of Mutation Testing , 2011, IEEE Transactions on Software Engineering.

[16]  Venkata U. B. Challagulla,et al.  Empirical assessment of machine learning based software defect prediction techniques , 2005, 10th IEEE International Workshop on Object-Oriented Real-Time Dependable Systems.

[17]  Lionel C. Briand,et al.  Is mutation an appropriate tool for testing experiments? , 2005, ICSE.

[18]  A. Jefferson Offutt,et al.  Improving logic-based testing , 2013, J. Syst. Softw..

[19]  A. Jefferson Offutt,et al.  An Experimental Evaluation of Data Flow and Mutation Testing , 1996, Softw. Pract. Exp..

[20]  Hisashi Kashima,et al.  Marginalized Kernels Between Labeled Graphs , 2003, ICML.

[21]  Ivo Düntsch,et al.  Nearest Neighbours without k , 2004, MSRAS.

[22]  A. Jefferson Offutt,et al.  Inter-class mutation operators for Java , 2002, 13th International Symposium on Software Reliability Engineering, 2002. Proceedings..

[23]  Joanna Strug,et al.  Classifying Mutants with Decomposition Kernel , 2016, ICAISC.

[24]  Marie-Laure Mugnier,et al.  Nested Graphs: A Graph-based Knowledge Representation Model with FOL Semantics , 1998, KR.

[25]  Takashi Washio,et al.  An Apriori-Based Algorithm for Mining Frequent Substructures from Graph Data , 2000, PKDD.

[26]  David Haussler,et al.  Convolution kernels on discrete structures , 1999 .

[27]  Richard J. Lipton,et al.  Hints on Test Data Selection: Help for the Practicing Programmer , 1978, Computer.

[28]  Weichen Eric Wong On mutation and data flow , 1993 .

[29]  Tomasz Imielinski,et al.  Mining association rules between sets of items in large databases , 1993, SIGMOD Conference.

[30]  Bernhard K. Aichernig,et al.  Model-Based Mutation Testing of an Industrial Measurement Device , 2014, TAP@STAF.

[31]  Wynne Hsu,et al.  DESIGN OF MUTANT OPERATORS FOR THE C PROGRAMMING LANGUAGE , 2006 .

[32]  Joanna Strug Applying mutation testing for assessing test suites quality at model level , 2016, 2016 Federated Conference on Computer Science and Information Systems (FedCSIS).

[33]  Baowen Xu,et al.  A Novel Method of Mutation Clustering Based on Domain Analysis , 2009, SEKE.

[34]  Anna Derezinska Object-oriented mutation to assess the quality of tests , 2003, 2003 Proceedings 29th Euromicro Conference.

[35]  Michael Collins,et al.  New Ranking Algorithms for Parsing and Tagging: Kernels over Discrete Structures, and the Voted Perceptron , 2002, ACL.

[36]  J. A. Acree On mutation , 1980 .

[37]  Barbara Strug,et al.  Automatic design quality evaluation using graph similarity measures , 2013 .

[38]  Phyllis G. Frankl,et al.  All-uses vs mutation testing: An experimental comparison of effectiveness , 1997, J. Syst. Softw..

[39]  Kaspar Riesen,et al.  Recent advances in graph-based pattern recognition with applications in document analysis , 2011, Pattern Recognit..

[40]  Joanna Strug,et al.  Using Structural Similarity to Classify Tests in Mutation Testing , 2013 .

[41]  Hans-Peter Kriegel,et al.  Shortest-path kernels on graphs , 2005, Fifth IEEE International Conference on Data Mining (ICDM'05).

[42]  Alexander J. Smola,et al.  Learning with kernels , 1998 .

[43]  A. Jefferson Offutt,et al.  MuJava: a mutation system for java , 2006, ICSE.