A state-based fitness function for the integration testing of object-oriented programs

Testing object-oriented program is quite challenging task due to the nature of its features like inheritance and polymorphism. In practice test case generation is the most laborious and resource consuming process in software testing hence generating test data for object-oriented programs is even more challenging and effort demanding. Object-oriented evolutionary testing aims at automating test case generation process using evolutionary strategies like Genetic Algorithm. Evolutionary testing gives a helping hand to the software testers to speed up the process and to reduce the amount of project resources. The existing approaches provide sound platform to the researchers to take the work further to meet the challenges that object-oriented paradigm has introduced. One of the limitations in existing approaches is that they combine branch distance of object's state variables with local variables that leaves no guidance for the search process whether object has gained desired state or not. We propose a state-based fitness function for the evolutionary testing of object-oriented programs that can solve object's state problem by evaluating object's state as an independent segment of overall test case fitness. Our initial experiments show that by separating object's state evaluation, search gets better guidance to prevent object's state problem.

[1]  André Baresel,et al.  Fitness Function Design To Improve Evolutionary Structural Testing , 2002, GECCO.

[2]  Gordon Fraser,et al.  EvoSuite: automatic test suite generation for object-oriented software , 2011, ESEC/FSE '11.

[3]  Roy P. Pargas,et al.  Test‐data generation using genetic algorithms , 1999, Softw. Test. Verification Reliab..

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

[5]  Simon Fong,et al.  Modeling TSP with Particle Swarm Optimization and Genetic Algorithm , 2010, 2010 6th International Conference on Advanced Information Management and Service (IMS).

[6]  Marc Roper,et al.  Investigating data-flow coverage of classes using evolutionary algorithms , 2007, GECCO '07.

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

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

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

[10]  Aamer Nadeem,et al.  A State Based Fitness Function for Evolutionary Testing of Object-Oriented Programs , 2009, SERA.

[11]  Phil McMinn,et al.  The State Problem for Evolutionary Testing , 2003, GECCO.

[12]  Hans-Gerhard Groß,et al.  A Genetic Programming Approach to Automated Test Generation for Object-Oriented Software , 2006, Int. Trans. Syst. Sci. Appl..

[13]  Gordon Fraser,et al.  Achieving scalable mutation-based generation of whole test suites , 2015, Empirical Software Engineering.

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

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

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

[17]  Bryan F. Jones,et al.  Automatic structural testing using genetic algorithms , 1996, Softw. Eng. J..

[18]  Joachim Wegener,et al.  Automatic Test Data Generation For Structural Testing Of Embedded Software Systems By Evolutionary Testing , 2002, GECCO.

[19]  Aamer Nadeem,et al.  Applying Evolutionary Approaches to Data Flow Testing at Unit Level , 2011, FGIT-ASEA/DRBC/EL.