Estudo de caso: uso do ChatGPT para resolução de problemas de programação

  • Débora Souza UFCG
  • Rohit Gheyi UFCG

Resumo


A geração de programas a partir de linguagem natural visa transformar frases em código de programação. O ChatGPT, baseado no modelo GPT-3, é um chatbot capaz de gerar texto e código como humano. Para avaliar sua corretude no contexto de programação, foram selecionados aleatoriamente 100 problemas de programação, distribuídos entre os graus de complexidade Fácil, Intermediário e Difícil, de plataformas populares para serem resolvidas pelo modelo. Ao longo de 3 tentativas, o ChatGPT acertou 71 problemas, sendo 50 da plataforma LeetCode e 21 da plataforma BeeCrowd, os 29 problemas não solucionados estão majoritariamente distribuídos entre os graus de complexidade Intermediário e Difícil. Nesse contexto, o estudo demonstra que a utilização do ChatGPT pode ser benéfica para os programadores, pois o modelo é capaz de fornecer exemplos de código com soluções para seus desafios. No entanto, também evidencia que o ChatGPT não atinge uma precisão de 100%, portanto, os programadores não devem considerá-lo como um substituto completo.

Palavras-chave: Métricas e medição de software, Qualidade de software e modelos de qualidade, Teste e verificação de software

Referências

ChatGPT. Disponível em: [link]. Acesso em: Setembro 2023.

Getting started with GitHub Copilot. Disponível em: [link]. Acesso em: Setembro 2023.

ChatGPT. Disponível em: [link]. Acesso em: Setembro 2023.

Recruitment team unwittingly recommends ChatGPT for job interview. Disponível em: [link]. Acesso em: Setembro 2023.

Plataforma LeetCode. Disponível em: [link]. Acesso em: Setembro 2023.

Plataforma BeeCrowd. Disponível em: [link]. Acesso em: Setembro 2023.

ELO Rating System. Disponível em: [link]. Acesso em: Setembro 2023.

FAQS Judge - BeeCrowd. Disponível em: [link]. Acesso em: Setembro 2023.

FAQS Answer - BeeCrowd. Disponível em: [link]. Acesso em: Setembro 2023.

Concorrente ou aliado? Especialista defende que ChatGPT pode alavancar a carreira de programador. Disponível em: [link]. Acesso em: Setembro 2023.

GPT-4. Disponível em: [link]. Acesso em: Setembro 2023.

Rohit Gheyi, Paulo Borba. Refactoring Alloy Specifications. In Cavalcanti, A., Machado, P., eds.: Electronic Notes in Theoretical Computer Science, Proceedings of the Brazilian Workshop on Formal Methods. Volume 95. Elsevier (2004) 227–243.

Categorias dos problemas da plataforma BeeCrowd. Disponível em: [link]. Acesso em: Setembro 2023.

Débora Souza, Rohit Gheyi. Questões submetidas ao ChatGPT. Disponível em: [link]. Acesso em: Setembro 2023.

F. Medeiros et al.. An empirical study on configuration-related issues: investigating undeclared and unused identifiers. GPCE 2015, pages 35–44, 2015.

F. Medeiros et al.. Investigating misunderstanding code patterns in C open-source software projects. Empirical Software Engineering, 24:1693–1726, 2019.

Samia Kabir, David N. Udo-Imeh, Bonan Kou, Tianyi Zhang. Who Answers It Better? An In-Depth Analysis of ChatGPT and Stack Overflow Answers to Software Engineering Questions. Disponível em: [link]. Acesso em: Setembro 2023.

Raphaël Khoury, Anderson Avila, Jacob Brunelle, Baba Camara. How Secure is Code Generated by ChatGPT?. Disponível em: [link]. Acesso em: Setembro 2023.
Publicado
25/09/2023
SOUZA, Débora; GHEYI, Rohit. Estudo de caso: uso do ChatGPT para resolução de problemas de programação. In: CONCURSO DE TRABALHOS DE INICIAÇÃO CIENTÍFICA EM ENGENHARIA DE SOFTWARE(CTIC-ES) - CONGRESSO BRASILEIRO DE SOFTWARE: TEORIA E PRÁTICA (CBSOFT), 14. , 2023, Campo Grande/MS. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2023 . p. 80-89. DOI: https://doi.org/10.5753/cbsoft_estendido.2023.235666.