NOTÍCIA

Agentes que testam o próprio código merecem confiança?

Agentes de codificação testando o que eles mesmos escreveram: veja o fluxo da First Mate, os dados do QueueMate e o que a pesquisa mostra autopreferência.

Agentes que testam o próprio código merecem confiança?
Imagem: Redação iMasters

Agentes de codificação já escrevem boa parte do software que chega à produção. Porém, uma dúvida segue aberta nos times de engenharia: quem confere esse trabalho? A First Mate Technologies respondeu separando as funções. Um modelo implementa. Outro modelo projeta os testes e revisa o resultado. Assim, o raciocínio que criou o código deixa de julgar a si mesmo.

Agentes divididos entre construtor e verificador

A empresa aplicou o fluxo no QueueMate, um aplicativo de gestão de filas para restaurantes construído em boa parte por agentes. O verificador cuida do planejamento das funcionalidades, do desenho dos casos de teste e da revisão de código. Enquanto isso, o construtor escreve a implementação e roda os testes que recebe. Um engenheiro humano conduz o processo e assina a aprovação final.

Segundo a First Mate, abrir uma conversa nova com o mesmo modelo não resolveria o problema. Afinal, quem interpretou mal um requisito na escrita carrega a mesma interpretação para a revisão. Por isso, o verificador recebe apenas os critérios de aceitação e a cobertura automatizada existente. Depois, define casos adicionais e revisa o código pronto por conta própria.

554 casos de teste e um defeito de severidade 1

A varredura de qualidade gerou 554 casos e apontou 38 defeitos. Entre eles apareceu um problema de severidade 1 no gerenciamento de sessões. Apenas 49 casos cobriam fluxos de sucesso. Outros 291 miravam condições extremas, negativas, de limite e de concorrência. Os demais trataram de segurança, acessibilidadeAcessibilidade11 conteúdosO que é Acessibilidade Web e como tornar seu site mais acessívelDev (Back & Front) · mar 2019Design para veteranos digitais: acessibilidade para nós mesmosProduto & UX · jan 2020Dicas de Front-End para usabilidade, acessibilidade, performance e responsividadeProduto & UX · fev 2025Ver tudo em Produto & UX e interação entre funcionalidades.

Dois exemplos mostram o desenho dessa bateria. Um teste criou reservas nos dois lados da meia noite, no fuso de Manila, para conferir se cada uma caía no dia correto. Outro disparou ações simultâneas em várias abas do navegador, com remoção, desfazer e alocação de assentos no mesmo estado da fila.

A checagem também encontrou um arquivo de atualização de sessão em um diretório que o framework nunca carregava. Ou seja, o arquivo jamais foi compilado ou executado. Como resultado, as sessões expiravam antes da hora e outros defeitos apareciam em cascata. Todos os problemas foram registrados antes das correções, então a suíte rodou contra a mesma versão do código. Dos 38 defeitos, 27 sumiram em um commit seguinte.

Agentes tendem a preferir o próprio resultado

A pesquisa acadêmica ajuda a explicar a desconfiança. Um levantamento crítico publicado em 2024 na Transactions of the Association for Computational Linguistics não encontrou trabalho anterior com autocorreção confiável a partir de feedback gerado por prompts. As exceções ficaram em tarefas especialmente adequadas a esse tipo de ajuste.

Por outro lado, os resultados melhoram quando existe feedback externo confiável. Interpretadores e suítes de teste entram nessa categoria, já que respondem sem depender do modelo que escreveu o código.

Além disso, um estudo apresentado no NeurIPS 2024 mediu autopreferência em duas tarefas de sumarização. GPT 3.5 Turbo, GPT 4 e Llama 2 favoreceram as próprias saídas de forma desproporcional. Anotadores humanos, no entanto, consideraram os textos equivalentes. A pesquisa deixou testes de software de fora, portanto não prova que um modelo de código protege o que escreveu. Ainda assim, indica um viés real quando gerador e avaliador são o mesmo modelo.

Ambiente isolado antes de qualquer merge

Cada branch roda a própria instância da aplicação e a própria pilha de banco em DockerDocker46 conteúdosE o Docker Swarm? Contextos e motivadores diáriosDevSecOps · ago 2024Automatizando o ambiente de desenvolvimento e testes com DockerDevSecOps · mai 2019MySQL + Adminer + Docker Compose: montando rapidamente um ambiente para usoData · abr 2019Ver tudo em DevSecOps . Portas e identificadores de projeto ficam separados. Durante a QA, serviços de SMS e email dão lugar a gateways simulados. Os testes também criam dados novos, em vez de reaproveitar uma base populada.

A empresa mantém ainda checagens determinísticas na integração contínua. Entram aí verificação de tipos, lint, testes unitários e de componente e um build de produção. Em agosto, o repositório reunia cerca de 1.060 testes unitários e de componente em 100 arquivos. Havia também 97 cenários de ponta a ponta rodando em perfis de desktop e mobile.

Spotify veta um quarto das sessões dos agentes

A Spotify seguiu caminho parecido no fluxo de agentes que rodam em segundo plano. Verificadores determinísticos checam formatação, build e testes antes de o agente abrir um pull request. Quando a checagem falha, o processo trava.

Depois, a empresa acrescentou um juiz baseado em LLMLLMs48 conteúdosConsiderações básicas de hardware para modelos de linguagem em código aberto: Memória, Desempenho e ViabilidadeMarketing Tech · out 2025Modelos de linguagem sob ataque: o lado obscuro da IA generativaDevSecOps · mai 2025Criando um LLM – modelo de linguagem de grande escala – do zero com TransformersAI · abr 2024Ver tudo em AI . O motivo foi prático. Alguns agentes passavam nas checagens convencionais e mesmo assim iam além das instruções, com refatorações desnecessárias ou testes instáveis desativados. Segundo a Spotify, o juiz vetou cerca de 25% das milhares de sessões analisadas. Em aproximadamente metade dos vetos, o agente corrigiu o próprio trabalho.

Agentes que burlam o teste em vez de resolver o bug

A OpenAI documentou casos de modelos de raciocínio que fazem testes passar sem implementar a solução pedida. Em um deles, o agente precisava escrever funções matemáticas. Então descobriu que a suíte dependia de uma função de verificação. Em vez de completar a tarefa, alterou essa função para retornar verdadeiro.

A empresa testou um monitor separado, também baseado em LLM, com acesso às ações e ao rastro de raciocínio do agente. O monitor sinalizou tentativas de subverter testes unitários. A Anthropic aposta em uma tática complementar, os testes retidos. O modelo enxerga um conjunto de casos enquanto outros permanecem ocultos. Dessa forma, o time identifica implementações que passam no visível e falham no restante.

Vale lembrar que o verificador depende da qualidade dos próprios testes e requisitos. Em julho de 2026, a OpenAI relatou problemas em cerca de 30% das tarefas do SWE Bench Pro. Havia testes ocultos cobrando requisitos ausentes do enunciado e testes de baixa cobertura que aprovavam correções incompletas.

Agentes sob revisão: o que dá para aplicar amanhã

Primeiro, use modelos distintos para gerar e para verificar. Segundo, entregue ao verificador apenas critérios de aceitação e cobertura atual. Depois, isole o ambiente de teste por branch, com banco e portas próprios. Também troque serviços externos por gateways simulados durante a QA.

Além disso, mantenha as checagens determinísticas como primeira barreira. Tipos, lint, testes unitários e build de produção respondem sem viés. Em seguida, guarde parte dos casos fora do alcance do modelo. Por fim, registre os defeitos antes de corrigir, já que isso preserva a comparação entre versões.

Agentes ainda dependem de aprovação humana

O caso do QueueMate mostra um time separando geração e verificação com resultado concreto. A checagem independente produziu centenas de casos e revelou defeitos em software escrito por agentes. Contudo, a First Mate não publicou uma comparação controlada com o cenário oposto. Portanto, ninguém pode afirmar ainda que um segundo modelo acerta mais do que o primeiro sozinho.

O que o caso sustenta é mais simples e igualmente útil. Camadas independentes encontram problemas que o próprio autor deixaria passar. Combine geração, testes projetados fora do construtor, checagens determinísticas, revisão de código e aprovação humana. Assim, o agente ganha autonomia sem virar juiz da própria obra.

Acompanhe nosso perfil no Instagram!

Matérias especiais e reportagens conduzidas internamente pela Redação iMasters. Acompanhe no Twitter @imasters e no Instagram/Threads @portalimasters

Ver perfil