Qui n'a jamais joué avec des Legos? Saviez-vous qu'on peut faciliter l'apprentissage de concepts complexes grâce à ceux-ci? Je vous invite à venir vous amusez avec moi dans cet atelier sur le TDD! Que vous soyez familier ou non avec la programmation n'a aucune importance: vous vous surprendrez à retomber en enfance à travers le jeu, tout en acquérant de nouvelles notions!
Pascal Drouin
Jean-Philippe Bélanger
2. Définition
“Le Test-Driven Development (TDD), ou développements pilotés par les tests, est une méthode de
développement de logiciel qui consiste à écrire chaque test avant d'écrire le code source d'un logiciel, de
façon itérative.”
Wikipedia
3. Historique
● 1950: Découverte de l’approche “Test First”
● 1998: Kent Beck (XP) redécouvre ce principe.
● 2003: Beck popularise le terme TDD
4. Les principes de la profession de développeur
● Pas seulement des logiciels opérationnels, mais aussi des logiciels bien conçus.
● Pas seulement l'adaptation aux changements, mais aussi l'ajout constant de valeur.
● Pas seulement les individus et leurs interactions, mais aussi une communauté professionnelle.
● Pas seulement la collaboration avec les clients, mais aussi des partenariats productifs.
Le TDD est une pratique qui contribue à l’adoption de ces principes.
5. Problèmes rencontrés en développement
● Difficulter à tester le code.
● Complexiter excessive.
● Syndrôme du “Tant qu’à y être”.
● Peur de faire du refactoring.
6. Avantages du TDD
● Standard de qualité élevé.
● Couverture de tests automatisés optimale.
● Design émergeant.
● Clean Code, Testable Code.
● Permet le refactoring.
● Permet ultimement d’aller plus vite.
7. Les trois étapes du cycle TDD
1. Écrire un test qui échoue.
2. Écrire suffisamment de code pour faire passer le test.
3. Refactoring.
9. Atelier Lego - mise en scène
● Votre but: utiliser le TDD dans la réalisation d’une voiture.
● Défi: construire une suite de tests qui n’est pas fragile au changement.
● Ayez en main:
● Un sac contenant des Legos.
● Un surligneur
● Deux types de feuilles quadrillées.
● Une liste de requis.
10. Atelier Lego - quelques règles
● Dessiner le test en premier :
● Utiliser la plaque comme point de repère.
● Ajouter juste assez de Lego pour faire passer le test.
● Assurez-vous que les tests passent avant de passer au requis suivant.
11. Requis 1: La voiture doit avoir une plaque pour plancher.
Grande voiture (6 x 8) Petite voiture (4 x 8)
12. Requis 2: La voiture doit avoir une carrosserie d’un bloc de haut.
Grande voiture (6 x 8) Petite voiture (4 x 8)
13. Requis 3: La voiture doit avoir un volant.
Grande voiture (6 x 8) Petite voiture (4 x 8)
14. Requis 4: La voiture doit pouvoir asseoir un conducteur.
Grande voiture (6 x 8) Petite voiture (4 x 8)
15. Requis 5: La voiture doit avoir un pare-brise.
Grande voiture (6 x 8) Petite voiture (4 x 8)
16. Requis 6: La voiture doit avoir quatre roues.
Grande voiture (6 x 8) Petite voiture (4 x 8)
18. Refactoring
● Afin de répondre au nouveau requis de votre client, vous devez apporter des modifications à
votre voiture.
● N'oubliez pas de modifier vos tests au besoin et assurez-vous qu’ils s’exécutent toujours avec
succès!
22. Retour sur l’exercice
● La pratique du TDD facilite le refactoring:
○ En créant une couverture de code optimale.
○ En augmentant notre confiance dans le code.
○ En retirant la peur du changement / régressions.
● Viser une seule validation par test.
● Valider l’état suite à l’exécution et non l’implémentation
24. Références
Kent Beck explique que le TDD existe depuis plus longtemps qu’on ne le croit
https://arialdomartini.wordpress.com/2012/07/20/you-wont-believe-how-old-tdd-is/
Kent Beck - Test Driven Development
https://www.amazon.ca/Test-Driven-Development-Kent-Beck/dp/0321146530
TDD: la meilleure chose qui soit arrivée au design logiciel
https://www.thoughtworks.com/pt/insights/blog/test-driven-development-best-thing-has-happened-software-design
Pourquoi faire du TDD
https://builttoadapt.io/why-tdd-489fdcdda05e
Comment le TDD peut changer votre vie en tant que développeur
https://medium.com/@raphaelyoshiga/why-tdd-will-change-your-developer-life-b0bf234e15ac