Test Driven Development, ou TDD, também conhecido por
Test-First, é um conjunto de técnicas associadas com o XP e
métodos ágeis.
• TDD reivindica um desenvolvimento incremental do código
que inicia com testes, incluindo frequentemente testes de
regressão.
• Uma das regras do TDD é a seguinte: “se você não consegue
escrever um teste para aquilo que você está codificando, então
você nem deveria pensar sobre codificar”.
• Esta técnica de desenvolvimento é antiga, mas tornou-se
conhecida, após sua adoção em metodologias ágeis de
desenvolvimento, tornando assim, um desenvolvimento
incremental, onde o código é escrito para passar pelos testes já
escritos previamente.
Mesmo TDD sendo uma prática do XP, esta não se encontra isolada no
universo do XP. Abaixo, segue uma lista de práticas que são
complementares e/ou completadas usando-se o TDD:
• Programação em pares: a programação pareada melhora o TDD no momento
em que o programador que está codificando o código.
• Integração contínua: testes são um excelente recurso para esta prática,
permitindo que sempre seja feita uma integração.
• Design simples: codificando apenas o necessário para os testes, e removendo
código duplicado, automaticamente obtém-se um design adaptado para a
necessidade atual.
• Refatoração: a regra de remoção de código duplicado é outra maneira de se
fazer refatoração. Mas os testes garantem ao desenvolvedor, que grandes
mudanças feitas no sistema, não alteraram o funcionamento do mesmo.
• Entrega contínua: com testes realizados no sistema, têm-se mais confiança na
entrega de partes do sistema, e o código vai para produção mais rápido.