Le TDD, (Test-Driven Development ou Développement Piloté par les Tests) est une méthode de développement. Elle consiste dans un premier temps à écrire les tests et ensuite le code dans le but de les faire passer.
Processus de développement
Pendant un développement en TDD, on répète les étapes suivantes jusqu’au développement de la fonctionnalité :
- Écrire un des tests correspondant à une fonctionnalité
- Ce test échoue car le code n’existe pas encore
- Écrire le code pour faire valider le test en question
- Vérifier que tous les tests passent
- Remanier le code afin d’en améliorer la qualité
Avantages
La principale fonction du TDD est d’orienter le code vers le métier. En effet, on va partir du besoin du client, écrire le test associé à ce besoin et le faire passer. On va avoir un logiciel qui va répondre aux besoins sans complexité supplémentaire. Donc contrairement à une méthode de développement classique, le TDD va nous donner un code fonctionnelle et non technique.
De plus, tout le code sera testé et structuré donc de meilleur qualité ce qui le rend plus maintenable. Cela nous permet de ne pas avoir de régression de code. C’est à dire que, qu’à chaque nouvelle ligne de code écrite, on va savoir directement si elle a un impact sur le code déjà présent.
Le TDD nous assure d’avoir tout notre code de testé. Alors que dans certains cas si on écrit du code sans avoir écrit du test il y a un fort risque de pas du tout pouvoir écrire du test associée à ce code.
Enfin la pratique du TDD est aussi bénéfique à la satisfaction du développeur ce qui va accroître sa productivité. En effet, le fait d’écrire les tests et de les voir passer par exemple avec un voyant vert va donner un sentiment d’accomplissement au développeur. Il a directement un retour si son code est bon ou pas. Ce retour immédiat a beaucoup plus d’impact que si on l’a plusieurs jours ou semaine après. Car un petit problème peut en engendrer d’autres et peut vite devenir irréversible.
Le TDD est donc une manière d’implémenter des tests automatiques ce qui permettra de décupler la qualité et la pérennité de votre application.
Retour de ping : Agilité : la culture du changement (part 2) – Julien ANNE