BDD BDD BDD TDD BDD ATDD BDD AATDD BDD DDD BDD AUT BDD UET
 
 
la langue....
 
http://www.ldolphin.org/babel.html
to talk effectively with our customers we need to learn and use their language
William S. Burroughs language is a virus from outer space
de quoi parlons nous?
MISE AU POINT  
 
 
 
si les tests dirigent le projet...  
...qui dirige les tests?
TOP DOWN or BOTTOM UP? http://kinderman.net/articles/2007/11/18/testing-on-high-bottom-up-versus-top-down-test-driven-development  
TDD top-down   < =>  donne moi plus d'abstraction      TDD bottom-up < = > donne moi plus de contrôle Outside-In  < = >  rendez vous au point de convergence Middle-Out  < = >  partons du point de convergence
Par quoi on commence? MIDDLE-OUT en pratique le PO et le DEV se parlent ! http://www.slideshare.net/josephwilk/outsidein-development-with-cucumber-and-rspec   Business Readeable Domain Specific Language  ? http://martinfowler.com/bliki/BusinessReadableDSL.html
http://www.2ia.net/user-story/
largement insuffisant pour le développeur trop flou! quasi-impossible d'écrire du code en approche TDD par quel bout commencer? vertige de la page blanche pour le développeur Test First il faut des tests techniques unitaires très simples qui aboutissent au code il faut une conception simple
TDD est pourtant la technique la plus efficace TEST FIRST + REFACTORING =   conception simplifiée   0 bugs   intention du code très claire (relecture et correction facilitée)‏   100% de couverture de code par les tests =>FIABILITE  
  Qui veut tester ? Acceptance / PO  je veux le vérifier à l'écran Technique / DEV je veux le vérifier dans le code
Expliquez, explicitez
Ecrire façon Gherkin Story =>  Feature Scenario/Story Tests =>  Steps Business Redeable Domain Specific Language  ! http://wiki.github.com/aslakhellesoy/cucumber/gherkin
Ecrire les Critères d'Acceptation Story Test / BDD Scenario Given (And)‏ When (And)‏ Then (And)‏
Natural steps / des étapes naturelles BDD (Scenario)‏ Given When Then TDD Arrange Act Assert
le test manuel est immoral   http://blog.objectmentor.com/articles/2007/10/17/tdd-with-acceptance-tests-and-unit-tests
 
Agile Acceptance Test-Driven Development <=>   Requirements As Executable Tests
Automated   Executable  Tests  User  Acceptance Testing  (UAT)    http://en.wikipedia.org/wiki/List_of_GUI_testing_tools Selenium Watin.... ... Teste la V Teste l'intégration totale (repository, SGBDR, WS, services et systèmes tiers)‏   jouables dans  les  les Nightly Build Executable  Unit Testing  (EUT)‏   [Gerkin based] Fitness / Cucumber / Specflow / RSpec / Concordion... .... Teste le M+C Teste les BO Teste avec des Mocks   ... jouables dans tous les builds
mais il faut apprendre idée: prenez un coach ;)‏
A quoi cela ressemble? Acceptance GUI « Technical » Unit Test
Comment ca marche?
Comment ca marche?
Isolation Make it clear
Agile Strategy Brian Marick http://www.exampler.com/testing-com/agile/
Problèmes des Scénarios &quot;d'en bas&quot; écrits par les développeurs   trop techniques vision du développeur seulement pas assez proche des utilisateurs ne reflète pas forcement le produit final pas forcement en adéquation avec ce que veux le PO   ... mais elles sont nécessaires car elles sont l'implémentation qui marche!  ... et ils dirigent l'écriture du code
Problèmes des Scénarios &quot;d'en haut&quot;   écrits par le product owner   trop abstraits, pas assez détaillés parfois vision qui ne tient pas compte des possibilités/restrictions de la technique  pas assez proche du rendu du produit final pas forcement ce que peux faire le dev   ... mais ils sont une expression (ajustable) de ce que veux le client!
le haut et le bas toujours ensemble
Qui teste qui? les TU techniques vérifient-ils les TA? les steps techniques vérifient des règles qui sont explicitées dans les TA, mais aussi d'autres inventées par le dev   les TA vérifient-ils les TU? normalement le test d'intégration vérifie qu'en lancant les TA, les TU sont vérifiés mais seuls sont joués les STEPS d'acceptance comment garantir la complétude TA / TU ?
Quelques Conclusions  
EXPLICITER  POUR  TESTER  LE  COMPORTEMENT c'est lever l'ambiguité du langage ( « désambiguïsation  »)‏
les Tests sont les Specs BDD Behaviour = Comportement Spécifier le Comportement = cahier des charges   Acceptance = critère d'acceptation du comportement attendu
le TEST COMPORTEMENTALISTE  c'est maintenant et pour  TOUTE l'équipe ce n'est pas une affaire de gurus ou d'experts les outils sont là, gratuits et vite intégrés faites vous aider...
tester rend  HUMBLE
Questions?  
Definition of Done Everything is GREEEEEEN! (but first it needs to be RED)‏ TDD : 100% code coverage! ATDD : mesure manuelles :'( autres idées?
 
 

to Test or not to Test?

  • 1.
    BDD BDD BDDTDD BDD ATDD BDD AATDD BDD DDD BDD AUT BDD UET
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
    to talk effectivelywith our customers we need to learn and use their language
  • 8.
    William S. Burroughslanguage is a virus from outer space
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
    si les testsdirigent le projet...  
  • 15.
  • 16.
    TOP DOWN orBOTTOM UP? http://kinderman.net/articles/2007/11/18/testing-on-high-bottom-up-versus-top-down-test-driven-development  
  • 17.
    TDD top-down   <=> donne moi plus d'abstraction      TDD bottom-up < = > donne moi plus de contrôle Outside-In  < = >  rendez vous au point de convergence Middle-Out  < = >  partons du point de convergence
  • 18.
    Par quoi oncommence? MIDDLE-OUT en pratique le PO et le DEV se parlent ! http://www.slideshare.net/josephwilk/outsidein-development-with-cucumber-and-rspec   Business Readeable Domain Specific Language  ? http://martinfowler.com/bliki/BusinessReadableDSL.html
  • 19.
  • 20.
    largement insuffisant pourle développeur trop flou! quasi-impossible d'écrire du code en approche TDD par quel bout commencer? vertige de la page blanche pour le développeur Test First il faut des tests techniques unitaires très simples qui aboutissent au code il faut une conception simple
  • 21.
    TDD est pourtantla technique la plus efficace TEST FIRST + REFACTORING =   conception simplifiée   0 bugs   intention du code très claire (relecture et correction facilitée)‏   100% de couverture de code par les tests =>FIABILITE  
  • 22.
      Qui veuttester ? Acceptance / PO  je veux le vérifier à l'écran Technique / DEV je veux le vérifier dans le code
  • 23.
  • 24.
    Ecrire façon GherkinStory => Feature Scenario/Story Tests => Steps Business Redeable Domain Specific Language  ! http://wiki.github.com/aslakhellesoy/cucumber/gherkin
  • 25.
    Ecrire les Critèresd'Acceptation Story Test / BDD Scenario Given (And)‏ When (And)‏ Then (And)‏
  • 26.
    Natural steps / desétapes naturelles BDD (Scenario)‏ Given When Then TDD Arrange Act Assert
  • 27.
    le test manuelest immoral   http://blog.objectmentor.com/articles/2007/10/17/tdd-with-acceptance-tests-and-unit-tests
  • 28.
  • 29.
    Agile Acceptance Test-DrivenDevelopment <=>   Requirements As Executable Tests
  • 30.
    Automated Executable Tests  User Acceptance Testing (UAT)   http://en.wikipedia.org/wiki/List_of_GUI_testing_tools Selenium Watin.... ... Teste la V Teste l'intégration totale (repository, SGBDR, WS, services et systèmes tiers)‏   jouables dans les les Nightly Build Executable Unit Testing (EUT)‏   [Gerkin based] Fitness / Cucumber / Specflow / RSpec / Concordion... .... Teste le M+C Teste les BO Teste avec des Mocks   ... jouables dans tous les builds
  • 31.
    mais il fautapprendre idée: prenez un coach ;)‏
  • 32.
    A quoi celaressemble? Acceptance GUI « Technical » Unit Test
  • 33.
  • 34.
  • 35.
  • 36.
    Agile Strategy BrianMarick http://www.exampler.com/testing-com/agile/
  • 37.
    Problèmes des Scénarios&quot;d'en bas&quot; écrits par les développeurs   trop techniques vision du développeur seulement pas assez proche des utilisateurs ne reflète pas forcement le produit final pas forcement en adéquation avec ce que veux le PO   ... mais elles sont nécessaires car elles sont l'implémentation qui marche!  ... et ils dirigent l'écriture du code
  • 38.
    Problèmes des Scénarios&quot;d'en haut&quot;   écrits par le product owner   trop abstraits, pas assez détaillés parfois vision qui ne tient pas compte des possibilités/restrictions de la technique pas assez proche du rendu du produit final pas forcement ce que peux faire le dev   ... mais ils sont une expression (ajustable) de ce que veux le client!
  • 39.
    le haut etle bas toujours ensemble
  • 40.
    Qui teste qui?les TU techniques vérifient-ils les TA? les steps techniques vérifient des règles qui sont explicitées dans les TA, mais aussi d'autres inventées par le dev   les TA vérifient-ils les TU? normalement le test d'intégration vérifie qu'en lancant les TA, les TU sont vérifiés mais seuls sont joués les STEPS d'acceptance comment garantir la complétude TA / TU ?
  • 41.
  • 42.
    EXPLICITER POUR TESTER LE COMPORTEMENT c'est lever l'ambiguité du langage ( « désambiguïsation  »)‏
  • 43.
    les Tests sontles Specs BDD Behaviour = Comportement Spécifier le Comportement = cahier des charges   Acceptance = critère d'acceptation du comportement attendu
  • 44.
    le TEST COMPORTEMENTALISTE c'est maintenant et pour TOUTE l'équipe ce n'est pas une affaire de gurus ou d'experts les outils sont là, gratuits et vite intégrés faites vous aider...
  • 45.
  • 46.
  • 47.
    Definition of DoneEverything is GREEEEEEN! (but first it needs to be RED)‏ TDD : 100% code coverage! ATDD : mesure manuelles :'( autres idées?
  • 48.
  • 49.

Notes de l'éditeur

  • #5 est la meilleure
  • #6 et la pire des choses
  • #18 OUTISDE IN   cumule également les travers des deux approches , notamment en induisant un très fort risque d’effet tunnel. En effet, le point critique de cette démarche est l’étape d’accostage. MIDDLE OUT Par opposition à l’approche Outside In, cette méthode propose de commencer « In the middle », c’est-à-dire là où le métier et les IT parlent le même langage (ou en tout cas presque). Elle s’attaque donc d’emblée à ce qui reste un des principaux freins à l’adoption des BDD au sein des équipes françaises : La  compréhension du métier  par la Task Force  et inversement, la  compréhension des contraintes tech par le PO et stakeholder .
  • #40 faire se rencontrer le haut et le bas User Stories made by the dev team the product owner How they can converge?