← Últimos artigos
💻 computer science

SWE-Refactor: A Repository-Level Benchmark for Real-World LLM-Based Code Refactoring

Este artigo apresenta o SWE-Refactor, um benchmark abrangente em nível de repositório composto por 1.099 refatorações Java validadas, projetado para superar as limitações de conjuntos de dados existentes e avaliar as capacidades de nove LLMs, revelando que os modelos atuais têm grande dificuldade com tarefas de refatoração compostas e complexas.

Autores originais: Yisen Xu, Jinqiu Yang, Tse-Hsun, Chen

Publicado 2026-02-04
📖 5 min de leitura🧠 Leitura aprofundada

Autores originais: Yisen Xu, Jinqiu Yang, Tse-Hsun, Chen

Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo

Imagine que você tem uma biblioteca enorme e antiga, repleta de livros escritos em uma linguagem muito específica (Java). Os livros funcionam perfeitamente, mas as histórias são bagunçadas: os capítulos são longos demais, os personagens têm nomes confusos e algumas cenas estão espalhadas por salas diferentes. Refatoração de código é o processo de limpar esses livros para torná-los mais fáceis de ler e manter, sem alterar a história real ou o final.

Por muito tempo, temos ensinado computadores (especificamente, Modelos de Linguagem de Grande Escala ou LLMs) a escrever novas histórias do zero. Mas ensinar essas máquinas a consertar histórias existentes sem quebrar o enredo é muito mais difícil.

Este artigo apresenta o SWE-Refactor, um novo "exame" projetado para testar o quão bons esses computadores de IA são em limpar código. Aqui está a divisão em termos simples:

1. O Problema: Os Velhos Exames Eram Falhos

Antes disso, pesquisadores tentavam testar a IA na limpeza de código, mas os testes tinham três grandes problemas:

  • Simples Demais: Eles apenas pediam à IA para fazer correções minúsculas de etapa única (como renomear uma variável), ignorando tarefas complexas que exigem mover capítulos inteiros de lugar.
  • Dados Ruidosos: À vezes, a "resposta correta" fornecida no teste não era apenas uma limpeza; incluía a correção de bugs ou a adição de novos recursos. Isso confundia a IA: "Devo limpar o quarto ou também pintar as paredes?"
  • Falta de Contexto: O código real é como uma teia; mudar uma linha muitas vezes afeta outras dez. Os testes antigos não davam à IA o suficiente do "panorama geral" (a biblioteca inteira) para entender as conexões.

2. A Solução: Uma "Academia" Real para a IA

Os autores construíram o SWE-Refactor, um campo de treinamento e exame massivo e de alta qualidade.

  • Trabalho Humano Real: Em vez de criar exemplos falsos, eles analisaram 18 projetos de software Java reais e populares. Eles encontraram 1.099 ocasiões em que desenvolvedores humanos limparam o código com sucesso.
  • Limpeza Pura: Eles usaram ferramentas especiais para filtrar qualquer alteração que não fosse apenas limpeza. Se um desenvolvedor corrigiu um bug enquanto limpava, esse exemplo era descartado. Eles mantiveram apenas as limpezas "puras".
  • A Biblioteca Completa: Eles não deram apenas uma página para a IA; deram o livro inteiro, o mapa da biblioteca e a lista de quem lê o quê, para que a IA entenda o contexto.
  • A Verificação do "Padrão de Ouro": Para garantir que a IA não trapaceasse, eles verificam três coisas:
    1. O código ainda compila (as páginas se sustentam)?
    2. Todos os testes ainda passam (a história ainda faz sentido)?
    3. A IA realmente realizou a tarefa de limpeza específica solicitada, ou ela apenas escreveu algo que funcionou?

3. Os Resultados do Exame: A IA é Boa em Tarefas Pequenas, Ruim em Grandes

Os autores testaram 9 modelos de IA diferentes (incluindo modelos famosos como GPT-4o e DeepSeek) neste novo exame.

  • Os Generalistas Vencem: Os grandes modelos de IA de uso geral (como o GPT-4o) tiveram um desempenho muito melhor do que os modelos de codificação menores e especializados. Parece que entender o "panorama geral" é mais importante do que apenas conhecer a sintaxe.
  • Simples vs. Complexo: A IA foi decente em limpezas simples de etapa única (como "Extrair Método", que é como tirar um parágrafo de um capítulo longo e transformá-lo em um novo capítulo curto).
  • O Desafio Composto: A IA teve dificuldades significativas com refatorações compostas. Estas são tarefas que exigem várias etapas ao mesmo tempo, como "Pegue este parágrafo, mova-o para um capítulo diferente e renomeie o personagem".
    • A Analogia: Imagine pedir a um robô para mover um sofá pesado. Ele consegue fazer isso. Mas se você pedir para ele "Mover o sofá, pintar a parede atrás dele e rearranjar o tapete", ele frequentemente esquece um passo ou erra a ordem.
    • O Dado: Mesmo um agente de IA muito avançado (OpenAI Codex) teve sucesso apenas cerca de 39% das vezes nessas tarefas complexas de múltiplas etapas.

4. Como Ajudar a IA a Ter Sucesso

O artigo também testou se dar mais ajuda à IA funcionaria:

  • Recuperação (RAG): Dar à IA exemplos de limpezas semelhantes ajudou um pouco.
  • Fluxo de Trabalho Multiagente (A Abordagem de Equipe): Este foi o vencedor. Em vez de uma única IA fazer o trabalho, eles configuraram uma "IA Desenvolvedora" para escrever o código e uma "IA Revisora" para criticar o trabalho e pedir alterações. Essa abordagem de "equipe" resolveu a maioria dos problemas, mostrando que a IA precisa revisar seu próprio trabalho para lidar com tarefas complexas.

Resumo

SWE-Refactor é um teste novo, rigoroso e realista para a refatoração de código por IA. Ele prova que, embora a IA esteja ficando boa em pequenas correções de código, ela ainda tem dificuldades com reformas complexas de múltiplas etapas que exigem a compreensão de como as diferentes partes de um projeto de software se conectam. Os autores liberaram todos os seus dados e resultados para que outros pesquisadores possam usar esta "academia" para treinar uma IA melhor para o futuro.

Afogado em artigos na sua área?

Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.

Experimentar Digest →