Using control flow analysis to improve the effectiveness of incremental mutation testing

Incremental Mutation Testing attempts to make mutation testing less expensive by applying it incrementally to a system as it evolves. This approach fits current trends of iterative software development with the main idea being that by carrying out mutation analysis in frequent bite-sized chunks focused on areas of the code which have changed, one can build confidence in the adequacy of a test suite incrementally. Yet this depends on how precisely one can characterise the effects of a change to a program. The original technique uses a naive approach whereby changes are characterised only by syntactic changes. In this paper we propose bolstering incremental mutation testing by using control flow analysis to identify semantic repercussions which a syntactic change will have on a system. Our initial results based on two case studies demonstrate that numerous relevant mutants which would have otherwise not been considered using the naive approach, are now being generated. However, the cost of identifying these mutants is significant when compared to the naive approach, although it remains advantageous when compared to traditional mutation testing so long as the increment is sufficiently small.

[1]  Mary Lou Soffa,et al.  Interprocedual data flow testing , 1989 .

[2]  Nachiappan Nagappan,et al.  A software testing and reliability early warning (strew) metric suite , 2005 .

[3]  Timothy Lethbridge,et al.  Object-oriented software engineering - practical software development using UML and Java , 2002 .

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

[5]  Olin Shivers,et al.  Control flow analysis in scheme , 1988, PLDI '88.

[6]  Frances E. Allen,et al.  Control-flow analysis , 2022 .

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

[8]  David Grove,et al.  Call graph construction in object-oriented languages , 1997, OOPSLA '97.

[9]  Mark Harman,et al.  Regression testing minimization, selection and prioritization: a survey , 2012, Softw. Test. Verification Reliab..

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

[11]  Joseph Robert Horgan,et al.  Incremental regression testing , 1993, 1993 Conference on Software Maintenance.

[12]  Sik-Sang Yau,et al.  METHOD FOR REVALIDATING MODIFIED PROGRAMS IN THE MAINTENANCE PHASE. , 1987 .

[13]  Gregg Rothermel,et al.  A safe, efficient regression test selection technique , 1997, TSEM.

[14]  Christian Colombo,et al.  Towards Incremental Mutation Testing , 2013, Electron. Notes Theor. Comput. Sci..

[15]  Aditya P. Mathur,et al.  Interface Mutation Test Adequacy Criterion: An Empirical Evaluation , 2001, Empirical Software Engineering.

[16]  J.H. Andrews,et al.  Is mutation an appropriate tool for testing experiments? [software testing] , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..