Konstantinos Liaskos, Marc Roper, Murray Wood

The aim of this research is to explore the application of Genetic Algorithms (GAs) to the problem of automatic test data generation for object-oriented software and compare the adopted data flow coverage criterion with other coverage criteria. When applied to the problem of software testing, the solution sought by the GA is the generation of test data, the execution of which satisfies a given set of test targets (e.g., a statement, a branch, a path or a definition-use pair in the case of structural testing) in the program under test. GAs have been applied successfully to the testing of procedural software but relatively little research has been carried out in the object-oriented domain. Current experimental results have helped researchers to record the key problems that need to be overcome to permit the application of GAs to real-world and larger-scale software e.g., the state problem, the flag problem, the problem of nested targets and loops, and the problem of conditions with non-numerical data types. Existing research suggests that data flow coverage seems the most powerful coverage measure on the basis of its fault-defecting ability and software reliability, but it introduces a high computational cost in the testing process. Additionally, data flow coverage has the advantage of requiring very thorough testing, because the paths reported have direct relevance to the way the program handles data. As a result, it is hypothesised that the information produced during the data flow analysis of the object under test makes the data dependencies explicit and can be utilised to tackle at least the first three problems mentioned above and potentially any new obstacles introduced under the object-oriented paradigm or the use of data flow coverage.