SlideShare une entreprise Scribd logo
1  sur  72
Télécharger pour lire hors ligne
Docteur
         BDD
Ou comment j’ai appris à ne plus
       m’en faire avec les tests
                    (et la doc!)
Merci
à nos sponsors Platinum
Et merci
à nos sponsors Gold et Silver
Guillaume Saint Etienne
• Développeur Senior .Net
• Artisan Logiciel / Software Craftsman
• J’ai également été Architecte, Chef de Projet, Scrum Master,
  Responsable d’Activité
• http://dotnetguru2.org/gse
• http://groups.google.com/group/craftsmen-
  france-
• Twitter : @guillaume_agile
TESTER
•   Je teste
•   Tu testes
•   Il ou elle teste
•   Nous testons
•   Vous testez
•   Ils ou elles testent

• … mais tu peux pas (tout) test
qu'est ce que je teste?
Mon logiciel…
Comment je vois mon logiciel
De ma vision du logiciel
découle ma vision des tests
Acceptance = IHM?
•   Et les règles métier?
•   Et le stockage?
•   Et les transmissions/flux?
•   Les transactions? les services externes?
•   La gestion des erreurs, des mises à jour…

    Faut-il à chaque fois que je lance tout mon
    logiciel pour n’en tester qu’une partie???
% Code de l’IHM
GOF, ca vous parle?
•   Humble Dialog
•   MVC
•   MVP
•   MVVM
•   …
Alors, découpons
Comment tester cela?
On est passé de ca…
…à cà!
Et puis on m’a parlé de services…
Alors j’ai découpé en services
Ca me rappelle …
Heureusement, je travaille chez
J’ai voulu tester les « services »
Mais un service c’est pas simple
• Les dépendances m’ont tuer!
A l’intérieur…
Ce que je teste, je l’éclaire
Ce que je teste, je le nomme
Ce que je teste, je l’explicite
• Je dis clairement et simplement ce que
  j’attends, moi développeur.
• Ce que j’attends comme comportement, c’est
  ce qui va œuvrer (et qui est indispensable
  pour) le bon fonctionnement de l’ensemble.
• Comment mon client pourrait-il être satisfait
  de l’ensemble, si chaque pièce ne fonctionne
  pas de manière irréprochable?
Tester à partir des UI?
Alors, (re)disons le
• Tester « tout » et « à la fin » : CA NE MARCHE
  PAS!
• Le BDD pour l’Acceptance Testing est une
  ARNAQUE! (Integration/Integrated Tests)
• Car les scénarios sont d’une complexité
  exponentielle, vous n’y arriverez pas!
• Laissez tomber Selenium! (on en reparle)
   http://www.jbrains.ca/permalink/integrated-tests-are-a-
  scam-part-1
Pourquoi abandonner ATDD
• Si « Humble Dialog » est bien appliqué,
• tester sur l’UI revient à tester le navigateur
  Web ou Winform/WPF ou JFC/Swing ou ….
• (too much) code in the UI = it smells
• Integrated Tests are a scam!
Integrated Tests are a scam!
• I use the term integrated
  test to mean any test
  whose result (pass or
  fail) depends on the
  correctness of the
  implementation of more
  than one piece of non-
  trivial behavior.
  – J. B. Rainsberger
Un seul principe
KISS


• Keep it simple, stupid!
• Ce que l’on teste bien s’énonce clairement
  – (ou comment ne pas boire la tasse quand on cite
    Boileau)
• Simple = Unique, seul
Tester c’est comprendre


• du latin « comprehensio »1, de « cum », avec,
  et « prehendere », prendre: action de saisir
  ensemble ou de prendre avec soi
Comprendre quoi?
• .. Comment ca marche (à l’intérieur)



  – Ou bien



• Comment ça se comporte (de l’extérieur)
Le Test Comportementaliste
Le réserver aux IHM?



• Pourquoi n’y aurait-il que les IHM qui ont un
  comportement?
Qu’est ce qu’un comportement?
• Le comportement d'un être vivant et, plus
  généralement, de tout autre système est la
  partie de son activité qui se manifeste à un
  observateur

• http://fr.wikipedia.org/wiki/Comportement
Qui observe quoi?
On a bien dit « automatiser
         le test »
• L’observateur est donc un programme




                               …un automate
La chose observée
• est un bout de code.
• Doit être:
  – Simplifiée pour mieux comprendre
  – Simplifiée pour tester plus vite
  – Simplifiée pour avoir un résultat plus rapidement
  – Simplifiée pour rechercher les problèmes plus
    simplement.
• Le test lui-même doit rester simple
Simplifier = Isoler
Une chose à la fois
Single Responsibility
S.O.L.I.D.
• Single responsibility principle
  – the notion that an object should have only a single
    responsibility.
• Liskov substitution principle
  – the notion that “objects in a program should be
    replaceable with instances of their subtypes
    without altering the correctness of that program”
• Interface segregation principle
  – the notion that “many client specific interfaces are
    better than one general purpose interface
Si mon code est SOLID
• Alors mes tests doivent l’être aussi
Un exemple
• Et maintenant, un peu de vrai code
Ce que m’apporte la forme BDD
T.U. classique    T.U. Behavioriste

• ARRANGE         • GIVEN
• ACT             • WHEN
• ASSERT          • THEN
Je passe au BDD
• Je passe à une description textuelle
• Exemple!
DRY
•   Mes tests aussi !
•   Refactoring
•   Les Steps c’est beaucoup de DRY
•   Exemple!
Exemple de refactoring

• Je vais gagner énormément de temps

• Fini le copier/coller… dans le code !

• Donc fini les erreurs…. sur le code (technique)
  des tests!

• Exemple!
Les incontournables
• de la refactorisation :
  – Dummies / Doublures
  – Fake
  – Mocks
  – Stub
  – Espions
  – Helpers
Mes tests peuvent être lus
•   Ce n’est plus du code, c’est du texte!!
•   C’est ca qui change tout
•   Je peux les échanger
•   Quelqu’un de non technique pourrait les
    écrire
Qu'est ce que mon test raconte?
• Un scénario
• Même s’il revêt une réalité technique, le
  comportement devrait pouvoir être compris et
  approuvé par quelqu’un de logique.
• Il ne doit cibler qu’une chose à la fois
  (isolation)
Est ce suffisant pour faire
  une documentation?
• Si c’est bien raconté, oui.
• Pèsera autant qu’un lourd cahier de tests.
• J’ai gagné des semaines (voir des mois)
  hommes de travail de rédaction et de
  vérifications.
• Export automatique -> Html, Word, Pdf
Est-ce que tester "à ce point" modifie
      ma conception logicielle?
         (design émergeant)
Oui, et de 2 façons
Penser le test en premier
• BDD = TDD
• Test First
• Anticiper plutôt que guérir
• 40 à 90% de code défectueux en moins
• 15 à 35% de temps supplémentaire au début
  du projet (seulement)
• Vous connaissez le cout de la correction après
  développement ou de la TMA…. donc...
    – http://www.infoq.com/news/2009/03/TDD-Improves-Quality
Penser le comportement



Les vertus de
  l’abstraction
Décrire




Descriptif n’est pas Impératif
Un comportement attendu




    est vérifiable à coup sur
Domain Driven Design

• C’est le meilleur moyen
  d’être proche du domaine
  métier de votre client
• Exemple (description BDD et
  objet métier)
Polyglot Data
• Le meilleur moyen d’être Data Storage
  Agnostic
• Ce n’est plus le DBA qui commande
• SQL / NoSQL ?
• La persistance est un plus, voila tout.
• Exemple: le FakeStorer dans les tests
Concevoir un comportement
• C’est penser en terme FONCTIONNELS
C’est s’interesser à l’essentiel
• On ne voit bien qu'avec le test. L'essentiel est
  invisible pour les yeux.
                           Antoine de Saint-Test
Incidences sur le code
• Penser d’abord des Interfaces qui décrivent le
  comportement tels que les tests ont pu les
  expliciter dans des scénarios mettant en
  évidence la valeur ajoutée du fonctionnement
  choisi.
• Ecrire les tests qui détaille les scénarios du
  comportement à observer.
• Ecrire l’implémentation.
• Vérifier.
Responsabiliser le code
• Isolation = Une seule responsabilité




• Tester c’est apprivoiser.
• « Tu deviens responsable pour toujours de ce
  que tu as testé »
                            Antoine de Saint-Test
Toujours plus fluide
• Le style change
• On devient plus « fluent »
• Le code se lit (presque) comme une phrase en
  langage naturel
• On se rapproche de la programmation
  fonctionnelle (sans changer de langage)
• Fluent API + lambda expressions = le chainon
  manquant?
Références
Pardon
• à Antoine de Saint-Exupéry




 à relire (souvent)
Questions ?

Contenu connexe

Tendances

Essential skills for the agile developer
Essential skills for the agile developerEssential skills for the agile developer
Essential skills for the agile developerAlice Barralon
 
Human Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDDHuman Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDDXavier NOPRE
 
[Agile Testing Day] Techniques avancées de tests
[Agile Testing Day] Techniques avancées de tests[Agile Testing Day] Techniques avancées de tests
[Agile Testing Day] Techniques avancées de testsCellenza
 
Tdd en action - refactoring
Tdd en action - refactoringTdd en action - refactoring
Tdd en action - refactoringEric Mignot
 
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testableAgile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testableAssociation Agile Nantes
 
C'est quoi, du bon code ?
C'est quoi, du bon code ?C'est quoi, du bon code ?
C'est quoi, du bon code ?Rémi Lesieur
 
[Agile Testing Day] Test Driven Development (TDD)
[Agile Testing Day] Test Driven Development (TDD)[Agile Testing Day] Test Driven Development (TDD)
[Agile Testing Day] Test Driven Development (TDD)Cellenza
 
AT Marseille 2011 - Réduisons les gaspillages
AT Marseille 2011 - Réduisons les gaspillagesAT Marseille 2011 - Réduisons les gaspillages
AT Marseille 2011 - Réduisons les gaspillagesJérôme Avoustin
 
Introduction aux spécifications exécutables (dit aussi atdd, bdd)
Introduction aux spécifications exécutables (dit aussi atdd, bdd)Introduction aux spécifications exécutables (dit aussi atdd, bdd)
Introduction aux spécifications exécutables (dit aussi atdd, bdd)Jean-Pierre Lambert
 
201001 TDD
201001 TDD201001 TDD
201001 TDDlyonjug
 
Formation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifFormation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifkemenaran
 
C'est quoi le Software Craftsmanship ?
C'est quoi le Software Craftsmanship ?C'est quoi le Software Craftsmanship ?
C'est quoi le Software Craftsmanship ?Jean-Pierre Lambert
 
Remettons les tests au coeur des projets
Remettons les tests au coeur des projetsRemettons les tests au coeur des projets
Remettons les tests au coeur des projetsChristophe Gigax
 
Sortir de l’ère des héros - HumanTalks Paris Mars 2017
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 2017Jean-Pierre Lambert
 
Présentation Alt.net - Tests unitaires automatisés
Présentation Alt.net - Tests unitaires automatisésPrésentation Alt.net - Tests unitaires automatisés
Présentation Alt.net - Tests unitaires automatisésDjamel Zouaoui
 
Bbd dans le flow nov.2012
Bbd dans le flow nov.2012Bbd dans le flow nov.2012
Bbd dans le flow nov.2012guillaumeagilr
 
Tester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue techTester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue techMarine Karam
 
BBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetBBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetOlivier BAZOUD
 
Mockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilMockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilNormandy JUG
 

Tendances (20)

Essential skills for the agile developer
Essential skills for the agile developerEssential skills for the agile developer
Essential skills for the agile developer
 
Human Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDDHuman Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDD
 
[Agile Testing Day] Techniques avancées de tests
[Agile Testing Day] Techniques avancées de tests[Agile Testing Day] Techniques avancées de tests
[Agile Testing Day] Techniques avancées de tests
 
Tdd en action - refactoring
Tdd en action - refactoringTdd en action - refactoring
Tdd en action - refactoring
 
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testableAgile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
Agile Tour Nantes 2014 - Tdd, le meilleur moyen d'écrire du code testable
 
Clean code en pratique
Clean code en pratiqueClean code en pratique
Clean code en pratique
 
C'est quoi, du bon code ?
C'est quoi, du bon code ?C'est quoi, du bon code ?
C'est quoi, du bon code ?
 
[Agile Testing Day] Test Driven Development (TDD)
[Agile Testing Day] Test Driven Development (TDD)[Agile Testing Day] Test Driven Development (TDD)
[Agile Testing Day] Test Driven Development (TDD)
 
AT Marseille 2011 - Réduisons les gaspillages
AT Marseille 2011 - Réduisons les gaspillagesAT Marseille 2011 - Réduisons les gaspillages
AT Marseille 2011 - Réduisons les gaspillages
 
Introduction aux spécifications exécutables (dit aussi atdd, bdd)
Introduction aux spécifications exécutables (dit aussi atdd, bdd)Introduction aux spécifications exécutables (dit aussi atdd, bdd)
Introduction aux spécifications exécutables (dit aussi atdd, bdd)
 
201001 TDD
201001 TDD201001 TDD
201001 TDD
 
Formation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifFormation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratif
 
C'est quoi le Software Craftsmanship ?
C'est quoi le Software Craftsmanship ?C'est quoi le Software Craftsmanship ?
C'est quoi le Software Craftsmanship ?
 
Remettons les tests au coeur des projets
Remettons les tests au coeur des projetsRemettons les tests au coeur des projets
Remettons les tests au coeur des projets
 
Sortir de l’ère des héros - HumanTalks Paris Mars 2017
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
 
Présentation Alt.net - Tests unitaires automatisés
Présentation Alt.net - Tests unitaires automatisésPrésentation Alt.net - Tests unitaires automatisés
Présentation Alt.net - Tests unitaires automatisés
 
Bbd dans le flow nov.2012
Bbd dans le flow nov.2012Bbd dans le flow nov.2012
Bbd dans le flow nov.2012
 
Tester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue techTester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue tech
 
BBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetBBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - Puppet
 
Mockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilMockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice Duteil
 

En vedette

"Spécification par l'exemple" par l'exemple : le BDD démystifié
"Spécification par l'exemple" par l'exemple : le BDD démystifié"Spécification par l'exemple" par l'exemple : le BDD démystifié
"Spécification par l'exemple" par l'exemple : le BDD démystifiéGerald Reinhart
 
Design adaptatif / Mobilité
Design adaptatif / MobilitéDesign adaptatif / Mobilité
Design adaptatif / MobilitéAndré Dubreuil
 
031808 obama speech (french)
031808   obama speech (french)031808   obama speech (french)
031808 obama speech (french)VogelDenise
 
Ils attendent une famille, découvrez nos petits
Ils attendent une famille, découvrez nos petitsIls attendent une famille, découvrez nos petits
Ils attendent une famille, découvrez nos petitsStephanie Pealardy
 
Modèles d'attribution : le guide du spécialiste en référencement payant
Modèles d'attribution : le guide du spécialiste en référencement payantModèles d'attribution : le guide du spécialiste en référencement payant
Modèles d'attribution : le guide du spécialiste en référencement payantFrançois-Yves Prigent
 
SEO : les facteurs de confiance
SEO : les facteurs de confianceSEO : les facteurs de confiance
SEO : les facteurs de confianceLaurent Peyrat
 
Les coûts du travail augmentent plus rapidement en Belgique
Les coûts du travail augmentent plus rapidement en BelgiqueLes coûts du travail augmentent plus rapidement en Belgique
Les coûts du travail augmentent plus rapidement en Belgiquelesoirbe
 
Lmd conference mian
Lmd conference mianLmd conference mian
Lmd conference mianAntoine MIAN
 
Wellscan entreprise - Masseo Concept
Wellscan entreprise - Masseo ConceptWellscan entreprise - Masseo Concept
Wellscan entreprise - Masseo ConceptThierry Amsellem
 

En vedette (20)

"Spécification par l'exemple" par l'exemple : le BDD démystifié
"Spécification par l'exemple" par l'exemple : le BDD démystifié"Spécification par l'exemple" par l'exemple : le BDD démystifié
"Spécification par l'exemple" par l'exemple : le BDD démystifié
 
Design adaptatif / Mobilité
Design adaptatif / MobilitéDesign adaptatif / Mobilité
Design adaptatif / Mobilité
 
Jeux relaxation enfants
Jeux relaxation enfantsJeux relaxation enfants
Jeux relaxation enfants
 
Lectures
LecturesLectures
Lectures
 
มาตรฐานการศึกษาปฐมวัย2554
มาตรฐานการศึกษาปฐมวัย2554มาตรฐานการศึกษาปฐมวัย2554
มาตรฐานการศึกษาปฐมวัย2554
 
Utrecht prog ws series_b_vf
Utrecht prog  ws series_b_vfUtrecht prog  ws series_b_vf
Utrecht prog ws series_b_vf
 
GAT part 1 2552#3
GAT part 1 2552#3GAT part 1 2552#3
GAT part 1 2552#3
 
031808 obama speech (french)
031808   obama speech (french)031808   obama speech (french)
031808 obama speech (french)
 
Ils attendent une famille, découvrez nos petits
Ils attendent une famille, découvrez nos petitsIls attendent une famille, découvrez nos petits
Ils attendent une famille, découvrez nos petits
 
Alex. bd introduction french w
Alex. bd introduction french wAlex. bd introduction french w
Alex. bd introduction french w
 
Durban p2 k.f. seddoh
Durban p2 k.f. seddohDurban p2 k.f. seddoh
Durban p2 k.f. seddoh
 
Modèles d'attribution : le guide du spécialiste en référencement payant
Modèles d'attribution : le guide du spécialiste en référencement payantModèles d'attribution : le guide du spécialiste en référencement payant
Modèles d'attribution : le guide du spécialiste en référencement payant
 
I sante
I santeI sante
I sante
 
SEO : les facteurs de confiance
SEO : les facteurs de confianceSEO : les facteurs de confiance
SEO : les facteurs de confiance
 
Leaverules
LeaverulesLeaverules
Leaverules
 
Jodete noé x d
Jodete noé x dJodete noé x d
Jodete noé x d
 
Les coûts du travail augmentent plus rapidement en Belgique
Les coûts du travail augmentent plus rapidement en BelgiqueLes coûts du travail augmentent plus rapidement en Belgique
Les coûts du travail augmentent plus rapidement en Belgique
 
Lmd conference mian
Lmd conference mianLmd conference mian
Lmd conference mian
 
Diagrama de fase do phb
Diagrama de fase do phbDiagrama de fase do phb
Diagrama de fase do phb
 
Wellscan entreprise - Masseo Concept
Wellscan entreprise - Masseo ConceptWellscan entreprise - Masseo Concept
Wellscan entreprise - Masseo Concept
 

Similaire à TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)

Pratiques de développement pour équipes Agile
Pratiques de développement pour équipes AgilePratiques de développement pour équipes Agile
Pratiques de développement pour équipes AgileAgile Tour 2009 Québec
 
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...Cyrille Grandval
 
Pas d'agilité sans qualité
Pas d'agilité sans qualitéPas d'agilité sans qualité
Pas d'agilité sans qualitéAgile Montréal
 
La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !Lucian Precup
 
Le rôle du testeur et le Blackbox testing
Le rôle du testeur et le Blackbox testingLe rôle du testeur et le Blackbox testing
Le rôle du testeur et le Blackbox testingGeeks Anonymes
 
La relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiquesLa relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiquesEric SIBER
 
Agilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationAgilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationPHPPRO
 
Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?CGI Québec Formation
 
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...DC CONSULTANTS
 
Une architecture agile et testable
Une architecture agile et testableUne architecture agile et testable
Une architecture agile et testablemartinsson
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyonClement Bouillier
 
Les tests automatisés par mots-clés, le complément parfait d’un projet Agile
Les tests automatisés par mots-clés, le complément parfait d’un projet AgileLes tests automatisés par mots-clés, le complément parfait d’un projet Agile
Les tests automatisés par mots-clés, le complément parfait d’un projet AgileAgile Montréal
 
Pourquoi vous ne pouvez pas tester votre code
Pourquoi vous ne pouvez pas tester votre codePourquoi vous ne pouvez pas tester votre code
Pourquoi vous ne pouvez pas tester votre codeRémi Lesieur
 
Le test n'est pas (qu')une histoire - agile france 2016
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 2016Clément Rochas
 

Similaire à TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc) (20)

Pratiques de développement pour équipes Agile
Pratiques de développement pour équipes AgilePratiques de développement pour équipes Agile
Pratiques de développement pour équipes Agile
 
Le pilotage par les tests
Le pilotage par les testsLe pilotage par les tests
Le pilotage par les tests
 
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
PHPTour Lyon 2014 - Conférence - Tests unitaires Je veux mes 80% de couvertur...
 
Valider par des tests - Blend
Valider par des tests - BlendValider par des tests - Blend
Valider par des tests - Blend
 
Pas d'agilité sans qualité
Pas d'agilité sans qualitéPas d'agilité sans qualité
Pas d'agilité sans qualité
 
La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !
 
Le rôle du testeur et le Blackbox testing
Le rôle du testeur et le Blackbox testingLe rôle du testeur et le Blackbox testing
Le rôle du testeur et le Blackbox testing
 
La relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiquesLa relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiques
 
Agilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationAgilité, Tests Et Industrialisation
Agilité, Tests Et Industrialisation
 
Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?
 
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...
 
Une architecture agile et testable
Une architecture agile et testableUne architecture agile et testable
Une architecture agile et testable
 
Université du soir - TDD
Université du soir - TDDUniversité du soir - TDD
Université du soir - TDD
 
L'Agilité chez GEE Montréal
L'Agilité chez GEE MontréalL'Agilité chez GEE Montréal
L'Agilité chez GEE Montréal
 
Tour d'horizon des tests
Tour d'horizon des testsTour d'horizon des tests
Tour d'horizon des tests
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyon
 
XebiConFr 15 - Développer dans le Cloud
XebiConFr 15 - Développer dans le CloudXebiConFr 15 - Développer dans le Cloud
XebiConFr 15 - Développer dans le Cloud
 
Les tests automatisés par mots-clés, le complément parfait d’un projet Agile
Les tests automatisés par mots-clés, le complément parfait d’un projet AgileLes tests automatisés par mots-clés, le complément parfait d’un projet Agile
Les tests automatisés par mots-clés, le complément parfait d’un projet Agile
 
Pourquoi vous ne pouvez pas tester votre code
Pourquoi vous ne pouvez pas tester votre codePourquoi vous ne pouvez pas tester votre code
Pourquoi vous ne pouvez pas tester votre code
 
Le test n'est pas (qu')une histoire - agile france 2016
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
 

Plus de French Scrum User Group

Meetup FSUG-FKUG - Scrumban : Retour d'éxpérience chez Mappy
Meetup FSUG-FKUG - Scrumban : Retour d'éxpérience chez  MappyMeetup FSUG-FKUG - Scrumban : Retour d'éxpérience chez  Mappy
Meetup FSUG-FKUG - Scrumban : Retour d'éxpérience chez MappyFrench Scrum User Group
 
Scrumday 2015 : 50 nuances d'agilité par Virgile Delécolle
Scrumday 2015 : 50 nuances d'agilité par Virgile DelécolleScrumday 2015 : 50 nuances d'agilité par Virgile Delécolle
Scrumday 2015 : 50 nuances d'agilité par Virgile DelécolleFrench Scrum User Group
 
Scrumday 2015 : Immunothérapie pour le changement par Tremeur Balbous
Scrumday 2015 : Immunothérapie pour le changement par Tremeur BalbousScrumday 2015 : Immunothérapie pour le changement par Tremeur Balbous
Scrumday 2015 : Immunothérapie pour le changement par Tremeur BalbousFrench Scrum User Group
 
Scrumday 2015 : coach+coach=? par David Cumont et Jean-Christophe Conticello
Scrumday 2015 : coach+coach=? par David Cumont et Jean-Christophe ConticelloScrumday 2015 : coach+coach=? par David Cumont et Jean-Christophe Conticello
Scrumday 2015 : coach+coach=? par David Cumont et Jean-Christophe ConticelloFrench Scrum User Group
 
Scrumday 2015 : Dérapages controlé en toute agilité par Hing, Nathaniel et Ca...
Scrumday 2015 : Dérapages controlé en toute agilité par Hing, Nathaniel et Ca...Scrumday 2015 : Dérapages controlé en toute agilité par Hing, Nathaniel et Ca...
Scrumday 2015 : Dérapages controlé en toute agilité par Hing, Nathaniel et Ca...French Scrum User Group
 
Scrumday 2015 : La diffusion de l’Agilité chez Jouve IT Solutions, 5 années d...
Scrumday 2015 : La diffusion de l’Agilité chez Jouve IT Solutions, 5 années d...Scrumday 2015 : La diffusion de l’Agilité chez Jouve IT Solutions, 5 années d...
Scrumday 2015 : La diffusion de l’Agilité chez Jouve IT Solutions, 5 années d...French Scrum User Group
 
Scrumday 2015 : Agile et culture d'entreprise par Etienne Laverdiere et Hugo ...
Scrumday 2015 : Agile et culture d'entreprise par Etienne Laverdiere et Hugo ...Scrumday 2015 : Agile et culture d'entreprise par Etienne Laverdiere et Hugo ...
Scrumday 2015 : Agile et culture d'entreprise par Etienne Laverdiere et Hugo ...French Scrum User Group
 
Scrumday 2015 : Equipe agile, survivre à la disparition des managers par Kévi...
Scrumday 2015 : Equipe agile, survivre à la disparition des managers par Kévi...Scrumday 2015 : Equipe agile, survivre à la disparition des managers par Kévi...
Scrumday 2015 : Equipe agile, survivre à la disparition des managers par Kévi...French Scrum User Group
 
Scrumday 2015 : 10 ans d'aventures agile chez Orange par Stéphane Guédon
Scrumday 2015 : 10 ans d'aventures agile chez Orange par Stéphane GuédonScrumday 2015 : 10 ans d'aventures agile chez Orange par Stéphane Guédon
Scrumday 2015 : 10 ans d'aventures agile chez Orange par Stéphane GuédonFrench Scrum User Group
 
Scrumday 2015 : Même les élephants peuvent être agiles transition organisati...
Scrumday 2015 : Même les élephants peuvent être agiles  transition organisati...Scrumday 2015 : Même les élephants peuvent être agiles  transition organisati...
Scrumday 2015 : Même les élephants peuvent être agiles transition organisati...French Scrum User Group
 
Scrumday 2015 : Le Scrum chez Intel, retour d'expérience par Claude Aubry, Cy...
Scrumday 2015 : Le Scrum chez Intel, retour d'expérience par Claude Aubry, Cy...Scrumday 2015 : Le Scrum chez Intel, retour d'expérience par Claude Aubry, Cy...
Scrumday 2015 : Le Scrum chez Intel, retour d'expérience par Claude Aubry, Cy...French Scrum User Group
 
Scrumday2015 : Le plus petit pas par Nicolas Gouy
Scrumday2015 :  Le plus petit pas par Nicolas GouyScrumday2015 :  Le plus petit pas par Nicolas Gouy
Scrumday2015 : Le plus petit pas par Nicolas GouyFrench Scrum User Group
 
Scrumday 2015 : Lean startup rock opera par Bertrand Dour
Scrumday 2015 : Lean startup rock opera par Bertrand DourScrumday 2015 : Lean startup rock opera par Bertrand Dour
Scrumday 2015 : Lean startup rock opera par Bertrand DourFrench Scrum User Group
 
Scrumday 2015 : La régression continue - une méthode pour bien faire rater l'...
Scrumday 2015 : La régression continue - une méthode pour bien faire rater l'...Scrumday 2015 : La régression continue - une méthode pour bien faire rater l'...
Scrumday 2015 : La régression continue - une méthode pour bien faire rater l'...French Scrum User Group
 
Scrumday 2015 : La horde Agile par Pablo Pernot
Scrumday 2015 : La horde Agile par Pablo PernotScrumday 2015 : La horde Agile par Pablo Pernot
Scrumday 2015 : La horde Agile par Pablo PernotFrench Scrum User Group
 
Scrumday 2015 : Un projet agile de 2 ans, de la valse au free jazz en passant...
Scrumday 2015 : Un projet agile de 2 ans, de la valse au free jazz en passant...Scrumday 2015 : Un projet agile de 2 ans, de la valse au free jazz en passant...
Scrumday 2015 : Un projet agile de 2 ans, de la valse au free jazz en passant...French Scrum User Group
 
Scrumday 2015 : L'agile en grand par Jean-Hugues Hamelin et Nadim Elbaba
Scrumday 2015 :  L'agile en grand par Jean-Hugues Hamelin et Nadim ElbabaScrumday 2015 :  L'agile en grand par Jean-Hugues Hamelin et Nadim Elbaba
Scrumday 2015 : L'agile en grand par Jean-Hugues Hamelin et Nadim ElbabaFrench Scrum User Group
 
Scrumday 2014 - Stratégie pour le projet de développement du nouveau produit ...
Scrumday 2014 - Stratégie pour le projet de développement du nouveau produit ...Scrumday 2014 - Stratégie pour le projet de développement du nouveau produit ...
Scrumday 2014 - Stratégie pour le projet de développement du nouveau produit ...French Scrum User Group
 
Scrumday 2014 - Evaluez votre agilité par Alexandre Boutin
Scrumday 2014 - Evaluez votre agilité par Alexandre BoutinScrumday 2014 - Evaluez votre agilité par Alexandre Boutin
Scrumday 2014 - Evaluez votre agilité par Alexandre BoutinFrench Scrum User Group
 
Scrumday 2014 - En tant que Scrum Master, je veux m'améliorer pour mieux coac...
Scrumday 2014 - En tant que Scrum Master, je veux m'améliorer pour mieux coac...Scrumday 2014 - En tant que Scrum Master, je veux m'améliorer pour mieux coac...
Scrumday 2014 - En tant que Scrum Master, je veux m'améliorer pour mieux coac...French Scrum User Group
 

Plus de French Scrum User Group (20)

Meetup FSUG-FKUG - Scrumban : Retour d'éxpérience chez Mappy
Meetup FSUG-FKUG - Scrumban : Retour d'éxpérience chez  MappyMeetup FSUG-FKUG - Scrumban : Retour d'éxpérience chez  Mappy
Meetup FSUG-FKUG - Scrumban : Retour d'éxpérience chez Mappy
 
Scrumday 2015 : 50 nuances d'agilité par Virgile Delécolle
Scrumday 2015 : 50 nuances d'agilité par Virgile DelécolleScrumday 2015 : 50 nuances d'agilité par Virgile Delécolle
Scrumday 2015 : 50 nuances d'agilité par Virgile Delécolle
 
Scrumday 2015 : Immunothérapie pour le changement par Tremeur Balbous
Scrumday 2015 : Immunothérapie pour le changement par Tremeur BalbousScrumday 2015 : Immunothérapie pour le changement par Tremeur Balbous
Scrumday 2015 : Immunothérapie pour le changement par Tremeur Balbous
 
Scrumday 2015 : coach+coach=? par David Cumont et Jean-Christophe Conticello
Scrumday 2015 : coach+coach=? par David Cumont et Jean-Christophe ConticelloScrumday 2015 : coach+coach=? par David Cumont et Jean-Christophe Conticello
Scrumday 2015 : coach+coach=? par David Cumont et Jean-Christophe Conticello
 
Scrumday 2015 : Dérapages controlé en toute agilité par Hing, Nathaniel et Ca...
Scrumday 2015 : Dérapages controlé en toute agilité par Hing, Nathaniel et Ca...Scrumday 2015 : Dérapages controlé en toute agilité par Hing, Nathaniel et Ca...
Scrumday 2015 : Dérapages controlé en toute agilité par Hing, Nathaniel et Ca...
 
Scrumday 2015 : La diffusion de l’Agilité chez Jouve IT Solutions, 5 années d...
Scrumday 2015 : La diffusion de l’Agilité chez Jouve IT Solutions, 5 années d...Scrumday 2015 : La diffusion de l’Agilité chez Jouve IT Solutions, 5 années d...
Scrumday 2015 : La diffusion de l’Agilité chez Jouve IT Solutions, 5 années d...
 
Scrumday 2015 : Agile et culture d'entreprise par Etienne Laverdiere et Hugo ...
Scrumday 2015 : Agile et culture d'entreprise par Etienne Laverdiere et Hugo ...Scrumday 2015 : Agile et culture d'entreprise par Etienne Laverdiere et Hugo ...
Scrumday 2015 : Agile et culture d'entreprise par Etienne Laverdiere et Hugo ...
 
Scrumday 2015 : Equipe agile, survivre à la disparition des managers par Kévi...
Scrumday 2015 : Equipe agile, survivre à la disparition des managers par Kévi...Scrumday 2015 : Equipe agile, survivre à la disparition des managers par Kévi...
Scrumday 2015 : Equipe agile, survivre à la disparition des managers par Kévi...
 
Scrumday 2015 : 10 ans d'aventures agile chez Orange par Stéphane Guédon
Scrumday 2015 : 10 ans d'aventures agile chez Orange par Stéphane GuédonScrumday 2015 : 10 ans d'aventures agile chez Orange par Stéphane Guédon
Scrumday 2015 : 10 ans d'aventures agile chez Orange par Stéphane Guédon
 
Scrumday 2015 : Même les élephants peuvent être agiles transition organisati...
Scrumday 2015 : Même les élephants peuvent être agiles  transition organisati...Scrumday 2015 : Même les élephants peuvent être agiles  transition organisati...
Scrumday 2015 : Même les élephants peuvent être agiles transition organisati...
 
Scrumday 2015 : Le Scrum chez Intel, retour d'expérience par Claude Aubry, Cy...
Scrumday 2015 : Le Scrum chez Intel, retour d'expérience par Claude Aubry, Cy...Scrumday 2015 : Le Scrum chez Intel, retour d'expérience par Claude Aubry, Cy...
Scrumday 2015 : Le Scrum chez Intel, retour d'expérience par Claude Aubry, Cy...
 
Scrumday2015 : Le plus petit pas par Nicolas Gouy
Scrumday2015 :  Le plus petit pas par Nicolas GouyScrumday2015 :  Le plus petit pas par Nicolas Gouy
Scrumday2015 : Le plus petit pas par Nicolas Gouy
 
Scrumday 2015 : Lean startup rock opera par Bertrand Dour
Scrumday 2015 : Lean startup rock opera par Bertrand DourScrumday 2015 : Lean startup rock opera par Bertrand Dour
Scrumday 2015 : Lean startup rock opera par Bertrand Dour
 
Scrumday 2015 : La régression continue - une méthode pour bien faire rater l'...
Scrumday 2015 : La régression continue - une méthode pour bien faire rater l'...Scrumday 2015 : La régression continue - une méthode pour bien faire rater l'...
Scrumday 2015 : La régression continue - une méthode pour bien faire rater l'...
 
Scrumday 2015 : La horde Agile par Pablo Pernot
Scrumday 2015 : La horde Agile par Pablo PernotScrumday 2015 : La horde Agile par Pablo Pernot
Scrumday 2015 : La horde Agile par Pablo Pernot
 
Scrumday 2015 : Un projet agile de 2 ans, de la valse au free jazz en passant...
Scrumday 2015 : Un projet agile de 2 ans, de la valse au free jazz en passant...Scrumday 2015 : Un projet agile de 2 ans, de la valse au free jazz en passant...
Scrumday 2015 : Un projet agile de 2 ans, de la valse au free jazz en passant...
 
Scrumday 2015 : L'agile en grand par Jean-Hugues Hamelin et Nadim Elbaba
Scrumday 2015 :  L'agile en grand par Jean-Hugues Hamelin et Nadim ElbabaScrumday 2015 :  L'agile en grand par Jean-Hugues Hamelin et Nadim Elbaba
Scrumday 2015 : L'agile en grand par Jean-Hugues Hamelin et Nadim Elbaba
 
Scrumday 2014 - Stratégie pour le projet de développement du nouveau produit ...
Scrumday 2014 - Stratégie pour le projet de développement du nouveau produit ...Scrumday 2014 - Stratégie pour le projet de développement du nouveau produit ...
Scrumday 2014 - Stratégie pour le projet de développement du nouveau produit ...
 
Scrumday 2014 - Evaluez votre agilité par Alexandre Boutin
Scrumday 2014 - Evaluez votre agilité par Alexandre BoutinScrumday 2014 - Evaluez votre agilité par Alexandre Boutin
Scrumday 2014 - Evaluez votre agilité par Alexandre Boutin
 
Scrumday 2014 - En tant que Scrum Master, je veux m'améliorer pour mieux coac...
Scrumday 2014 - En tant que Scrum Master, je veux m'améliorer pour mieux coac...Scrumday 2014 - En tant que Scrum Master, je veux m'améliorer pour mieux coac...
Scrumday 2014 - En tant que Scrum Master, je veux m'améliorer pour mieux coac...
 

TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)

  • 1. Docteur BDD Ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc!)
  • 3. Et merci à nos sponsors Gold et Silver
  • 4. Guillaume Saint Etienne • Développeur Senior .Net • Artisan Logiciel / Software Craftsman • J’ai également été Architecte, Chef de Projet, Scrum Master, Responsable d’Activité • http://dotnetguru2.org/gse • http://groups.google.com/group/craftsmen- france- • Twitter : @guillaume_agile
  • 5. TESTER • Je teste • Tu testes • Il ou elle teste • Nous testons • Vous testez • Ils ou elles testent • … mais tu peux pas (tout) test
  • 6. qu'est ce que je teste? Mon logiciel…
  • 7. Comment je vois mon logiciel
  • 8. De ma vision du logiciel découle ma vision des tests
  • 9. Acceptance = IHM? • Et les règles métier? • Et le stockage? • Et les transmissions/flux? • Les transactions? les services externes? • La gestion des erreurs, des mises à jour… Faut-il à chaque fois que je lance tout mon logiciel pour n’en tester qu’une partie???
  • 10. % Code de l’IHM
  • 11. GOF, ca vous parle? • Humble Dialog • MVC • MVP • MVVM • …
  • 14. On est passé de ca…
  • 16. Et puis on m’a parlé de services…
  • 17. Alors j’ai découpé en services
  • 20. J’ai voulu tester les « services »
  • 21. Mais un service c’est pas simple • Les dépendances m’ont tuer!
  • 23. Ce que je teste, je l’éclaire
  • 24. Ce que je teste, je le nomme
  • 25. Ce que je teste, je l’explicite • Je dis clairement et simplement ce que j’attends, moi développeur. • Ce que j’attends comme comportement, c’est ce qui va œuvrer (et qui est indispensable pour) le bon fonctionnement de l’ensemble. • Comment mon client pourrait-il être satisfait de l’ensemble, si chaque pièce ne fonctionne pas de manière irréprochable?
  • 26. Tester à partir des UI?
  • 27. Alors, (re)disons le • Tester « tout » et « à la fin » : CA NE MARCHE PAS! • Le BDD pour l’Acceptance Testing est une ARNAQUE! (Integration/Integrated Tests) • Car les scénarios sont d’une complexité exponentielle, vous n’y arriverez pas! • Laissez tomber Selenium! (on en reparle) http://www.jbrains.ca/permalink/integrated-tests-are-a- scam-part-1
  • 28. Pourquoi abandonner ATDD • Si « Humble Dialog » est bien appliqué, • tester sur l’UI revient à tester le navigateur Web ou Winform/WPF ou JFC/Swing ou …. • (too much) code in the UI = it smells • Integrated Tests are a scam!
  • 29. Integrated Tests are a scam! • I use the term integrated test to mean any test whose result (pass or fail) depends on the correctness of the implementation of more than one piece of non- trivial behavior. – J. B. Rainsberger
  • 31. KISS • Keep it simple, stupid! • Ce que l’on teste bien s’énonce clairement – (ou comment ne pas boire la tasse quand on cite Boileau) • Simple = Unique, seul
  • 32. Tester c’est comprendre • du latin « comprehensio »1, de « cum », avec, et « prehendere », prendre: action de saisir ensemble ou de prendre avec soi
  • 33. Comprendre quoi? • .. Comment ca marche (à l’intérieur) – Ou bien • Comment ça se comporte (de l’extérieur)
  • 34.
  • 36. Le réserver aux IHM? • Pourquoi n’y aurait-il que les IHM qui ont un comportement?
  • 37. Qu’est ce qu’un comportement? • Le comportement d'un être vivant et, plus généralement, de tout autre système est la partie de son activité qui se manifeste à un observateur • http://fr.wikipedia.org/wiki/Comportement
  • 39. On a bien dit « automatiser le test » • L’observateur est donc un programme …un automate
  • 40. La chose observée • est un bout de code. • Doit être: – Simplifiée pour mieux comprendre – Simplifiée pour tester plus vite – Simplifiée pour avoir un résultat plus rapidement – Simplifiée pour rechercher les problèmes plus simplement. • Le test lui-même doit rester simple
  • 42. Une chose à la fois
  • 44. S.O.L.I.D. • Single responsibility principle – the notion that an object should have only a single responsibility. • Liskov substitution principle – the notion that “objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program” • Interface segregation principle – the notion that “many client specific interfaces are better than one general purpose interface
  • 45. Si mon code est SOLID • Alors mes tests doivent l’être aussi
  • 46. Un exemple • Et maintenant, un peu de vrai code
  • 47. Ce que m’apporte la forme BDD T.U. classique T.U. Behavioriste • ARRANGE • GIVEN • ACT • WHEN • ASSERT • THEN
  • 48. Je passe au BDD • Je passe à une description textuelle • Exemple!
  • 49. DRY • Mes tests aussi ! • Refactoring • Les Steps c’est beaucoup de DRY • Exemple!
  • 50. Exemple de refactoring • Je vais gagner énormément de temps • Fini le copier/coller… dans le code ! • Donc fini les erreurs…. sur le code (technique) des tests! • Exemple!
  • 51. Les incontournables • de la refactorisation : – Dummies / Doublures – Fake – Mocks – Stub – Espions – Helpers
  • 52. Mes tests peuvent être lus • Ce n’est plus du code, c’est du texte!! • C’est ca qui change tout • Je peux les échanger • Quelqu’un de non technique pourrait les écrire
  • 53. Qu'est ce que mon test raconte? • Un scénario • Même s’il revêt une réalité technique, le comportement devrait pouvoir être compris et approuvé par quelqu’un de logique. • Il ne doit cibler qu’une chose à la fois (isolation)
  • 54. Est ce suffisant pour faire une documentation?
  • 55. • Si c’est bien raconté, oui. • Pèsera autant qu’un lourd cahier de tests. • J’ai gagné des semaines (voir des mois) hommes de travail de rédaction et de vérifications. • Export automatique -> Html, Word, Pdf
  • 56. Est-ce que tester "à ce point" modifie ma conception logicielle? (design émergeant)
  • 57. Oui, et de 2 façons
  • 58. Penser le test en premier • BDD = TDD • Test First • Anticiper plutôt que guérir • 40 à 90% de code défectueux en moins • 15 à 35% de temps supplémentaire au début du projet (seulement) • Vous connaissez le cout de la correction après développement ou de la TMA…. donc... – http://www.infoq.com/news/2009/03/TDD-Improves-Quality
  • 59. Penser le comportement Les vertus de l’abstraction
  • 61. Un comportement attendu est vérifiable à coup sur
  • 62. Domain Driven Design • C’est le meilleur moyen d’être proche du domaine métier de votre client • Exemple (description BDD et objet métier)
  • 63. Polyglot Data • Le meilleur moyen d’être Data Storage Agnostic • Ce n’est plus le DBA qui commande • SQL / NoSQL ? • La persistance est un plus, voila tout. • Exemple: le FakeStorer dans les tests
  • 64. Concevoir un comportement • C’est penser en terme FONCTIONNELS
  • 65. C’est s’interesser à l’essentiel • On ne voit bien qu'avec le test. L'essentiel est invisible pour les yeux. Antoine de Saint-Test
  • 66. Incidences sur le code • Penser d’abord des Interfaces qui décrivent le comportement tels que les tests ont pu les expliciter dans des scénarios mettant en évidence la valeur ajoutée du fonctionnement choisi. • Ecrire les tests qui détaille les scénarios du comportement à observer. • Ecrire l’implémentation. • Vérifier.
  • 67. Responsabiliser le code • Isolation = Une seule responsabilité • Tester c’est apprivoiser. • « Tu deviens responsable pour toujours de ce que tu as testé » Antoine de Saint-Test
  • 68. Toujours plus fluide • Le style change • On devient plus « fluent » • Le code se lit (presque) comme une phrase en langage naturel • On se rapproche de la programmation fonctionnelle (sans changer de langage) • Fluent API + lambda expressions = le chainon manquant?
  • 70.
  • 71. Pardon • à Antoine de Saint-Exupéry à relire (souvent)