Show simple item record

dc.contributor.authorGuilherme, Vitor Hugo
dc.date.accessioned2023-09-04T18:09:34Z
dc.date.available2023-09-04T18:09:34Z
dc.date.issued2023-08-29
dc.identifier.citationGUILHERME, Vitor Hugo. An initial investigation of ChatGPT unit test generation capability. 2023. Trabalho de Conclusão de Curso (Graduação em Engenharia de Computação) – Universidade Federal de São Carlos, São Carlos, 2023. Disponível em: https://repositorio.ufscar.br/handle/ufscar/18502.*
dc.identifier.urihttps://repositorio.ufscar.br/handle/ufscar/18502
dc.description.abstractSoftware testing plays a crucial role in ensuring the quality of software, but developers often disregard it. The use of automated testing generation is pursued with the aim of reducing the consequences of overlooked test cases in a software project. Problem: In the context of Java programs, several tools can completely automate generating unit test sets. Additionally, there are studies conducted to offer evidence regarding the quality of the generated test sets. However, it is worth noting that these tools rely on machine learning and other AI algorithms rather than incorporating the latest advancements in Large Language Models (LLMs). Solution: This work aims to evaluate the quality of Java unit tests generated by an OpenAI LLM algorithm, using metrics like code coverage and mutation test score. Method: For this study, 33 programs used by other researchers in the field of automated test generation were selected. This approach was employed to establish a baseline for comparison purposes. For each program, 33 unit test sets were generated automatically, without human interference, by changing Open AI API parameters. After executing each test set, metrics such as code coverage, mutation score, and success rate of test execution were collected to evaluate the efficiency and effectiveness of each set. Summary of Results: Our findings revealed that the OpenAI LLM test set demonstrated similar performance across all evaluated aspects compared to traditional automated Java test generation tools used in the previous research. These results are particularly remarkable considering the simplicity of the experiment and the fact that the generated test code did not undergo human analysis.eng
dc.description.sponsorshipNão recebi financiamentopor
dc.language.isoporpor
dc.publisherUniversidade Federal de São Carlospor
dc.rightsAttribution 3.0 Brazil*
dc.rights.urihttp://creativecommons.org/licenses/by/3.0/br/*
dc.subjectSoftware testingpor
dc.subjectExperimental software engineeringpor
dc.subjectAutomated test generationpor
dc.subjectCoverage testingpor
dc.subjectMutation testingpor
dc.subjectTesting toolspor
dc.titleAn initial investigation of ChatGPT unit test generation capabilityeng
dc.title.alternativeUma investigação inicial da capacidade de geração de teste unitário do ChatGPTpor
dc.typeTCCpor
dc.contributor.advisor1Vincenzi, Auri Marcelo Rizzo
dc.contributor.advisor1Latteshttp://lattes.cnpq.br/0611351138131709por
dc.description.resumoO teste de software desempenha um papel crucial na garantia da qualidade do software, mas os desenvolvedores frequentemente o desconsideram. O uso da geração automática de testes é perseguido com o objetivo de reduzir as consequências de casos de teste negligenciados em um projeto de software. Problema: No contexto dos programas Java, várias ferramentas podem automatizar completamente a geração de conjuntos de testes unitários. Além disso, há estudos realizados para oferecer evidências sobre a qualidade dos conjuntos de testes gerados. No entanto, vale ressaltar que essas ferramentas dependem de aprendizado de máquina e outros algoritmos de IA, ao invés de incorporar os últimos avanços em Modelos de Linguagem Grande (LLMs). Solução: Este trabalho tem como objetivo avaliar a qualidade dos testes unitários Java gerados por um algoritmo LLM da OpenAI, usando métricas como cobertura de código e escore de mutação. Método: Para este estudo, 33 programas usados por outros pesquisadores no campo da geração automática de testes foram selecionados. Esta abordagem foi empregada para estabelecer uma base de comparação. Para cada programa, 33 conjuntos de testes unitários foram gerados automaticamente, sem interferência humana, alterando os parâmetros da API da OpenAI. Após a execução de cada conjunto de testes, métricas como cobertura de código, escore de mutação e taxa de sucesso da execução do teste foram coletadas para avaliar a eficiência e eficácia de cada conjunto. Resumo dos Resultados: Nossas descobertas revelaram que o conjunto de testes LLM da OpenAI demonstrou desempenho semelhante em todos os aspectos avaliados em comparação com as ferramentas tradicionais de geração automática de testes Java usadas nas pesquisas anteriores. Esses resultados são particularmente notáveis considerando a simplicidade do experimento e o fato de que o código de teste gerado não passou por análise humana.por
dc.publisher.initialsUFSCarpor
dc.subject.cnpqCIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::ENGENHARIA DE SOFTWAREpor
dc.description.sponsorshipIdProcesso nº 2019/23160-0, Fundação de Amparo à Pesquisa do Estado de São Paulo (FAPESP)por
dc.description.sponsorshipIdFinance Code 001 - Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES)por
dc.publisher.addressCâmpus São Carlospor
dc.contributor.authorlatteshttp://lattes.cnpq.br/0080411869714148por
dc.identifier.urlhttps://github.com/aurimrv/initial-investigation-chatgpt-unit-tests.gitpor
dc.publisher.courseEngenharia de Computação - ECpor
dc.contributor.authororcidhttps://orcid.org/0009-0005-5868-290Xpor
dc.contributor.advisor1orcidhttps://orcid.org/0000-0001-5902-1672por


Files in this item

Thumbnail
Thumbnail

This item appears in the following Collection(s)

Show simple item record

Attribution 3.0 Brazil
Except where otherwise noted, this item's license is described as Attribution 3.0 Brazil