O documento discute os princípios e benefícios do desenvolvimento guiado por testes (TDD), incluindo que testes automatizados fornecem documentação executável e feedback rápido, e que o TDD promove a qualidade de software através de testes funcionais e unitários escritos antes do código.
2. Teste automatizado é uma
documentação executável.
Testes automáticos geram Feed Back
rápido e fácil (1 click).
Teste de software é qualidade de
software.
Teste de caixa preta (Funcional), é
cansativo para o ser humano.
27. Encontre o foco do problema que gera o Bug
Transforme-o em um teste
Teste. Ele deve falhar
Corrija o bug
Teste novamente. Ele deve passar
28. Tente fazer com que os próprios usuários
submetam testes
Examine o código e encontre possíveis Bugs
semelhantes
38. Analise o código
Construa o teste e veja se você entendeu o
problema
Teste
Adapte o teste (Iterativamente)
Teste
Siga para a próxima parte
61. MITOS REALIDADES
TDD pode gerar um conjunto de Componentes de terceiros às
testes 100% aplicáveis para vezes deixam de ter testes e até o
qualquer aplicação código-fonte.
Você só precisa fazer teste de É preciso aplicar outras técnicas
unidade de testes, mesmo para sistemas
simples.
TDD contemplam apenas o teste
TDD é suficiente para testar tudo entre o desenvolvedor e a
unidade.
TDD não é escalável O TDD encoraja o refactoring, o
que torna o código escalável.
62.
63. Os riscos aumentam
Demora mais na entrega e muito menos na
correção
64. Ou o problema não foi entendido
Ou utiliza um grande inimigo o Ctrl+C,
Ctrl+V
65. É como se não conhecesse uma biblioteca e
isso o impedisse de testar
Trata apenas de programação coisa que já
estamos acostumados
66. Sem fundamento
Se o cenário é inédito existe a comunidade
que pode ajudar
67. Testes devem ser escritos antes do código
Não significa abrir mão de uma poderosa
ferramenta
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82. Escreva um teste que não irá funcionar.
Faça com que esse teste funcione com a
implementação mais óbvia e rápida possível.
Repita esse ciclo iterativamente refatorando o
código eliminando o desnecessário.