Título: | Uso de IA generativa na geração automática de casos de teste unitários |
Autor(es): | Bezerra, Lucas Gabriel |
Orientador(es): | Venson, Elaine |
Assunto: | Inteligência artificial Aprendizado de máquina Software - desenvolvimento |
Data de apresentação: | 20-Set-2024 |
Data de publicação: | 10-Out-2024 |
Referência: | BEZERRA, Lucas Gabriel. Uso de IA generativa na geração automática de casos de teste unitários. 2024. 47 f., il. Trabalho de Conclusão de Curso (Bacharelado em Engenharia de Software) — Universidade de Brasília, Brasília, 2024. |
Resumo: | A área de Inteligência Artificial (IA) tem experimentado um crescimento significativo e uma crescente popularização nos últimos anos, assim como as aplicações de software, que se tornam cada vez mais complexas. Esse avanço torna a fase de teste do ciclo de desenvolvimento de software uma parte significativa dos custos e do tempo envolvidos, sendo uma das atividades mais demoradas, mesmo com a introdução de ferramentas de automação. Com o progresso das tecnologias de IA, especialmente com os modelos conhecidos como Large Language Models (LLMs), surge uma nova possibilidade: a automatização não apenas da execução dos testes, mas também de sua geração. O GPT (Generative Pre-trained Transformer), uma das implementações mais avançadas de LLM desenvolvidas pela OpenAI, é capaz de compreender e gerar texto de forma contextualizada. Nesse contexto, esta pesquisa utiliza o modelo GPT para gerar casos de teste unitários e compara-os com aqueles desenvolvidos manualmente por programadores avaliando a eficácia e a precisão dos testes gerados pela IA. O objetivo principal é analisar a capacidade das ferramentas LLM na geração de testes, buscando compreender se tais tecnologias poderiam ser uma alternativa viável para mitigar os custos e o esforço associados à criação de testes unitários no ciclo de desenvolvimento de software. A metodologia envolveu a criação de scripts e prompts personalizados para gerar e executar os testes, além de coletar métricas de cobertura de código. Os resultados revelaram um aumento expressivo na quantidade de testes unitários, mas com impacto mínimo na cobertura e uma taxa significativa de
falhas nos testes gerados, evidenciando limitações na assertividade e eficácia do GPT. Isso indica que, o modelo ainda não é capaz de substituir completamente o trabalho humano nessa tarefa. Conclui-se que as ferramentas LLM têm potencial como apoio para desenvolvedores, mas ainda requerem avanços para uma automação mais confiável e eficaz da geração de testes unitários |
Abstract: | The field of Artificial Intelligence (AI) has experienced significant growth and increasing popularity in recent years, along with software applications that are becoming increasingly complex. This advancement has made the testing phase of the software development cycle a significant part of the costs and time involved, being one of the most time-consuming activities, even with the introduction of automation tools. With the progress of AI tech nologies, especially models known as Large Language Models (LLMs), a new possibility arises: the automation of not only test execution but also their generation. GPT (Generative Pre-trained Transformer), one of the most advanced LLM implementations developed by OpenAI, is capable of understanding and generating context-aware text. In this con text, this research utilizes the GPT model to generate unit test cases and compares them to those manually developed by programmers, evaluating the effectiveness and accuracy
of the tests generated by the AI. The main goal is to analyze the capacity of LLM tools in test generation, aiming to understand whether such technologies could be a viable alternative to mitigate the costs and effort associated with creating unit tests in the software development cycle. The methodology involved the creation of personalized scripts and prompts to generate and execute the tests, as well as to collect code coverage metrics. The results revealed a significant increase in the number of unit tests, but with minimal impact on coverage and a high rate of failures in the tests generated, highlighting limitations in GPT’s accuracy and effectiveness. This indicates that the model is still not capable of fully replacing human work in this task. It is concluded that LLM tools have the potential to assist developers, but they still require advancements for more reliable and effective automation of unit test generation. |
Informações adicionais: | Trabalho de Conclusão de Curso (graduação) — Universidade de Brasília, Faculdade UnB Gama, 2024. |
Licença: | A concessão da licença deste item refere-se ao termo de autorização impresso assinado pelo autor que autoriza a Biblioteca Digital da Produção Intelectual Discente da Universidade de Brasília (BDM) a disponibilizar o trabalho de conclusão de curso por meio do sítio bdm.unb.br, com as seguintes condições: disponível sob Licença Creative Commons 4.0 International, que permite copiar, distribuir e transmitir o trabalho, desde que seja citado o autor e licenciante. Não permite o uso para fins comerciais nem a adaptação desta. |
Aparece na Coleção: | Engenharia de Software
|
Todos os itens na BDM estão protegidos por copyright. Todos os direitos reservados.