Search based algorithms for test sequence generation in functional testing

Abstract Context The generation of dynamic test sequences from a formal specification, complementing traditional testing methods in order to find errors in the source code. Objective In this paper we extend one specific combinatorial test approach, the Classification Tree Method (CTM), with transition information to generate test sequences. Although we use CTM, this extension is also possible for any combinatorial testing method. Method The generation of minimal test sequences that fulfill the demanded coverage criteria is an NP-hard problem. Therefore, search-based approaches are required to find such (near) optimal test sequences. Results The experimental analysis compares the search-based technique with a greedy algorithm on a set of 12 hierarchical concurrent models of programs extracted from the literature. Our proposed search-based approaches (GTSG and ACOts) are able to generate test sequences by finding the shortest valid path to achieve full class (state) and transition coverage. Conclusion The extended classification tree is useful for generating of test sequences. Moreover, the experimental analysis reveals that our search-based approaches are better than the greedy deterministic approach, especially in the most complex instances. All presented algorithms are actually integrated into a professional tool for functional testing.

[1]  José Torres-Jiménez,et al.  New bounds for binary covering arrays using simulated annealing , 2012, Inf. Sci..

[2]  A. Vargha,et al.  A Critique and Improvement of the CL Common Language Effect Size Statistics of McGraw and Wong , 2000 .

[3]  Anne Angermann,et al.  MATLAB - Simulink - Stateflow: Grundlagen, Toolboxen, Beispiele , 2009 .

[4]  Christian Blum,et al.  Metaheuristics in combinatorial optimization: Overview and conceptual comparison , 2003, CSUR.

[5]  Angelo Gargantini,et al.  ASM-Based Testing: Coverage Criteria and Automatic Test Sequence , 2001, J. Univers. Comput. Sci..

[6]  Enrique Alba,et al.  Finding deadlocks in large concurrent java programs using genetic algorithms , 2008, GECCO '08.

[7]  Mark Harman,et al.  Automatically Generating Information from a Z Specification to Support the Classification Tree Method , 2003, ZB.

[8]  Cem Kaner,et al.  The Impossibility of Complete Testing , 1998 .

[9]  Myra B. Cohen,et al.  Testing across configurations: implications for combinatorial testing , 2006, SOEN.

[10]  Paul J. Lucas,et al.  An object-oriented language system for implementing concurrent, hierarchical, finite state machines , 1994 .

[11]  Yu Lei,et al.  Practical Combinatorial Testing , 2010 .

[12]  Phil McMinn,et al.  Search‐based software test data generation: a survey , 2004, Softw. Test. Verification Reliab..

[13]  Sanjai Rayadurgam,et al.  Auto-generating Test Sequences Using Model Checkers: A Case Study , 2003, FATES.

[14]  Andreas Windisch,et al.  Search-based testing of complex simulink models containing stateflow diagrams , 2009, 2009 31st International Conference on Software Engineering - Companion Volume.

[15]  Mirko Conrad Systematic Testing of Embedded Automotive Software - The Classification-Tree Method for Embedded Systems (CTM/ES) , 2004, Perspectives of Model-Based Testing.

[16]  Hasan Ural,et al.  Formal methods for test sequence generation , 1992, Comput. Commun..

[17]  Mark Harman,et al.  Transition coverage testing for simulink/stateflow models using messy genetic algorithms , 2011, GECCO '11.

[18]  J. Wegener,et al.  Test Case Design by Means of the CTE XL , 2000 .

[19]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[20]  Joachim Wegener,et al.  Test Sequence Generation from Classification Trees , 2012, 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation.

[21]  Avner Landver,et al.  Coverage-Directed Test Generation Using Symbolic Techniques , 1996, FMCAD.

[22]  Enrique Alba,et al.  Finding safety errors with ACO , 2007, GECCO '07.

[23]  Maliha S. Nash,et al.  Handbook of Parametric and Nonparametric Statistical Procedures , 2001, Technometrics.

[24]  Akbar Siami Namin,et al.  The influence of size and coverage on test suite effectiveness , 2009, ISSTA.

[25]  Elfriede Dustin Effective Software Testing: 50 Ways to Improve Your Software Testing , 2002 .

[26]  Manuel López-Ibáñez,et al.  Ant colony optimization , 2010, GECCO '10.

[27]  Mark Harman,et al.  The Current State and Future of Search Based Software Engineering , 2007, Future of Software Engineering (FOSE '07).

[28]  Steffen Helke Verifikation von Statecharts durch struktur- und eigenschaftserhaltende Datenabstraktion , 2007 .

[29]  Tanja E. J. Vos,et al.  Evolutionary functional black-box testing in an industrial setting , 2013, Software Quality Journal.

[30]  Gregory Tassey,et al.  Prepared for what , 2007 .

[31]  Matthias Grochtmann,et al.  Classification trees for partition testing , 1993, Softw. Test. Verification Reliab..

[32]  Karl F. Doerner,et al.  Extracting Test Sequences from a Markov Software Usage Model by ACO , 2003, GECCO.

[33]  Marc J. Balcer,et al.  The category-partition method for specifying and generating fuctional tests , 1988, CACM.

[34]  Gordon Fraser,et al.  Parameter tuning or default values? An empirical investigation in search-based software engineering , 2013, Empirical Software Engineering.

[35]  Robert L. Probert,et al.  A measure for component interaction test coverage , 2001, Proceedings ACS/IEEE International Conference on Computer Systems and Applications.