Definição
Você expressa o contrato como testes executáveis e pede para o modelo implementar até passarem, sem mexer nos testes. Os testes transformam um pedido vago num alvo objetivo e dão a você e ao modelo um ciclo de feedback rápido. Funciona muito bem com agentes que conseguem rodar a suíte de testes sozinhos.
Exemplo de prompt
O arquivo de teste é escrito por você. O prompt só define as regras.
// carousel.test.ts (escrito por você)it('mostra as 5 imagens mais recentes', ...)it('troca a cada 5 segundos', ...)it('pausa com hover', ...)it('pisca duas vezes na transição', ...)it('pula uma imagem que falhou ao carregar', ...)Implemente <HomeCarousel /> para todos os testes de carousel.test.ts passarem.Não altere o arquivo de teste. Rode os testes depois de cada mudançae pare quando estiverem todos verdes.
O que revela
- Pensamento em contratos e comportamento observável
- Compromisso com qualidade e verificação
- Capacidade de desenhar código testável
Use quando
- Lógica com entradas e saídas claras
- Correção de bug: escreva o teste que falha primeiro
- Fluxos com agentes em que o modelo consegue rodar os testes sozinho
Cuidado com
- O modelo trapaceando: tratando casos de teste à parte ou editando os testes
- Testes que só cobrem o caminho feliz
- Testar detalhe de implementação em vez de comportamento
Na entrevista
Observe
- Os testes descrevem comportamento ou implementação?
- A pessoa confere se o modelo não enfraqueceu os testes?
Pergunte
- Qual teste está faltando nessa suíte?
- Como você perceberia se o modelo tivesse tratado um teste como caso especial?
Origem
Derivado do test-driven development (TDD), que Kent Beck redescobriu e popularizou com o Extreme Programming e descreveu em "Test-Driven Development: By Example" (2002). O próprio Beck depois aplicou TDD a agentes de código em "Augmented Coding: Beyond the Vibes" (2025), e Simon Willison documenta o "red/green TDD" como um padrão de engenharia com agentes. Ninguém leva o crédito pelo nome "test-driven prompting".