Introduction au TDD – TDD ? – Commençons par définir ce qu'est un test...



Introduction au TDD – TDD ? – Commençons par définir ce qu'est un test...

0 0


Introduction-au-TDD

Introduction au TDD

On Github cbossard / Introduction-au-TDD

Introduction au TDD

TDD ?

TDD = Test Driven Development

Soit développement dirigé par les tests

Euh OK... Mais en quoi est-ce que ça consiste ?

Commençons par définir ce qu'est un test...

La pyramide des tests de Mike Cohn

Interessons-nous plus particulièrement aux tests unitaires

Test unitaire = du code qui teste du code

La base de tous les tests

Investissement et volume le plus important

Un test unitaire doit être :

  • Simple ("unitaire")
  • Lisible
  • Rapide à écrire
  • Rapide à exécuter
  • Indépendant
  • Répétable
  • Automatisable

Retour sur le TDD

Principe

Ecrire un premier test Vérifier qu'il échoue (le code qu'il teste n'existe pas) Ecrire juste le code suffisant pour passer le test Vérifier que le test passe Refactoriser le code Ecrire un deuxième test ...

Quels avantages ?

  • Vérifier au plus tôt la bonne compréhension des besoins fonctionnels
  • Détecter au plus tôt les problèmes dans les specs
  • Ecriture de code testable
  • Améliorer la couverture du code par les tests
  • Les tests sont plus faciles à écrire avant le code métier qu'après

Oui mais...

  • Ce n'est pas facile...
  • L'apprentissage est long
  • Tout le monde doit s'y mettre

Oui mais...

  • ROI important
  • Meilleure confiance dans le code développé
  • Moins de crainte de modifier le code existant : les tests sont là pour servir de filet de sécurité

On essaie ?

Coding Dojo Kata

Merci

Merci à Xavier Nopre pour son inspiration et son aide (@xnopre)

C'est parti !

Le principe du Coding Dojo

Si je veux apprendre le Judo, je vais m'inscrire au dojo du coin et y passer une heure par semaine pendant deux ans, au bout de quoi j'aurai peut-être envie de pratiquer plus assidûment. Si je veux apprendre la programmation objet, mon employeur va me trouver une formation de trois jours à Java dans le catalogue 2004. Cherchez l'erreur. Laurent Bossavit, président de l'association XP-France

2 types de coding dojo

  • "Kata" : Démonstration d'une solution à un défi par une seule personne
  • "Randori" : Démonstration d'une solution à un défi par un groupe de personnes. La personne au clavier tourne de façon régulière (5 à 10 min)

Tout le monde doit suivre et comprendre. N'hésitez pas à interrompre !

Notre exercice

Calcul de score au tennis

15/0, 15/15, AV J1, ...

Ce que je veux tester

				// Nouveau jeu : score nul => 0/0 Egalité
				// Joueur 1 gagne la 1ère balle => 15/0
				// Joueur 1 gagne la 2ème balle => 30/0
				// Joueur 1 gagne la 3ème balle => 40/0
				// Joueur 1 gagne le jeu => Jeu J1
				// Joueur 2 gagne la 2ème balle => 15/15 Egalité
				// Joueur 1 a l'avantage => Avantage J1
				// Joueur 1 perd l'avantage => 40/40 Egalité
				// Joueur 1 gagne l'avantage => Jeu J1
			

Let's hack !

Next dojo

Utilisation de mocks