Titulo Estágio
Repurposing generative AI for mutation testing and software fault injection
Áreas de especialidade
Engenharia de Software
Sistemas Inteligentes
Local do Estágio
CISUC
Enquadramento
Generative AI is revolutionizing many aspects of software engineering, powered by its innate ability to parse, comprehend and modify code (and other textual representations). Although generative AI has already been applied to code development, code suggestions and to test suite generation, there are still some areas of software engineering where the usage of AI has not been explored.
Mutation testing and software fault injection are two popular techniques that work on the same concept -- inject changes (bugs) in the code. While mutation testing is applied in test suite evaluation, software fault injection is used to evaluate the dependability and failure behaviour of systems.
In either case, there are obstacles common to both techniques, like lack of tool support for different programming languages, difficulty in obtaining a set of mutations (changes to the code) that is representative of real software bugs, and the large cost of applying these techniques.
With the power and adaptability of AI, there is now the possibility of solving some of these obstacles.
Objetivo
The objective of this technique is to apply the power of generative AI to perform changes in source code written in various programming languages and to evaluate its ability to be used as a tool for mutation testing and software fault injection.
Plano de Trabalhos - Semestre 1
T1 (M1-M2) - Review of the state-of-the-art in mutation testing, software fault injection, generative AI applied to software engineering tasks
T2 (M3) - Collect list of tools for mutation testing and software fault injection, install them and create list of limitations of the tools
T3 (M4) - Collect samples of source code from open-source repositories that implement different functionalities and written in various programming languages
T4 (M4) - Collect set of generative AI models
T4 (M5) - Write the intermediate report
Plano de Trabalhos - Semestre 2
T5 (M6-M8) - Conduct experiments where the collected AI models are used to apply mutations to the collection of source code
T6 (M7-M9) - Apply existing tools to the same collection of source code
T7 (M8-M10) - Compare results obtained by AI against the results from the tools
T8 (M10-M11) - Write the final report
Condições
The dissertation will take place in the CISUC research centre (SSE group).
Orientador
Frederico Cerveira
fmduarte@dei.uc.pt 📩