EvoTest Test Case Generation Using Genetic Programming and Software Analysis
Testing in diverse software development paradigms is an ongoing problem in software engineering.
Many techniques have been devised over the past decades to help software engineers create useful
testing suites. In this thesis, the focus is on test case generation for object orientated software using genetic programming. The automatic creation of test data is still an open problem in object-oriented software testing, and many new techniques are being researched. For object orientated software, the automatic test data generation technique is not sufficient, because besides input data used for testing, it additionally has to produce the right sequences of method calls, and the right artefacts, to bring the object under test in the required state for testing.
Genetic algorithms have already been used to tackle typical testing problems with success, but the
use of genetic programming applied to automatic test case generation is relatively new and promising.
This master thesis shows how genetic algorithms combined with different types of software analysis
can create new unit tests with a high amount of program coverage. Together with static analysis, the
genetic algorithm is able to generate tests for more real world programs in a shorter amount of time.
This new approach is implemented in a prototype tool called EvoTest?
. With this tool I demonstrate
the coverage obtained for small programs and some larger real world programs.