8. Ca marchait pas si mal
On faisait des nuits uniquement vers la fin
On arrivait à reporter les fautes sur les clients
On s'en sortait grâce aux avenants
9. Ah bien sur...
on était fatigué
on était stressé
on croisait les doigts à chaque livraison
...
on envisageait sérieusement d'aller élever des chèvres
23. Si on simplifie un brin...
...on rencontre principalement 3 types d'intervenants
Ceux qui "spécifient"
Ceux qui "codent"
Ceux qui "testent"
24. Malheureusement, la plupart du temps
Ils ne parlent pas le même langage
Ils ne travaillent pas ensemble
Ils ne se connaissent parfois même pas
25. Retroussons nos manches !
Il faut les aider
à travailler ensemble
à rendre le travail de chacun utile
à se sentir ensemble dans cette aventure
à prendre du plaisir ?
27. Et si on ne parlait plus de "tests"...
Une spécification évoque un comportement générique
Un test décrit un exemple d'utilisation
Un test peut être un programme qui exécute le code
28. ...mais de spécifications exécutables ??
Contient des exemples
Liée au code
Lieu de rencontre et d'échanges
29. Alors ? Test ou Spec ?
Vous les lancez pour vérifier une non-régression ?
-> on dirait des tests
Vous les écrivez pour décrire un comportement attendu ?
-> on dirait des specs
30. Test -Driven Development
Cela veut dire plusieurs choses
Spécifier les comportements via des exemples
Lier les spécifications au code de production
Ecrire des tests avant le code
Echanger des idées en écrivant des tests
Partager un résultat attendu avant de coder
Faire des tests les stars
Se mettre d'accord sur ce que l'on veut puis coder
Capitaliser les conversations dans des tests
Documenter l'utilisation d'un code dans des tests
Se lever le matin et penser aux tests que l'on va écrire
Se coucher le soir et penser aux tests que l'on a fait passer
...
32. Une vision simple du cycle
1 : Test
écrire un test et voir qu'il échoue
il faut ajouter au code la valeur décrite dans le test
2 : Code
faire passer le test rapidement
3 : Refactor
on n'ajoute pas de fonctionnalité
on améliore la qualité interne du code
36. "Faire émerger le modèle pendant le
refactoring"
Pendant un cours de TDD, les participants s'interrogent
Dois-je écrire des tests pour les classes qui émergent en
refactoring ?
Si je le fais, ne suis-je pas en train d'éluder le refactoring
pour continuer ?