Escrito originalmente em francês. Traduzido por IA — o sentido foi preservado, não a prosa.
Definição curta
Test Driven Development — disciplina de desenvolvimento em que o teste que descreve o comportamento esperado é escrito antes do código que o implementa.
Definição detalhada
No sentido técnico consagrado, o TDD designa um ciclo curto e repetido: escrever um teste que falha, escrever o código mínimo que o faz passar, refatorar o código sem quebrar o teste. É uma prática de design de código tanto quanto uma prática de teste.
Nos artigos deste blog, o termo é usado sob um ângulo mais estreito: o teste anterior ao código é tomado como artefato de especificação. Ele carrega o quê — o comportamento esperado, o que precisa continuar verdadeiro — enquanto o código carrega o como. Por isso, ele interessa ao produto tanto quanto ao desenvolvimento: fixa um acordo sobre um comportamento numa forma que a máquina avalia e que, portanto, não pode divergir da implementação em silêncio.
Uso no domínio
Discussões sobre a redução do número de defeitos em produção, definição de uma política de qualidade, decisões sobre o custo dos testes, formalização dos critérios de aceite de uma funcionalidade.
Camada trazida por "Ontology-Driven Design: e se a ontologia virasse a rede de segurança do código gerado por IA?" (2026-10-29). O termo também serve de modelo de analogia: a lógica de anterioridade do TDD é transposta para o modelo de domínio, confrontando uma solicitação com a ontologia antes de codificar, sem a garantia determinística de um teste.
Sinônimos e variantes
Test Driven Development · desenvolvimento orientado por testes · test-first.
Não confundir com
- Testes automatizados — testes executados por uma máquina, sem indicação de quando foram escritos; escritos depois do código, eles constatam o que ele faz.
BDD(Behaviour Driven Development) — formulação dos comportamentos esperados numa linguagem legível por quem não é desenvolvedor, voltada para a conversa com o negócio.- Testes de regressão — conjunto de testes executado de novo para verificar que um comportamento existente não foi quebrado, independentemente de ter sido escrito antes do código.
- QA — função que define e verifica os critérios de qualidade; o TDD é uma prática conduzida pelos próprios desenvolvedores.
Exemplos
"O teste descreve o quê. O código implementa o como."
Um comportamento esperado fixado por um teste antes da implementação continua verificável depois de várias refatorações do código, enquanto a prosa que o descrevia deixou de ser relida.
Ambiguidades / debates
A sigla é usada com frequência para designar qualquer prática de teste automatizado, o que apaga a única coisa que a caracteriza: o teste vir antes do código.
O valor dela continua em debate — prática de design para uns, custo extra de escrita para outros —, e o debate raramente trata do mesmo objeto, conforme se fale do ciclo completo ou só do test-first.