ABSTRACT
As the paradigm of object orientation becomes more and more important for modern IT development projects, the demand for an automated test case generation to dynamically test object-oriented software increases. While search-based test case generation strategies, such as evolutionary testing, are well researched for procedural software, relatively little research has been done in the area of evolutionary object-oriented software testing.This paper presents an approach with which to apply evolutionary algorithms for the automatic generation of test cases for the white-box testing of object-oriented software. Test cases for testing object-oriented software include test programs which create and manipulate objects in order to achieve a certain test goal. Strategies for the encoding of test cases to evolvable data structures as well as ideas about how the objective functions could allow for a sophisticated evaluation are proposed. It is expected that the ideas herein can be adapted for other unit testing methods as well.The approach has been implemented by a prototype for empirical validation. In experiments with this prototype, evolutionary testing outperformed random testing. Evolutionary algorithms could be successfully applied for the white-box testing of object-oriented software.
- A. Baresel, H. Sthamer, and M. Schmidt. Fitness function design to improve evolutionary structural testing. In Proceedings of the Genetic and Evolutionary Computation Conference (GECCO), pages 1329--1336, July 2002. 9-13th July. Google ScholarDigital Library
- R. Ferguson and B. Korel. The chaining approach for software test data generation. ACM Transactions on Software Engineering and Methodology, 5(1):63--86, January 1996. Google ScholarDigital Library
- Genetic and Evolutionary Algorithm Toolbox for use with Matlab. http://www.geatbx.com.Google Scholar
- S. Kim, J. A. Clark, and J. A. McDermid. Investigating the applicability of traditional test adequacy criteria for object-oriented programs. In Proceedings of the ObjectDays 2000, October 2000.Google Scholar
- P. McMinn. Search-based test data generation: A survey. Journal on Software Testing, Verification and Reliability, 14(2):105--156, June 2004. Google ScholarDigital Library
- P. McMinn and M. Holcombe. Hybridizing evolutionary testing with the chaining approach. Genetic and Evolutionary Computation Conference (GECCO), pages 1363--1374, June 2004. June 26-30.Google ScholarCross Ref
- H. Sthamer, J. Wegener, and A. Baresel. Using evolutionary testing to improve efficiency and quality in software testing. In Proceedings of the 2nd Asia-Pacific Conference on Software Testing Analysis and Review (AsiaSTAR), July 2002. 22-24th July.Google Scholar
- P. Tonella. Evolutionary testing of classes. International Symposium on Software Testing and Analysis (ISSTA), pages 119--128, 2004. July 11-14. Google ScholarDigital Library
- S. Wappler. Using evolutionary algorithms for the test of object-oriented systems. Master's thesis, Hasso-Plattner-Institute for Software Systems Engineering at University of Potsdam, September 2004.Google Scholar
Index Terms
- Using evolutionary algorithms for the unit testing of object-oriented software
Recommendations
Evolutionary unit testing of object-oriented software using strongly-typed genetic programming
GECCO '06: Proceedings of the 8th annual conference on Genetic and evolutionary computationEvolutionary algorithms have successfully been applied to software testing. Not only approaches that search for numeric test data for procedural test objects have been investigated, but also techniques for automatically generating test programs that ...
Evaluating evolutionary testability for structure-oriented testing with software measurements
Test case design is the most important test activity with respect to test quality. For this reason, a large number of testing methods have been developed to assist the tester with the definition of appropriate, error-sensitive test data. Evolutionary ...
Benefits of software measures for evolutionary white-box testing
GECCO '05: Proceedings of the 7th annual conference on Genetic and evolutionary computationWhite-box testing is an important method for the early detection of errors during software development. In this process test case generation plays a crucial role, defining appropriate and error-sensitive test data. The evolutionary white-box testing is ...
Comments