Assistentes de AI podem melhorar o gerenciamento de exceções ? Uma Análise qualitativa with GitHub Copilot em Java
Tratamento de Exceções, Modelo de Linguagem, Assistente de IA, Copilot, Estudo Qualitativo
O tratamento de exceções é fundamental no desenvolvimento em Java, influenciando a confiabilidade e a manutenibilidade dos sistemas. Com a crescente adoção de assistentes de codificação baseados em IA, como o GitHub Copilot, torna-se essencial compreender seu impacto nas práticas dos desenvolvedores. Este estudo investiga empiricamente o impacto do GitHub Copilot nas estratégias dos desenvolvedores para lidar com exceções em Java, contrastando codificação manual com métodos assistidos pelo Copilot. Conduzimos um experimento controlado com 16 desenvolvedores, utilizando um delineamento em quadrado latino para avaliar o efeito do Copilot no tempo de tratamento de exceções, na precisão na escolha dos tipos de exceção e na qualidade geral do tratamento. Os resultados indicam que, embora o Copilot possa reduzir o esforço em determinados cenários, seu impacto na correção — medido pelo número de tentativas necessárias para alcançar um tratamento de exceção válido — foi inconsistente. O uso do Copilot levou a uma cobertura mais ampla de tratamento de exceções, com uso mais frequente de blocos try-catch, por vezes de forma excessiva. Notavelmente, o Copilot incentivou uma propagação mais explícita de exceções (aumentando de 15 para 29 ocorrências) e reduziu estratégias inadequadas, como ignorar exceções (de 21 para 10), alinhando-se mais ao contexto de desenvolvimento de bibliotecas. No entanto, os participantes frequentemente utilizaram tipos genéricos de exceção em tarefas mais complexas, ressaltando a importância contínua do julgamento humano. A efetividade do Copilot também variou conforme a experiência dos desenvolvedores e o grau de familiaridade com a ferramenta. Esses achados oferecem evidências empíricas sobre o papel da programação assistida por IA em tarefas críticas de desenvolvimento e contribuem para orientar a evolução futura dessas ferramentas.