Um artigo recente do Google mostrou que a geração de testes especificada aumentou a detecção de bugs em 9,8 pontos percentuais em uma amostra de sua base de código. Mas sua especificação é lida do código, o que deixa sem solução a metade que me interessa. Tenho argumentado por meses que um conjunto de testes escrito pelo mesmo modelo que escreveu o código não pode realmente discordar dele, e para apoiar minha afirmação desenvolvi uma nova biblioteca Python de código aberto.
O teste de software tem se movido em uma direção por vinte anos, e o Desenvolvimento Especificado (SDD) é onde esse movimento chegou recentemente. Este artigo defende mais um passo: SDD Independente, ou ISDD. O TDD disse que os testes são a especificação. O BDD foi a resposta para isso. O SDD é a versão que chegou com os agentes.
Atualmente, o Desenvolvimento Especificado divide o trabalho. Não divide quem tem o conhecimento. A mesma especificação vai para o planejador, o gerador de testes e o agente de codificação. Meu argumento é cortar ao longo dessa linha: dar ao agente de codificação as decisões e reter os critérios de aceitação, para que o conjunto de testes possa dizer ao código que ele está errado.
Uma equipe do Google mediu o passo antes de reter. "Grounding AI Agents in Contracts: An Empirical Evaluation of Spec-Driven Test Generation" faz algo mais estreito do que meu argumento. Eles primeiro pedem que ele raciocine sobre o código e escreva seu contrato. Esse documento se torna um andaime cognitivo e os testes são gerados a partir dele. Os resultados, em bugs de produção da própria base de código do Google, mostraram que mais da metade das vezes, um conjunto de testes gerado...
Fonte: Towards Data Science · Resumido por HeadlinesBriefing