On Test Data Generation of Object-Oriented Software

Nowadays, object-oriented (OO) languages are widely used in the development of many different kinds of applications. However, testing those applications is still very expensive and time-consuming for the software community. The automation of this task would therefore be highly desirable. Although automatic testing of procedural software has been studied in depth for many years, comparatively little work has been done about OO software. Different techniques exist. However, the most promising one is probably to model the task as a search problem. This paper explains why automatic testing of OO software is more difficult than procedural software. These difficulties provide strong challenges to the natural computation and software engineering communities. A brief review of the literature of the subject follows. The issues of the current state-of-art of the field are then outlined. Finally, some open research problems are discussed.

[1]  Alessandro Orso,et al.  Automated Testing of Classes , 2000, ISSTA '00.

[2]  Sarfraz Khurshid,et al.  TestEra A Novel Framework for Testing Java Programs y , 2003 .

[3]  Marat Boshernitsan,et al.  From daikon to agitator: lessons and challenges in building a commercial tool for developer testing , 2006, ISSTA '06.

[4]  Ramón Sagarna Almandoz An optimization approach for software test data generation: applications of estimation of distribution algorithms and scatter search , 2007 .

[5]  Stefan Wappler,et al.  Using evolutionary algorithms for the unit testing of object-oriented software , 2005, GECCO '05.

[6]  Philip McMinn,et al.  Evolutionary search for test data in the presence of state behaviour , 2005 .

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

[8]  Yoonsik Cheon,et al.  A Complete Automation of Unit Testing for Java Programs , 2005, Software Engineering Research and Practice.

[9]  Xin Yao,et al.  A Memetic Algorithm for test data generation of Object-Oriented software , 2007, 2007 IEEE Congress on Evolutionary Computation.

[10]  Boris Beizer,et al.  Software Testing Techniques , 1983 .

[11]  John A. Clark,et al.  Formulating software engineering as a search problem , 2003, IEE Proc. Softw..

[12]  David Notkin,et al.  Rostra: a framework for detecting redundant object-oriented unit tests , 2004, Proceedings. 19th International Conference on Automated Software Engineering, 2004..

[13]  Joachim Wegener,et al.  Evolutionary Unit Testing Of Object-Oriented Software Using A Hybrid Evolutionary Algorithm , 2006, 2006 IEEE International Conference on Evolutionary Computation.

[14]  Joachim Wegener,et al.  Evolutionary unit testing of object-oriented software using strongly-typed genetic programming , 2006, GECCO '06.

[15]  Hélène Waeselynck,et al.  Simulated annealing applied to test generation: landscape characterization and stopping criteria , 2007, Empirical Software Engineering.

[16]  Paolo Tonella,et al.  Evolutionary testing of classes , 2004, ISSTA '04.

[17]  Neelam Gupta,et al.  Generating test data for functions with pointer inputs , 2002, Proceedings 17th IEEE International Conference on Automated Software Engineering,.

[18]  Sarfraz Khurshid,et al.  Korat: automated testing based on Java predicates , 2002, ISSTA '02.

[19]  A. Dickson On Evolution , 1884, Science.

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

[21]  Joachim Wegener,et al.  Evolutionary test environment for automatic structural testing , 2001, Inf. Softw. Technol..

[22]  Xin Yao,et al.  Estimation of distribution algorithms for testing object oriented software , 2007, 2007 IEEE Congress on Evolutionary Computation.

[23]  James C. King,et al.  Symbolic execution and program testing , 1976, CACM.

[24]  Phyllis G. Frankl,et al.  The ASTOOT approach to testing object-oriented programs , 1994, TSEM.

[25]  Mark Harman,et al.  Reformulating software engineering as a search problem , 2003 .

[26]  Corina S. Pasareanu,et al.  Test input generation for java containers using state matching , 2006, ISSTA '06.

[27]  Mark Harman,et al.  Search-based software engineering , 2001, Inf. Softw. Technol..

[28]  Alfred Strohmeier,et al.  The Problematics of Testing Object-Oriented Software , 1970 .

[29]  H. Mühlenbein,et al.  From Recombination of Genes to the Estimation of Distributions I. Binary Parameters , 1996, PPSN.

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

[31]  Pablo Moscato,et al.  On Evolution, Search, Optimization, Genetic Algorithms and Martial Arts : Towards Memetic Algorithms , 1989 .

[32]  David H. Wolpert,et al.  No free lunch theorems for optimization , 1997, IEEE Trans. Evol. Comput..

[33]  Marcelo d'Amorim,et al.  An Empirical Comparison of Automated Generation and Classification Techniques for Object-Oriented Unit Testing , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[34]  Sarfraz Khurshid,et al.  TestEra: a novel framework for automated testing of Java programs , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[35]  John H. Holland,et al.  Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control, and Artificial Intelligence , 1992 .

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

[37]  Yoonsik Cheon,et al.  A specification-based fitness function for evolutionary testing of object-oriented programs , 2006, GECCO '06.

[38]  Sarfraz Khurshid,et al.  Test input generation with java PathFinder , 2004, ISSTA '04.

[39]  David Notkin,et al.  Symstra: A Framework for Generating Object-Oriented Unit Tests Using Symbolic Execution , 2005, TACAS.