Pombo, Nuno Gonçalo Coelho CostaMagalhães, Manuel Ferreira2025-10-292025-10-292024-10-182024-09-11http://hdl.handle.net/10400.6/19049Unit testing is one of the most important activities during the lifecycle of a software product. In this operation, it is possible to perform tests for isolated individual units of software to test their overall functionality without external interactions and to verify if they correspond to the defined system functional requirements initially set in the software product’s lifecycle. The creation of unit tests can currently be done manually, with the use of human activity, or automatically, either through the use of tools, frameworks, artificial intelligence, or dedicated algorithms for their generation. Automation in this area of unit test generation shows great potential in terms of process efficiency and in reducing costs and development time. This area of study has a significant impact on software quality, since it directly affects the software lifecycle, where the development of major components depends strictly on the good development and testing of individual units. This study presents an automatic approach for the generation of unit tests from an individual code snippet using genetic algorithms. Additionally, benchmarks are also performed between the algorithms to assess the performance of the automated process and the quality of the generated unit tests.Testagem unitária é uma das atividades mais importantes durante um ciclo de vida de um produto de software. Nesta operação é possível efetuar testes para unidades individuais isoladas de um software de forma testar a sua funcionalidade geral sem interações externas e verificar se corresponde aos requisitos funcionais de sistema definidos inicialmente no ciclo de vida de um produto de software. A criação de testes unitários pode ser atualmente feita de forma manual, com recurso a atividade humana ou automaticamente com uso de ferramentas, frameworks, inteligência artificial ou com algoritmos dedicados para a geração dos mesmos. A automação nesta área de geração de testes unitários revela grande potencial no que diz respeito a eficiência do processo e na redução de custos e tempo de desenvolvimento de um software. Esta área de estudo tem um grande impacto na qualidade de software, uma vez que afeta diretamente o ciclo de vida do mesmo, onde o desenvolvimento das grandes partes depende estritamente do bom desenvolvimento e testagem das unidades individuais. Este estudo apresenta uma abordagem automática para a geração de testes unitários a partir de um pedaço de código individual através da utilização de algoritmos genéticos. Adicionalmente, são efetuados benchmarks entre os algoritmos para avaliação de desempenho do processo automatizado e da qualidade dos testes unitários gerados.engAlgoritmos GenéticosGeração Automatizada de Testes UnitáriosQualidade de SoftwareSearch-Based Test GenerationTestagem UnitáriaUsing Genetic Algorithms to Automatically Generate Unit Testsmaster thesis204027101