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 :-(
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 ! ;-)

Développement piloté par les tests - DDD

  • 1.
    Développement piloté parles tests Bob - Pyxis Technologies
  • 2.
    Moi, quand j'aicommencé à 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 passi 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 lafaute à personne
  • 11.
    En plus... ...c'était lafaute à personne
  • 12.
    En plus... ...c'était lafaute à personne
  • 13.
    En plus... ...c'était lafaute à personne
  • 14.
  • 15.
  • 16.
    Souvent, il ya 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, ily a ceux... ...qui ont lu ce livre une première fois... ...puis une deuxième ...puis une troisième ...
  • 18.
    Il y aaussi ceux... ...qui ont lu ce livre une première fois... ...puis une deuxième ...puis une troisième ...
  • 19.
    Et il ya ceux... ...qui ont pris ça très au sérieux.
  • 20.
    Et il ya ceux... ...qui ont pris ça très au sérieux.
  • 21.
    Développement piloté parles tests Bob - Pyxis Technologies
  • 22.
    Une idée maîtresse Fairecollaborer les différents intervenants
  • 23.
    Si on simplifieun brin... ...on rencontre principalement 3 types d'intervenants Ceux qui "spécifient" Ceux qui "codent" Ceux qui "testent"
  • 24.
    Malheureusement, la plupartdu 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 ! Ona inventé tout ce qu'il faut pour ça :-)
  • 27.
    Et si onne 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écificationsexécutables ?? Contient des exemples Liée au code Lieu de rencontre et d'échanges
  • 29.
    Alors ? Testou 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 Celaveut 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 souventparler... ...du "cycle" du TDD
  • 32.
    Une vision simpledu 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-cequ'un logiciel de qualité ?
  • 34.
    TDD & Qualité Quelest notre engagement en tant que professionnels de l'informatique ?
  • 35.
  • 36.
    "Faire émerger lemodè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 ?
  • 37.
  • 38.
    Et si jele dessine comme ça ? ça vous rappelle quelque chose ?
  • 39.
  • 40.
  • 41.
  • 42.