- A análise de 470 PRs de código aberto mostrou que o código escrito por IA contém em média 1,7x mais problemas do que o código escrito por humanos
- Erros lógicos, pior legibilidade e vulnerabilidades de segurança apareceram com muito mais frequência no código de IA; em especial, os problemas de legibilidade aumentaram mais de 3x
- Omissão de tratamento de erros, falhas de concorrência e inconsistências de nomenclatura são frequentes no código de IA, ampliando a carga de revisão e o risco operacional
- As causas apontadas incluem falta de compreensão da lógica de negócio, busca por precisão superficial e preferência por padrões ineficientes
- O relatório destaca a necessidade de reforçar a gestão da qualidade do código gerado por IA e de adotar revisão de código, segurança e testes orientados à IA
Visão geral do relatório AI vs Human Code Generation Report
- A CodeRabbit conduziu um estudo para analisar empiricamente a diferença de qualidade entre código escrito por IA e por humanos
- Foram analisados 470 PRs open source no GitHub; destes, 320 foram coescritos com IA e 150 escritos apenas por humanos
- Todos os resultados foram normalizados como número de issues a cada 100 PRs, e a frequência por tipo de problema foi medida por meio de comparação estatística de proporções
- Em resumo, a IA aumenta a produtividade, mas também eleva a taxa de erros
- Em média, PRs escritos por IA tiveram 10,83 problemas, enquanto PRs escritos por humanos tiveram 6,45
- Em especial, erros de maior gravidade foram encontrados com mais frequência no código gerado por IA
Limitações do estudo
- Como não foi possível confirmar diretamente se o código foi escrito por IA, PRs com o sinal de coautoria por IA (co-authored-by) foram classificados como PRs de IA
- PRs sem esse sinal foram considerados escritos por humanos, mas uma separação perfeita não foi possível
- Apesar dessa limitação, as diferenças estatísticas no padrão de problemas entre os dois grupos apareceram de forma significativa
- A metodologia completa foi divulgada ao final do relatório
10 principais descobertas
- Nem todos os tipos de erro aparecem apenas na IA, mas a taxa de erros do código de IA foi maior na maioria das categorias
- Humanos e IA cometem os mesmos tipos de erro, mas a IA os produz com mais frequência e em maior escala
-
1. Aumento de 1,7x no total de issues
- Em média, 10,83 issues por PR escrito por IA, contra 6,45 em PRs escritos por humanos
- PRs com concentração anormal de issues (outliers) são muito mais frequentes no código de IA, aumentando a carga de revisão
-
2. Aumento de erros de alta gravidade
- Problemas graves e críticos foram 1,4x a 1,7x mais frequentes
-
3. Aumento de 75% em problemas de lógica e correção
- Incluem erros de lógica de negócio, dependências incorretas, falhas no fluxo de controle e erros de configuração
- O custo de correção é alto e há grande chance de virar incidente em produção
-
4. Mais de 3x mais problemas de legibilidade
- Convenções de nomenclatura, estrutura do código e consistência de expressão ficam visivelmente piores
- Mesmo quando o código parece organizado à primeira vista, violações de padrões locais ocorrem com frequência
-
5. Omissão de tratamento de erros e caminhos de exceção dobra
- Faltam com frequência checagens de null, condições de guarda e lógica de tratamento de exceções
- Esse é um tipo de problema diretamente ligado a falhas reais de serviço
-
6. Problemas de segurança aumentam em até 2,74x
- Exemplos típicos incluem tratamento inadequado de senhas e vulnerabilidades de referência a objetos
- Não são vulnerabilidades exclusivas, mas a maioria das falhas de segurança é ampliada
-
7. Problemas de desempenho são menos numerosos, mas se concentram na IA
- Chamadas excessivas de I/O foram cerca de 8x mais frequentes
- A IA tende a preferir código voltado à clareza, sacrificando eficiência
-
8. Erros de concorrência e dependência quase dobram
- Erros de ordem, fluxo incorreto de dependências e uso inadequado de controle de concorrência são frequentes
-
9. Problemas de formatação aumentam 2,66x
- Há muitos erros formais como indentação, espaços e inconsistência de estilo
- Mesmo com formatadores e linters automáticos, o ruído aumenta no código de IA
-
10. Inconsistência de nomenclatura dobra
- Nomes pouco claros, termos inconsistentes e identificadores genéricos elevam a carga cognitiva dos revisores
Causas dos problemas
- A IA carece de compreensão da lógica de negócio
- Como gera código com base em padrões estatísticos, deixa escapar regras do sistema
- Geração focada em precisão superficial
- O código parece correto visualmente, mas contém falhas na proteção do fluxo de controle ou na ordem das dependências
- Não conformidade com convenções específicas do repositório
- Regras de nomenclatura, estrutura e formatação acabam distorcidas em uma forma generalizada
- Enfraquecimento de padrões de segurança
- Sem instruções explícitas, a IA tende a reproduzir padrões de código antigos ou vulneráveis
- Preferência por simplicidade em vez de eficiência
- Há tendência ao uso de I/O repetitivo e estruturas não otimizadas
Como as equipes de engenharia podem responder
- Adotar IA exige não só ganho de velocidade, mas também redesenhar o sistema de garantia de qualidade
-
1. Fornecer contexto suficiente à IA
- É preciso explicitar regras de negócio, padrões de configuração e restrições de arquitetura para reduzir erros
- Incluir no prompt diretrizes e esquemas específicos do repositório
-
2. Impor estilo de código com base em políticas
- Prevenir problemas de legibilidade com formatadores no CI, linters e guias de estilo
-
3. Adicionar proteções de correção
- Testes obrigatórios, checagem de null/type, padronização do tratamento de exceções e condições de guarda explícitas
-
4. Reforçar padrões de segurança por padrão
- Centralizar credenciais, bloquear uso direto de senhas e executar SAST e linters de segurança automaticamente
-
5. Induzir padrões eficientes
- Processamento em lote de I/O, escolha adequada de estruturas de dados e fornecimento de dicas de desempenho
-
6. Adotar checklist de PR orientado à IA
- Na revisão, verificar os seguintes itens:
- cobertura de caminhos de erro
- correção do controle de concorrência
- validação de valores de configuração
- forma de tratamento de senhas
-
7. Automatizar a revisão de código gerado por IA
- Para evitar bugs ignorados devido ao aumento da fadiga na revisão, é sugerido o uso de ferramentas de code review para IA (CodeRabbit)
- Padronização da qualidade da revisão e redução do tempo de análise e da carga cognitiva
Conclusão
- Ferramentas de programação com IA são aceleradores poderosos, mas acelerar sem proteções é arriscado
- O código gerado por IA apresenta maior variabilidade, taxa de erro e gravidade
- É essencial usar a IA como ferramenta complementar, não como substituta, além de reforçar qualidade, segurança e testes
- Para garantir velocidade e qualidade ao mesmo tempo, é necessário um gerenciamento de engenharia intencional
- O uso de ferramentas de revisão de código com IA pode ajudar de forma prática a manter a qualidade
5 comentários
1,7x é menos do que eu imaginava...?
Também senti algo parecido ao programar com IA. Olhando para as causas organizadas, acho que isso acontece porque, ao programar, a pessoa já parte de conhecimentos básicos como padrões, convenções de nomenclatura, tratamento de edge cases, guard conditions etc., e isso não é fornecido de forma suficiente no contexto.
Por isso, eu criei um arquivo de regras reunindo só esse tipo de coisa e, quando vou programar, mando sempre ler esse arquivo e segui-lo. Aí, melhorando apenas o arquivo de regras, o resultado final acaba ficando consideravelmente melhor.
Fico com medo de aparecer alguém com a opinião de tipo: "produziu coisa pra caramba, então 1,7x a mais nem sai caro, né..."
Mas foi rápido, né? Isso me faz lembrar daquele meme kkk
Comentários no Hacker News
Acho que já existia "vibe coding" antes da IA
As críticas ao vibe coding fazem sentido, mas na verdade a qualidade do código já era péssima antes da IA
Dizer que "código de IA gera 1,7x mais problemas" fala apenas do número de bugs encontrados
Outro dia o Copilot me sugeriu uma implementação de IComparable em .NET e isso me poupou alguns minutos
Já vimos uma situação parecida antes
Foi interessante ver uma empresa baseada em LLM dizer que a IA é menos ruim do que parece
Eu uso bastante o CodeRabbit, mas ainda há muitos falsos positivos
"1,7x mais" e "aumentou 1,7x" não são a mesma coisa
Agentic AI coding é só uma ferramenta; se for usada do jeito errado, obviamente vai produzir resultado errado
A frase do título, "código de IA gera 1,7x mais problemas", é imprecisa