Por favor, use este identificador para citar o enlazar este ítem: http://hdl.handle.net/11422/23092
Registro completo de metadatos
Campo DC Valor Lengua/Idioma
dc.contributor.advisorMoreira, Anamaria Martins-
dc.contributor.authorDutoit, Thierry Pierre-
dc.date.accessioned2024-07-05T17:40:48Z-
dc.date.available2024-07-07T03:00:17Z-
dc.date.issued2024-03-25-
dc.identifier.urihttp://hdl.handle.net/11422/23092-
dc.languageporpt_BR
dc.publisherUniversidade Federal do Rio de Janeiropt_BR
dc.rightsAcesso Abertopt_BR
dc.subjectCorreção automática de programaspt_BR
dc.subjectProjeto de testespt_BR
dc.subjectCobertura de grafospt_BR
dc.subjectInteligência artificialpt_BR
dc.subjectPythonpt_BR
dc.subjectAutomatic program correctionpt_BR
dc.subjectTest projectpt_BR
dc.subjectGraph coveragept_BR
dc.subjectArtificial intelligencept_BR
dc.titleCriação automática de testes em Python para plataformas de aprendizado com o uso de critérios de cobertura baseados em grafospt_BR
dc.typeTrabalho de conclusão de graduaçãopt_BR
dc.contributor.advisorCo1Gualandi, Hugo Musso-
dc.contributor.referee1Nobrega, Hugo de Holanda Cunha-
dc.contributor.referee2Delgado, Carla Moreira-
dc.description.resumoOs testes de unidade são parte fundamental da garantia de qualidade de software, pois visam validar módulos individuais de código, como funções, métodos ou classes, reduzindo os riscos de falha. No entanto, o processo de criação de testes demanda bastante tempo, seja pela complexidade do software, necessidade de manutenção contínua, dependências externas, ou outros empecilhos. Como consequência, atingir a cobertura desejada de testes nem sempre é alcançável, expondo o software a riscos. Uma alternativa, é automatizar a criação dos testes, garantindo maior eficiência do tempo das pessoas e diminuindo custos. Para guiar essa automação utilizamos critérios de cobertura de testes baseados em grafos e, através de técnicas como execução concólica e fuzzing, conseguimos criar automaticamente os testes de unidade. Visto que essas técnicas são descontextualizadas e não levam em consideração as nuances do programa, eventualmente valores não muito intuitivos são usados como entrada dos testes gerados. Para solucionar isso usamos um Large Language Model (LLM), em específico o ChatGPT, que através do enunciado do problema em linguagem natural, retorna entradas mais intuitivas. Para avaliar a nossa ferramenta, usamos a plataforma de aprendizado Machine Teaching. Ela é uma plataforma de aprendizado de Python cuja correção dos problemas é feita de forma automática, a partir de testes criados pelos docentes. A disponibilização da nossa ferramenta visa contribuir na criação de novos problemas na plataforma Machine Teaching, assim como na validação dos problemas já existentes, diminuindo o trabalho manual dos professores e o tempo total gasto na criação de testes. A partir dos experimentos realizados, verificamos que os testes criados pela nossa ferramenta aumentam a cobertura de testes da Machine Teaching. Além disso, validamos a viabilidade do seu uso dado o seu curto tempo de execução e baixo custo monetário associado às requisições ao ChatGPT.pt_BR
dc.publisher.countryBrasilpt_BR
dc.publisher.departmentInstituto de Computaçãopt_BR
dc.publisher.initialsUFRJpt_BR
dc.subject.cnpqCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOpt_BR
dc.embargo.termsabertopt_BR
Aparece en las colecciones: Ciência da Computação

Ficheros en este ítem:
Fichero Descripción Tamaño Formato  
TPDutoit.pdf1.1 MBAdobe PDFVisualizar/Abrir


Los ítems de DSpace están protegidos por copyright, con todos los derechos reservados, a menos que se indique lo contrario.