O que você está descrevendo como um fluxo de trabalho não é, na minha opinião, o Spirit of TDD.
A sinopse do livro de Kent Becks na Amazon diz:
Simplesmente, o desenvolvimento orientado a testes visa eliminar o medo no desenvolvimento de aplicativos.Embora um pouco de medo seja saudável (geralmente visto como uma consciência que diz aos programadores que "tomem cuidado!"), O autor acredita que os subprodutos do medo incluem programadores tentativos, mal-humorados e não comunicativos que são incapazes de absorver críticas construtivas. Quando as equipes de programação compram no TDD, elas imediatamente veem resultados positivos. Eles eliminam o medo envolvido em seus trabalhos e estão mais bem equipados para enfrentar os difíceis desafios que eles enfrentam. O TDD elimina traços experimentais, ensina os programadores a se comunicar e incentiva os membros da equipe a buscar críticas. No entanto, mesmo o autor admite que o mal-humorado deve ser resolvido individualmente! Em suma, a premissa por trás do TDD é que o código deve ser continuamente testado e refatorado.
TDD prático
Teste formal automatizado, especialmente Teste de unidade, todos os métodos de todas as classes são tão antipadrão quanto não testam nada. Há um equilíbrio a ser tido. Você está escrevendo testes de unidade para todos os setXXX/getXXX
métodos, eles também são métodos!
Os testes também podem ajudar a economizar tempo e dinheiro, mas não esqueça que eles custam tempo e dinheiro para serem desenvolvidos e são código, portanto, eles custam tempo e dinheiro para serem mantidos. Se atrofiam por falta de manutenção, tornam-se um passivo mais que um benefício.
Como tudo isso, existe um equilíbrio que não pode ser definido por ninguém além de você. Qualquer dogma de qualquer maneira é provavelmente mais errado do que correto.
Uma boa métrica é um código que é crítico para a lógica de negócios e sujeito a modificações frequentes com base nos requisitos variáveis. Essas coisas precisam de testes formais automatizados, que seriam um grande retorno do investimento.
Você vai ser muito pressionado a encontrar muitas lojas profissionais que funcionam dessa maneira também. Simplesmente não faz sentido para os negócios gastar dinheiro testando coisas que, para todos os efeitos práticos, nunca mudam após a realização de um simples teste de fumaça. Escrever testes de unidade automatizados formais para .getXXX/.setXXX
métodos é um excelente exemplo disso, completa perda de tempo.
Agora faz duas décadas desde que foi apontado que o teste do programa pode demonstrar de forma convincente a presença de bugs, mas nunca pode demonstrar sua ausência. Depois de citar essa observação bem divulgada com devoção, o engenheiro de software volta à ordem do dia e continua a refinar suas estratégias de teste, assim como o alquimista de outrora, que continuou a refinar suas purificações crisocósmicas.
- Edsger W. Djikstra . (Escrito em 1988, agora está mais perto de 4,5 décadas.)
Veja também esta resposta .