Pourquoi devrais-je pratiquer le développement piloté par les tests et par où commencer ?

StackOverflow https://stackoverflow.com/questions/4303

  •  08-06-2019
  •  | 
  •  

Question

Beaucoup de gens parlent d’écrire des tests pour leur code avant de commencer à écrire leur code.Cette pratique est généralement connue sous le nom de Test Driven Development ou TDD en abrégé.Quels avantages puis-je retirer en écrivant des logiciels de cette façon ?Comment démarrer avec cette pratique ?

Était-ce utile?

La solution

Les avantages sont nombreux :

  • Vous obtenez un retour immédiat indiquant si votre code fonctionne, afin que vous puissiez trouver les bogues plus rapidement
  • En voyant le test passer du rouge au vert, vous savez que vous disposez à la fois d'un test de régression fonctionnel et d'un code fonctionnel.
  • Vous gagnez en confiance pour refactoriser le code existant, ce qui signifie que vous pouvez nettoyer le code sans vous soucier de ce qu'il pourrait casser
  • À la fin, vous disposez d'une suite de tests de régression qui peuvent être exécutés lors des builds automatisés pour vous donner une plus grande confiance dans la solidité de votre base de code.

La meilleure façon de commencer est de commencer.Il y a un grand livre de Kent Beck tout sur le développement piloté par les tests.Commencez simplement avec un nouveau code, ne vous inquiétez pas de l'ancien code...chaque fois que vous sentez que vous avez besoin de refactoriser du code, écrivez un test pour la fonctionnalité existante, puis refactorisez-le et assurez-vous que les tests restent verts.Lisez également ce super article.

Autres conseils

La partie avantages a récemment été couvert, quant à savoir par où commencer... sur un système de petite entreprise où il n'y a pas trop d'inconnues donc les risques sont faibles.Si vous ne connaissez pas déjà un framework de test (comme NUnit), commencez par l'apprendre.Sinon commencez par écrire votre premier test :)

Avantages

  1. Vous savez comment compartimenter votre code
  2. Vous comprenez exactement ce que vous voulez que votre code fasse
  3. Vous savez comment il est censé agir et, en fin de compte, si le refactoring casse quelque chose
  4. Vous prend l'habitude de vous assurer que votre code sait toujours ce qu'il est censé faire

Commencer

Fais-le c'est tout.Écrivez un scénario de test pour ce que vous voulez faire, puis écrivez le code qui devrait réussir le test.Si vous réussissez votre test, parfait, vous pouvez passer à l'écriture de cas où votre code échouera toujours (2+2 ne doit pas être égal à 5, par exemple).

Une fois tous vos tests réussis, écrivez votre logique métier réelle pour faire ce que vous voulez faire.

Si vous partez de zéro, assurez-vous de trouver une bonne suite de tests facile à utiliser.J'aime PHP donc PHPUnit ou SimpleTest fonctionnent bien.Presque tous les langages populaires disposent d'une suite de tests xUnit pour aider à créer et automatiser les tests.

À mon avis, le plus important est que cela vous permet clairement de voir si votre code fait ce qu'il est censé faire.Cela peut paraître évident, mais il est très facile de s'éloigner de ses objectifs initiaux, comme je l'ai découvert par le passé :p

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top