Generación automática de casos de prueba mediante modelos de lenguaje (LLM)
Loading...
Official URL
Full text at PDC
Publication date
2024
Advisors (or tutors)
Editors
Journal Title
Journal ISSN
Volume Title
Publisher
Citation
Abstract
Este trabajo de fin de grado tiene por objetivo la generación de casos de prueba de forma automática, empleando modelos de lenguaje. Los casos de prueba deben respetar el criterio de cobertura métrica MC/DC (Condición Modificada/Cobertura de Decisión), una subclase de cobertura de código para bloques condicionales if-then-else. Esta estructura extiende la cobertura de decisión y condición, exigiendo que cada condición debe afectar independientemente en la decisión, es decir que enseña cómo todas las entradas dadas afectan de forma independiente a la salida de una expresión lógica.
Este TFG extiende trabajos anteriores. Concretamente, se ha actualizado y empaquetado un motor heurístico preexistente para la generación de casos de prueba conforme al criterio MC/DC en una biblioteca de Python. Posteriormente se ha añadido a esa biblioteca un segundo generador de casos de prueba para el criterio MC/DC basado en un modelo de lenguaje. Por último, se ha integrado la biblioteca de generación de casos de prueba en un plugin para el entorno de desarrollo Visual Studio Code para facilitar su uso por parte de los programadores. La herramienta permite generar casos de prueba para maximizar la cobertura MC/DC de un código en Python.
Gracias a su modularidad, esta herramienta se podrá extender en el futuro para soportar otros lenguajes de programación y criterios de cobertura.
This undergraduate thesis aims to automatically generate test cases using language models. The test cases must adhere to the MC/DC (Modified Condition/Decision Coverage) metric criterion, a subclass of code coverage for if-then-else conditional blocks.This structure extends decision and condition coverage by requiring that each condition must independently affect the decision. This means it demonstrates how all given inputs independently affect the output of a logical expression. This thesis builds upon previous work. Specifically, we have updated and packaged a pre-existing heuristic engine for generating test cases according to the MC/DC criterion into a Python library. Subsequently, we added a second test case generator to this library for the MC/DC criterion based on a language model. Finally, we integrated the test case generation library into a plugin for the Visual Studio Code development environment to facilitate its use by programmers. The tool allows for the generation of test cases to maximize MC/DC coverage of Python code. Thanks to its modularity, our tool can be extended in the future to support other programming languages and coverage criteria.
This undergraduate thesis aims to automatically generate test cases using language models. The test cases must adhere to the MC/DC (Modified Condition/Decision Coverage) metric criterion, a subclass of code coverage for if-then-else conditional blocks.This structure extends decision and condition coverage by requiring that each condition must independently affect the decision. This means it demonstrates how all given inputs independently affect the output of a logical expression. This thesis builds upon previous work. Specifically, we have updated and packaged a pre-existing heuristic engine for generating test cases according to the MC/DC criterion into a Python library. Subsequently, we added a second test case generator to this library for the MC/DC criterion based on a language model. Finally, we integrated the test case generation library into a plugin for the Visual Studio Code development environment to facilitate its use by programmers. The tool allows for the generation of test cases to maximize MC/DC coverage of Python code. Thanks to its modularity, our tool can be extended in the future to support other programming languages and coverage criteria.
Description
Trabajo de Fin de Grado en Ingeniería Informática, Facultad de Informática UCM, Departamento de Sistemas Informáticos y Computación, Curso 2023/2024.
El trabajo realizado se puede consultar en el siguiente directorio de Github: https://github.com/TGF-2023-24/testing-ai/tree/pruebas