If you are interested in doing PhD in any of the following research streams, please get in touch with me.

Probabilistic Modelling of S/W Testing

Most of the existing white-box testing techniques rely on structural adequacy criteria, such as statement or path coverage. The purpose of defining test adequacy criteria is to achieve a balance between effectiveness and efficiency of testing. However, structural criteria fail to scale up for the systems that can really benefit from better testing, simply because fine-grained metrics like code coverage lose the relevance for large and complex systems. This strand of research combines the existing expertise of CREST – information theory and testing – to form a probabilistic view of the software testing, allowing us to assess and predict the system’s reliability with confidence.

Learning Automated Debugger using Genetic Programming

Automated debugging techniques are receiving a lot of attention, partly because debugging is still hard, and also partly due to the recent advances of autoated program repair which depends on localising faults automatically. Genetic Programming has been successfully applied to evolving human competitive Spectrum Based Fault Localisation formulas, but there are more information that could be considered as input to the automated debugging process. This project will consider the application of Genetic Programming to the holistic observation of both development and testing cycles in order to learn effective automated debugging techniques.

Gamification of Software Engineering

The success of Search-Based Software Engineering (SBSE) bears an interesting observation: many software engineering tasks can be viewed as combinatorial optimization. This research will investigate whether it is possible to create entertaining gaming experience, essentially by extending meta-heuristics for SBSE to more interactive ones. The grand challenge is to completely encapsulate the original software engineering problem and to present a playable game instead, seeking human insights into the problem solving. The research will also consider whether any non-conventional user interface and/or visualization can help specific software engineering tasks.