Ce que vous décrivez comme un flux de travail n'est pas, à mon avis, l' esprit du TDD.
Le synopsis du livre de Kent Becks sur Amazon dit:
Le développement piloté par les tests vise tout simplement à éliminer la peur dans le développement d'applications.Bien qu'une certaine peur soit saine (souvent considérée comme une conscience qui dit aux programmeurs de "faire attention!"), L'auteur pense que les sous-produits de la peur incluent les programmeurs hésitants, grincheux et peu communicatifs qui sont incapables d'absorber les critiques constructives. Lorsque les équipes de programmation adhèrent à TDD, elles voient immédiatement des résultats positifs. Ils éliminent la peur de leur travail et sont mieux équipés pour relever les défis difficiles auxquels ils sont confrontés. Le TDD élimine les traits provisoires, il apprend aux programmeurs à communiquer et il encourage les membres de l'équipe à rechercher les critiques. Cependant, même l'auteur admet que la grinchosité doit être réglée individuellement! En bref, le principe derrière TDD est que le code doit être continuellement testé et refactorisé.
TDD pratique
Les tests automatisés formels, en particulier les tests unitaires, chaque méthode de chaque classe est tout aussi mauvais un anti-modèle et ne teste rien. Il y a un équilibre à trouver. Ecrivez-vous des tests unitaires pour chaque setXXX/getXXX
méthode, ce sont aussi des méthodes!
Les tests peuvent également aider à économiser du temps et de l'argent, mais n'oubliez pas qu'ils coûtent du temps et de l'argent à développer et qu'ils sont du code, donc ils coûtent du temps et de l'argent à maintenir. S'ils s'atrophient par manque d'entretien, ils deviennent un passif plus qu'un avantage.
Comme tout comme ça, il y a un équilibre qui ne peut être défini par personne d'autre que vous-même. Tout dogme dans un sens ou dans l'autre est probablement plus faux que correct.
Une bonne métrique est le code qui est essentiel à la logique métier et sujet à des modifications fréquentes en fonction des exigences changeantes. Ces choses nécessitent des tests formels qui sont automatisés, ce serait un gros retour sur investissement.
Vous allez avoir beaucoup de mal à trouver de nombreux magasins professionnels qui fonctionnent de cette façon. Il n'est tout simplement pas logique de dépenser de l'argent pour tester des choses qui, à toutes fins pratiques, ne changeront jamais après un simple test de fumée. La rédaction de tests unitaires formels automatisés pour les .getXXX/.setXXX
méthodes en est un excellent exemple, une perte de temps totale.
Cela fait maintenant deux décennies qu'il a été souligné que les tests de programme peuvent démontrer de manière convaincante la présence de bogues, mais ne peuvent jamais démontrer leur absence. Après avoir cité avec dévotion cette remarque très médiatisée, l'ingénieur logiciel revient à l'ordre du jour et continue d'affiner ses stratégies de test, tout comme l'alchimiste d'antan, qui a continué d'affiner ses purifications chrysocosmiques.
- Edsger W. Djikstra . (Écrit en 1988, il est donc maintenant plus proche de 4,5 décennies.)
Voir aussi cette réponse .