Programação e desenvolvimento de software

Microsoft lança um agente de código aberto para gerar e validar testes unitários

A Microsoft anunciou o agente de código aberto code-testing-generator, capaz de compreender o repositório do projeto, identificar a estrutura de testes, escrever testes unitários e verificar sua compilação e execução. O agente apresentou uma taxa de conclusão de 92,1% em um teste interno com 152 tarefas, contra 78,9% do Copilot padrão usando o mesmo modelo.

2026-07-31
6 min de leitura
10 visualizações
فريق تحرير certi.news
Microsoft lança um agente de código aberto para gerar e validar testes unitários

A Microsoft anunciou o code-testing-generator, um agente multilíngue e de código aberto para gerar testes unitários. O agente não se limita a criar testes que parecem corretos: primeiro aprende com o repositório do projeto e, em seguida, identifica o código que precisa ser testado, a estrutura de testes utilizada, o local onde os arquivos devem ser colocados e os comandos de compilação e execução, antes de verificar se os testes são descobertos no fluxo de testes habitual do repositório.

O agente está disponível na extensão dotnet-test do repositório dotnet/skills. Ele isola o código em teste, criando simulações para serviços externos e outras dependências. Seu escopo atual não inclui testes de integração, testes de ponta a ponta, testes de navegador ou testes de desempenho.

Começa entendendo o repositório antes de escrever os testes

Em vez de começar diretamente pela geração do código, o agente procura a parte que deve ser testada, identifica a linguagem e a estrutura de testes e analisa os testes existentes para saber onde colocar os novos testes e como escrevê-los. Ele também identifica os comandos de compilação e de execução dos testes.

Essa abordagem ajuda a evitar uma situação em que um novo projeto de testes seja compilado e executado corretamente de forma isolada, mas não seja incluído na solução ou no comando de testes usado pelo ambiente de integração contínua. Por isso, o agente examina como o repositório descobre os testes e confirma que os novos testes aparecem nesse processo.

O agente escolhe o nível de trabalho de acordo com o tamanho da solicitação:

  • Direto: ler o código relevante, escrever os testes e validar o resultado.
  • Uma passagem: pesquisar e planejar uma vez e, em seguida, executar o plano.
  • Iterativo: repetir o ciclo de pesquisa, planejamento e execução para cobrir uma solicitação grande ou atingir uma meta de cobertura específica.

Verifica a utilidade dos testes, não apenas seu sucesso

Nas tarefas maiores, o agente lista o código que precisa de testes e começa pelas partes mais simples antes de passar ao código com mais dependências. Ele também associa cada comportamento a um arquivo de teste, segue as convenções locais do projeto e executa os testes durante o trabalho.

Se o código gerado não for compilado, o agente o corrige; se uma asserção estiver incorreta, ele retorna à origem e corrige o teste. Ele não modifica o código de produção durante a geração dos testes e evita testes unitários que chamem endereços externos, abram portas ou dependam de temporização precisa.

Antes de terminar, o agente realiza um conjunto de verificações, incluindo pequenas alterações que, supostamente, fariam os testes falhar, em uma forma simplificada de teste de mutação; procura asserções fracas ou ausentes; e confirma a existência de um teste para cada cenário solicitado. Ele também compila todo o espaço de trabalho e executa o conjunto completo de testes, verificando se o comando de testes do repositório consegue encontrar os novos testes.

Resultados do teste interno

No teste interno padronizado mais recente, o agente concluiu 140 de 152 tarefas, com uma taxa de 92,1%, contra 120 tarefas e uma taxa de 78,9% do Copilot padrão, usando o mesmo modelo. A Microsoft afirmou que o número de falhas caiu 63%.

As maiores diferenças apareceram nas solicitações ambíguas, que deixam a maior parte das decisões para o agente: o agente especializado teve sucesso em 79 de 89 tarefas, contra 59 tarefas do Copilot padrão, e as falhas caíram de 30 para 10. Já nas solicitações detalhadas, os resultados foram próximos: o agente teve sucesso em 61 de 63 tarefas.

Em 15 tarefas que pediam a escrita de testes para uma alteração específica no código, o agente teve sucesso em todas, enquanto o Copilot padrão não teve sucesso em nenhuma. Considerando os resultados compartilhados, os dois sistemas tiveram sucesso em 119 tarefas, enquanto apenas o agente especializado teve sucesso em 21 tarefas, apenas o Copilot padrão teve sucesso em uma tarefa e ambos falharam em 11 tarefas.

O agente gerou 6.963 testes, em comparação com 7.129 testes do Copilot padrão, com uma cobertura média final de linhas de 72,4% contra 72,2% e uma cobertura média de ramificações de 49,8% contra 49,1%. O tempo médio da tarefa também foi de 359 segundos para o agente especializado e 380 segundos para o Copilot padrão. A Microsoft afirma que o ganho veio da confiabilidade, não da produção de um número maior de testes.

Suporte a várias linguagens e disponibilidade da extensão

As instruções incluídas oferecem suporte a .NET, Python, TypeScript, JavaScript, Java, Go, Ruby, Rust, Swift, Kotlin, PowerShell e C++. Os testes mostraram que o agente aprende as convenções de cada repositório, em vez de aplicar padrões de C# a todos os projetos.

Em outro teste com 44 tarefas do benchmark SWE Atlas, o agente concluiu 16 tarefas, com uma taxa de 36,4%, contra 12 tarefas e uma taxa de 27,3% do Copilot padrão. Os testes gerados também passaram em 550 casos e conseguiram detectar 360 erros injetados, contra 493 e 316, respectivamente, do sistema padrão. A Microsoft reconhece que esse benchmark é mais difícil e que as taxas de conclusão são muito menores nele.

A extensão pode ser usada no GitHub Copilot CLI e também está disponível no Visual Studio Code e no VS Code Insiders por meio do suporte a extensões, que ainda está em fase de pré-visualização. A Microsoft também está trabalhando no suporte ao Visual Studio. Para instalar a extensão no GitHub Copilot CLI, o usuário adiciona o marketplace de extensões com o comando /plugin marketplace add dotnet/skills, depois instala a extensão usando /plugin install dotnet-test@dotnet-agent-skills, reinicia a CLI e seleciona o agente code-testing-generator.

Fonte da notícia
ف
Autor

فريق تحرير certi.news

Na mesma categoria

Você também pode gostar

Ver todas as notícias