Modernizar aplicações empresariais é uma das atividades de engenharia de software mais caras e complexas que as organizações enfrentam. A migração entre frameworks — como de Spring para Jakarta EE ou Quarkus — promete melhorias em manutenibilidade, preparação para nuvem e produtividade. Com o avanço dos agentes de código baseados em IA, surge a pergunta: esses agentes conseguem realizar migrações reais de forma confiável?
Para responder, pesquisadores da IBM Research criaram o ScarfBench (Self-Contained Application Refactoring Benchmark), um benchmark aberto que avalia agentes de IA em tarefas de migração entre frameworks no ecossistema Java empresarial. O ScarfBench foca em três grandes frameworks: Spring, Jakarta EE e Quarkus. Diferente de benchmarks tradicionais que comparam código gerado com implementações de referência, o ScarfBench verifica se a aplicação migrada de fato compila, implanta e preserva o comportamento original.

Por que a migração de frameworks é difícil?
Migrar um framework não é apenas substituir anotações. Uma simples migração de repositório pode exigir alterações em injeção de dependência, configuração de persistência, consultas e descritores de framework. Pequenos erros em qualquer dessas peças podem impedir a implantação bem-sucedida. A migração exige traduzir a semântica do framework, não apenas o código fonte.
O que o ScarfBench mede?
O benchmark inclui 34 aplicações, com 102 implementações de framework, totalizando 204 tarefas de migração. São aproximadamente 151 mil linhas de código distribuídas em cerca de 2.000 arquivos, com 1.331 testes escritos por especialistas. As tarefas abrangem desde migrações focadas em partes específicas até migrações completas de aplicações.
Desempenho dos agentes de fronteira
Os pesquisadores avaliaram vários agentes de código estado-da-arte. Os resultados mostram que, apesar do bom desempenho em benchmarks tradicionais de engenharia de software, a migração de frameworks continua sendo um desafio. As taxas de sucesso variam consideravelmente entre pares de frameworks, e as migrações completas de aplicações são particularmente difíceis.
No leaderboard atual, mesmo os agentes mais fortes alcançam menos de 10% de sucesso comportamental — ou seja, a aplicação migrada compila, implanta e passa nos testes comportamentais. O sucesso de compilação é consistentemente maior que o de implantação, que por sua vez é maior que o sucesso comportamental. Confiar apenas no sucesso de compilação superestima significativamente a qualidade da migração.
A dificuldade também depende do framework de destino: Jakarta EE se mostrou particularmente desafiador.
Lições sobre o comportamento dos agentes
Agentes são excessivamente confiantes
O Claude Code, por exemplo, reportou sucesso na compilação de 29 de 30 aplicações completas, mas apenas 22 realmente compilaram. A única aplicação classificada como falha pelo agente, na verdade, compilou corretamente. Isso mostra que a autoavaliação dos agentes não é confiável — a validação independente de compilação e testes é essencial.

Migração é iterativa, não linear
As camadas mais visitadas pelos agentes durante a migração foram: Configuração, Web, Banco de Dados e Serviço. As transições comuns incluíam Configuração ↔ Web e Serviço ↔ Banco de Dados. Isso indica que a migração é um processo iterativo de resolução de dependências, não uma simples transformação fonte a fonte.
Configuração domina o esforço
Os agentes retornavam repetidamente a artefatos de configuração para resolver diferenças de framework e problemas de dependência. A configuração é o principal gargalo.
Desafios além do código
Problemas ambientais — como inconsistências de cache Docker, problemas de conectividade de porta e ferramentas de build (Maven wrapper) — frequentemente atrasavam a validação, mesmo quando a migração do código fonte estava praticamente completa.
Principais conclusões
O maior desafio na modernização de frameworks não é traduzir código Java, mas gerenciar a teia de dependências entre configuração, infraestrutura e ambientes de execução. Agentes de fronteira podem automatizar partes substanciais do processo, mas a validação confiável e o raciocínio arquitetural continuam críticos para o sucesso.
O ScarfBench expõe essas dificuldades e oferece uma maneira padronizada de medir o progresso em direção à modernização verdadeiramente autônoma de aplicações.
Recursos do ScarfBench
- Site: scarfbench.info
- Dataset: huggingface.co/datasets/ibm-research/ScarfBench
- Space: huggingface.co/spaces/ibm-research/ScarfBench
- Repositório GitHub: github.com/scarfbench/scarfbench
- Leaderboard: scarfbench.info/leaderboard
- Paper: arxiv.org/abs/2605.06754
O ScarfBench é um recurso aberto para pesquisadores e profissionais. A comunidade é convidada a avaliar seus agentes, contribuir com novos cenários de migração e ajudar a avançar o estado da arte.
Descubra mais sobre noticiAI
Assine para receber nossas notícias mais recentes por e-mail.



