Développement piloté par les tests - DDD

42
Développement piloté par les tests Bob - Pyxis Technologies

description

Présentation à l'Agile Tour - Nantes - 14 octobre 2009 - Eric Mignot / Bob

Transcript of Développement piloté par les tests - DDD

Page 1: Développement piloté par les tests - DDD

Développement piloté par les tests

Bob - Pyxis Technologies

Page 2: Développement piloté par les tests - DDD

Moi, quand j'ai commencé à bosser...

...ça se passait comme ça :

Page 3: Développement piloté par les tests - DDD

Quand j'y repense...

...on écrivait l'application plusieurs fois :-(

Page 4: Développement piloté par les tests - DDD

Quand j'y repense...

...on écrivait l'application plusieurs fois :-(

Page 5: Développement piloté par les tests - DDD

Quand j'y repense...

...on écrivait l'application plusieurs fois :-(

Page 6: Développement piloté par les tests - DDD

Quand j'y repense...

...on écrivait l'application plusieurs fois :-(

Page 7: Développement piloté par les tests - DDD
Page 8: Développement piloté par les tests - DDD

Ca marchait pas si mal

On faisait des nuits uniquement vers la finOn arrivait à reporter les fautes sur les clientsOn s'en sortait grâce aux avenants

Page 9: Développement piloté par les tests - DDD

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

Page 10: Développement piloté par les tests - DDD

En plus...

...c'était la faute à personne

Page 11: Développement piloté par les tests - DDD

En plus...

...c'était la faute à personne

Page 12: Développement piloté par les tests - DDD

En plus...

...c'était la faute à personne

Page 13: Développement piloté par les tests - DDD

En plus...

...c'était la faute à personne

Page 14: Développement piloté par les tests - DDD

Autrement dit...

...la faute au client !

Page 15: Développement piloté par les tests - DDD

STOP !!!

C'était vraiment n'im-por-te quoi

Page 16: Développement piloté par les tests - DDD

Souvent, il y a eu un choc, un déclic...

Certains ont lu un livreD'autres ont pris une bière avec des amisPour d'autres ça a été la nuit de trop

Page 17: Développement piloté par les tests - DDD

Par exemple, il y a ceux...

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

...puis une deuxième

...puis une troisième

...

Page 18: Développement piloté par les tests - DDD

Il y a aussi ceux...

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

...puis une deuxième

...puis une troisième

...

Page 19: Développement piloté par les tests - DDD

Et il y a ceux...

...qui ont pris ça très au sérieux.

Page 20: Développement piloté par les tests - DDD

Et il y a ceux...

...qui ont pris ça très au sérieux.

Page 21: Développement piloté par les tests - DDD

Développement piloté par les tests

Bob - Pyxis Technologies

Page 22: Développement piloté par les tests - DDD

Une idée maîtresse

Faire collaborer les différents intervenants

Page 23: Développement piloté par les tests - DDD

Si on simplifie un brin...

...on rencontre principalement 3 types d'intervenantsCeux qui "spécifient"Ceux qui "codent"Ceux qui "testent"

Page 24: Développement piloté par les tests - DDD

Malheureusement, la plupart du temps

Ils ne parlent pas le même langageIls ne travaillent pas ensembleIls ne se connaissent parfois même pas

Page 25: Développement piloté par les tests - DDD

Retroussons nos manches !

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

Page 26: Développement piloté par les tests - DDD

Bonne nouvelle !

On a inventé tout ce qu'il faut pour ça :-)

Page 27: Développement piloté par les tests - DDD

Et si on ne parlait plus de "tests"...

Une spécification évoque un comportement génériqueUn test décrit un exemple d'utilisationUn test peut être un programme qui exécute le code

Page 28: Développement piloté par les tests - DDD

...mais de spécifications exécutables ??

Contient des exemplesLiée au codeLieu de rencontre et d'échanges

Page 29: Développement piloté par les tests - DDD

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

Page 30: Développement piloté par les tests - DDD

Test -Driven Development

Cela veut dire plusieurs chosesSpécifier les comportements via des exemplesLier les spécifications au code de productionEcrire des tests avant le codeEchanger des idées en écrivant des testsPartager un résultat attendu avant de coderFaire des tests les starsSe mettre d'accord sur ce que l'on veut puis coderCapitaliser les conversations dans des testsDocumenter l'utilisation d'un code dans des testsSe lever le matin et penser aux tests que l'on va écrireSe coucher le soir et penser aux tests que l'on a fait passer...

Page 31: Développement piloté par les tests - DDD

Vous entendrez souvent parler...

...du "cycle" du TDD

Page 32: Développement piloté par les tests - DDD

Une vision simple du cycle

1 : Testécrire un test et voir qu'il échoueil faut ajouter au code la valeur décrite dans le test

2 : Codefaire passer le test rapidement

3 : Refactoron n'ajoute pas de fonctionnalitéon améliore la qualité interne du code

Page 33: Développement piloté par les tests - DDD

TDD & Qualité

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

Page 34: Développement piloté par les tests - DDD

TDD & Qualité

Quel est notre engagement en tant que professionnels de l'informatique ?

Page 35: Développement piloté par les tests - DDD

TDD & Qualité

Page 36: Développement piloté par les tests - DDD

"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 ?

Page 37: Développement piloté par les tests - DDD

Que pensez-vous de ça ?

Page 38: Développement piloté par les tests - DDD

Et si je le dessine comme ça ?

ça vous rappelle quelque chose ?

Page 39: Développement piloté par les tests - DDD

"Test-Driven Scrum" ?

Page 40: Développement piloté par les tests - DDD

"Show me the code!"

Page 41: Développement piloté par les tests - DDD

"Show me the code!"

Page 42: Développement piloté par les tests - DDD

Merci

Bons tests ! ;-)