Développement piloté par les tests - DDD

Pyxis Technologies
Pyxis TechnologiesAgile consultants à Pyxis
Développement piloté par les
          tests
     Bob - Pyxis Technologies
Moi, quand j'ai commencé à bosser...

...ça se passait comme ça :
Quand j'y repense...

...on écrivait l'application plusieurs fois :-(
Quand j'y repense...

...on écrivait l'application plusieurs fois :-(
Quand j'y repense...

...on écrivait l'application plusieurs fois :-(
Quand j'y repense...

...on écrivait l'application plusieurs fois :-(
Développement piloté par les tests - DDD
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
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
En plus...

...c'était la faute à personne
En plus...

...c'était la faute à personne
En plus...

...c'était la faute à personne
En plus...

...c'était la faute à personne
Autrement dit...

...la faute au client !
STOP !!!

C'était vraiment n'im-por-te quoi
Souvent, il y a eu un choc, un déclic...

  Certains ont lu un livre
  D'autres ont pris une bière avec des amis
  Pour d'autres ça a été la nuit de trop
Par exemple, il y a ceux...

...qui ont lu ce livre une première fois...




...puis une deuxième
...puis une troisième
...
Il y a aussi ceux...

...qui ont lu ce livre une première fois...




...puis une deuxième
...puis une troisième
...
Et il y a ceux...

...qui ont pris ça très au sérieux.
Et il y a ceux...

...qui ont pris ça très au sérieux.
Développement piloté par les
          tests
     Bob - Pyxis Technologies
Une idée maîtresse

Faire collaborer les différents intervenants
Si on simplifie un brin...

...on rencontre principalement 3 types d'intervenants
    Ceux qui "spécifient"
    Ceux qui "codent"
    Ceux qui "testent"
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
Retroussons nos manches !

Il faut les aider
     à travailler ensemble
     à rendre le travail de chacun utile
     à se sentir ensemble dans cette aventure
     à prendre du plaisir ?
Bonne nouvelle !

On a inventé tout ce qu'il faut pour ça :-)
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
...mais de spécifications exécutables ??

  Contient des exemples
  Liée au code
  Lieu de rencontre et d'échanges
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
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
   ...
Vous entendrez souvent parler...

...du "cycle" du TDD
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
TDD & Qualité

Qu'est-ce qu'un logiciel de qualité ?
TDD & Qualité

Quel est notre engagement en tant que professionnels de
l'informatique ?
TDD & Qualité
"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 ?
Que pensez-vous de ça ?
Et si je le dessine comme ça ?

ça vous rappelle quelque chose ?
"Test-Driven Scrum" ?
"Show me the code!"
"Show me the code!"
Merci

Bons tests ! ;-)
1 sur 42

Recommandé

Tdd en action - découverte par
Tdd en action - découverteTdd en action - découverte
Tdd en action - découverteEric Mignot
1.7K vues31 diapositives
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc) par
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)French Scrum User Group
2.1K vues72 diapositives
Pizza party 30-09-2011 bdd-cucumber par
Pizza party 30-09-2011 bdd-cucumberPizza party 30-09-2011 bdd-cucumber
Pizza party 30-09-2011 bdd-cucumberHervé Leclerc
875 vues18 diapositives
Iut agile lyon 20 nov. 2013 - bdd par
Iut agile lyon   20 nov. 2013 - bddIut agile lyon   20 nov. 2013 - bdd
Iut agile lyon 20 nov. 2013 - bddagnes_crepet
1.7K vues31 diapositives
TypeScript par
TypeScriptTypeScript
TypeScriptDagbouj Hatem
355 vues9 diapositives
Coder propre ! par
Coder propre !Coder propre !
Coder propre !cluelessjoe
2K vues96 diapositives

Contenu connexe

Similaire à Développement piloté par les tests - DDD

La solution-a-la-dette-technique par
La solution-a-la-dette-techniqueLa solution-a-la-dette-technique
La solution-a-la-dette-techniqueFabrice Aimetti
294 vues7 diapositives
La solution-a-la-dette-technique par
La solution-a-la-dette-techniqueLa solution-a-la-dette-technique
La solution-a-la-dette-techniqueFabrice Aimetti
35 vues7 diapositives
Mob Programming et #NoEstimates : contre-intuitif et efficace par
Mob Programming et #NoEstimates : contre-intuitif et efficaceMob Programming et #NoEstimates : contre-intuitif et efficace
Mob Programming et #NoEstimates : contre-intuitif et efficaceNicolas Umiastowski
767 vues45 diapositives
201001 TDD par
201001 TDD201001 TDD
201001 TDDlyonjug
556 vues31 diapositives
Bbd dans le flow nov.2012 par
Bbd dans le flow nov.2012Bbd dans le flow nov.2012
Bbd dans le flow nov.2012guillaumeagilr
561 vues143 diapositives
Le langage C.pdf par
Le langage C.pdfLe langage C.pdf
Le langage C.pdfNoamHaythem
31 vues116 diapositives

Similaire à Développement piloté par les tests - DDD(20)

Mob Programming et #NoEstimates : contre-intuitif et efficace par Nicolas Umiastowski
Mob Programming et #NoEstimates : contre-intuitif et efficaceMob Programming et #NoEstimates : contre-intuitif et efficace
Mob Programming et #NoEstimates : contre-intuitif et efficace
201001 TDD par lyonjug
201001 TDD201001 TDD
201001 TDD
lyonjug556 vues
'il y avait vraiment du gâteau" , Pair Programming un retour d'expérience par David Hodgetts
'il y avait vraiment du gâteau" , Pair Programming un retour d'expérience'il y avait vraiment du gâteau" , Pair Programming un retour d'expérience
'il y avait vraiment du gâteau" , Pair Programming un retour d'expérience
David Hodgetts553 vues
Human Talks Grenoble - 11/12/2012 - TDD par Xavier NOPRE
Human Talks Grenoble - 11/12/2012 - TDDHuman Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDD
Xavier NOPRE2.4K vues
Sortir de l’ère des héros - HumanTalks Paris Mars 2017 par Jean-Pierre Lambert
Sortir de l’ère des héros - HumanTalks Paris Mars 2017Sortir de l’ère des héros - HumanTalks Paris Mars 2017
Sortir de l’ère des héros - HumanTalks Paris Mars 2017
Le test n'est pas (qu')une histoire - agile france 2016 par Clément Rochas
Le test n'est pas (qu')une histoire - agile france 2016Le test n'est pas (qu')une histoire - agile france 2016
Le test n'est pas (qu')une histoire - agile france 2016
Clément Rochas380 vues
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P... par SEO CAMP
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
SEO CAMP2.4K vues
Synergies entre DEV et SEO (SeoCampus 2019) par LVLUP
Synergies entre DEV et SEO (SeoCampus 2019)Synergies entre DEV et SEO (SeoCampus 2019)
Synergies entre DEV et SEO (SeoCampus 2019)
LVLUP270 vues
Software Craftsmanship, le métier de faiseurs de logiciels par Damien Thouvenin
Software Craftsmanship, le métier de faiseurs de logicielsSoftware Craftsmanship, le métier de faiseurs de logiciels
Software Craftsmanship, le métier de faiseurs de logiciels
Damien Thouvenin212 vues
Outils Collaboratifs Pourquoi Comment par anne.wiener
Outils Collaboratifs Pourquoi CommentOutils Collaboratifs Pourquoi Comment
Outils Collaboratifs Pourquoi Comment
anne.wiener4.3K vues

Plus de Pyxis Technologies

Pitié, ne construisez pas le nouveau pont Champlain en Agilité... par
Pitié, ne construisez pas le nouveau pont Champlain en Agilité...Pitié, ne construisez pas le nouveau pont Champlain en Agilité...
Pitié, ne construisez pas le nouveau pont Champlain en Agilité...Pyxis Technologies
402 vues12 diapositives
Sorry, the new Champlain Bridge can’t be built using Agile... par
Sorry, the new Champlain Bridge can’t be built using Agile...Sorry, the new Champlain Bridge can’t be built using Agile...
Sorry, the new Champlain Bridge can’t be built using Agile...Pyxis Technologies
631 vues10 diapositives
Développer votre logiciel interne : comment y parvenir sans investir une fort... par
Développer votre logiciel interne : comment y parvenir sans investir une fort...Développer votre logiciel interne : comment y parvenir sans investir une fort...
Développer votre logiciel interne : comment y parvenir sans investir une fort...Pyxis Technologies
652 vues26 diapositives
Agilité du point de vue de la gouvernance par
Agilité du point de vue de la gouvernanceAgilité du point de vue de la gouvernance
Agilité du point de vue de la gouvernancePyxis Technologies
2.2K vues26 diapositives
La gestion de portefeuille Agile - c'est pas compliqué! par
La gestion de portefeuille Agile - c'est pas compliqué! La gestion de portefeuille Agile - c'est pas compliqué!
La gestion de portefeuille Agile - c'est pas compliqué! Pyxis Technologies
1.9K vues20 diapositives
Introduction à Agile Lean par
Introduction à Agile LeanIntroduction à Agile Lean
Introduction à Agile LeanPyxis Technologies
1.6K vues25 diapositives

Plus de Pyxis Technologies(20)

Pitié, ne construisez pas le nouveau pont Champlain en Agilité... par Pyxis Technologies
Pitié, ne construisez pas le nouveau pont Champlain en Agilité...Pitié, ne construisez pas le nouveau pont Champlain en Agilité...
Pitié, ne construisez pas le nouveau pont Champlain en Agilité...
Sorry, the new Champlain Bridge can’t be built using Agile... par Pyxis Technologies
Sorry, the new Champlain Bridge can’t be built using Agile...Sorry, the new Champlain Bridge can’t be built using Agile...
Sorry, the new Champlain Bridge can’t be built using Agile...
Développer votre logiciel interne : comment y parvenir sans investir une fort... par Pyxis Technologies
Développer votre logiciel interne : comment y parvenir sans investir une fort...Développer votre logiciel interne : comment y parvenir sans investir une fort...
Développer votre logiciel interne : comment y parvenir sans investir une fort...
La gestion de portefeuille Agile - c'est pas compliqué! par Pyxis Technologies
La gestion de portefeuille Agile - c'est pas compliqué! La gestion de portefeuille Agile - c'est pas compliqué!
La gestion de portefeuille Agile - c'est pas compliqué!
Pyxis Technologies1.9K vues
La valeur d'affaires comme indicateur de la gestion de projet - IIBA Montréal... par Pyxis Technologies
La valeur d'affaires comme indicateur de la gestion de projet - IIBA Montréal...La valeur d'affaires comme indicateur de la gestion de projet - IIBA Montréal...
La valeur d'affaires comme indicateur de la gestion de projet - IIBA Montréal...
Pyxis Technologies1.1K vues
Agile BA - catalyseur, createur de valeur - BAFS 29 juin 2015 Geneve par Pyxis Technologies
Agile BA - catalyseur, createur de valeur - BAFS 29 juin 2015 Geneve Agile BA - catalyseur, createur de valeur - BAFS 29 juin 2015 Geneve
Agile BA - catalyseur, createur de valeur - BAFS 29 juin 2015 Geneve
Estimation initiale dun projet agile de Mathieu Boisvert par Pyxis Technologies
Estimation initiale dun projet agile de Mathieu BoisvertEstimation initiale dun projet agile de Mathieu Boisvert
Estimation initiale dun projet agile de Mathieu Boisvert
Pyxis Technologies2.5K vues
Les attitudes doxiques dans les équipes et le syndrome du Titanic! par Pyxis Technologies
Les attitudes doxiques dans les équipes et le syndrome du Titanic!Les attitudes doxiques dans les équipes et le syndrome du Titanic!
Les attitudes doxiques dans les équipes et le syndrome du Titanic!
La valeur d’affaires: L’indicateur qui peut changer le succès des projets par Pyxis Technologies
La valeur d’affaires: L’indicateur qui peut changer le succès des projetsLa valeur d’affaires: L’indicateur qui peut changer le succès des projets
La valeur d’affaires: L’indicateur qui peut changer le succès des projets
Pyxis Technologies2.7K vues
Le rôle de l’architecte Agile - Mathieu Boisvert par Pyxis Technologies
Le rôle de l’architecte Agile - Mathieu BoisvertLe rôle de l’architecte Agile - Mathieu Boisvert
Le rôle de l’architecte Agile - Mathieu Boisvert
Pyxis Technologies3.8K vues
Agilité et la gestion du changement mboisvert - 15 octobre 2013 par Pyxis Technologies
Agilité et la gestion du changement   mboisvert - 15 octobre 2013Agilité et la gestion du changement   mboisvert - 15 octobre 2013
Agilité et la gestion du changement mboisvert - 15 octobre 2013
Pyxis Technologies3.2K vues
Comment être agile dans un contexte non lié aux TI ? par Pyxis Technologies
Comment être agile dans un contexte non lié aux TI ?Comment être agile dans un contexte non lié aux TI ?
Comment être agile dans un contexte non lié aux TI ?
Pyxis Technologies3.3K vues
La revue d'itération intégrée… Et autres fabuleuses pratiques Agiles adaptées... par Pyxis Technologies
La revue d'itération intégrée… Et autres fabuleuses pratiques Agiles adaptées...La revue d'itération intégrée… Et autres fabuleuses pratiques Agiles adaptées...
La revue d'itération intégrée… Et autres fabuleuses pratiques Agiles adaptées...
Choisir ses priorités: le développement incrémental de produit par Pyxis Technologies
Choisir ses priorités: le développement incrémental de produitChoisir ses priorités: le développement incrémental de produit
Choisir ses priorités: le développement incrémental de produit
Pyxis Technologies1.9K vues
Apprendre pour la performance et le bien-être par Pyxis Technologies
Apprendre pour la performance et le bien-êtreApprendre pour la performance et le bien-être
Apprendre pour la performance et le bien-être
Pyxis Technologies1.4K vues
L'agilité : de l'individu à l'organisation en passant par l'équipe par Pyxis Technologies
L'agilité : de l'individu à l'organisation en passant par l'équipeL'agilité : de l'individu à l'organisation en passant par l'équipe
L'agilité : de l'individu à l'organisation en passant par l'équipe
Pyxis Technologies1.7K vues

Développement piloté par les tests - DDD

  • 1. Développement piloté par les tests Bob - Pyxis Technologies
  • 2. Moi, quand j'ai commencé à bosser... ...ça se passait comme ça :
  • 3. Quand j'y repense... ...on écrivait l'application plusieurs fois :-(
  • 4. Quand j'y repense... ...on écrivait l'application plusieurs fois :-(
  • 5. Quand j'y repense... ...on écrivait l'application plusieurs fois :-(
  • 6. Quand j'y repense... ...on écrivait l'application plusieurs fois :-(
  • 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
  • 10. En plus... ...c'était la faute à personne
  • 11. En plus... ...c'était la faute à personne
  • 12. En plus... ...c'était la faute à personne
  • 13. En plus... ...c'était la faute à personne
  • 15. STOP !!! C'était vraiment n'im-por-te quoi
  • 16. Souvent, il y a eu un choc, un déclic... Certains ont lu un livre D'autres ont pris une bière avec des amis Pour d'autres ça a été la nuit de trop
  • 17. Par exemple, il y a ceux... ...qui ont lu ce livre une première fois... ...puis une deuxième ...puis une troisième ...
  • 18. Il y a aussi ceux... ...qui ont lu ce livre une première fois... ...puis une deuxième ...puis une troisième ...
  • 19. Et il y a ceux... ...qui ont pris ça très au sérieux.
  • 20. Et il y a ceux... ...qui ont pris ça très au sérieux.
  • 21. Développement piloté par les tests Bob - Pyxis Technologies
  • 22. Une idée maîtresse Faire collaborer les différents intervenants
  • 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 ?
  • 26. Bonne nouvelle ! On a inventé tout ce qu'il faut pour ça :-)
  • 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 ...
  • 31. Vous entendrez souvent parler... ...du "cycle" du TDD
  • 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
  • 33. TDD & Qualité Qu'est-ce qu'un logiciel de qualité ?
  • 34. TDD & Qualité Quel est notre engagement en tant que professionnels de l'informatique ?
  • 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 ?
  • 38. Et si je le dessine comme ça ? ça vous rappelle quelque chose ?
  • 40. "Show me the code!"
  • 41. "Show me the code!"