Mengjie Zhang, Genetic Programming for Software/Program Testing

Genetic Programming for Software/Program Testing

Software testing is an essential part in the software development process, where the quality of test data set plays a critical role in the success of software testing activity. Manually generating test data is time-consuming, error-prone and complex. To avoid such problems, automatic generation of the test data is necessary to improve the performance and reduce the time and cost.

Genetic programming (GP) is an evolutionary learning and optimisation technique, and has been used for many real-world applications. GP can deal with different types of data/variables, such as continuous, categorical (binary), and ordinal data, which is a promising approach to automatic test data generation.

The goal of this project is to propose a GP approach to automatic software test data generation. The proposed approach is expected to automatically generate a set of data to maximise the code coverage on the source codes of a program. The code coverage will be measured by Block or Branch coverage, Path coverage, and Condition/Decision coverage. A set of benchmark programs will be chosen as the test bed.

This project requires a student in Computer Science or Software Engineering with good knowledge in machine learning (COMP307). The student should have a strong programming background in Java, or C++ (COMP261 and SWEN221). Preference will be given to those with good Evolutionary Computing for software/program testing background.

This project will be co-supervised by Dr Bing Xue. Please check,, and for publications and other information.