Iut agile lyon 20 nov. 2013 - bdd

1 015 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 015
Sur SlideShare
0
Issues des intégrations
0
Intégrations
12
Actions
Partages
0
Téléchargements
18
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Iut agile lyon 20 nov. 2013 - bdd

  1. 1. Behaviour-Driven Development IUT Agile Lyon - 20 nov. 2013 @agnes_crepet @AlfredAlmendra
  2. 2. Agnès CREPET @agnes_Crepet agnes@ninja-squad.com Java/JEE Architecte & Java Champion Laboratoires Boiron Ninja Squad Java User Groups Leader: Duchess France LyonJUG Co-fondatrice de la conférence
  3. 3. Alfred Almendra @AlfredAlmendra alfred.almendra@gmail.com Freelance Scrum Master Coach agile Développeur Java CARA Lyon
  4. 4. Acronymes
  5. 5. Spécification par l’exemple Spécification exécutable
  6. 6. BDD : origine(s) TDD Test Driven Development
  7. 7. BDD : origine(s) USDD User Story Driven Development
  8. 8. BDD vs TDD BDD parle un langage du métier, écrit en texte TDD parle un langage technique, écrit en code Complémentaires et non en conflit !
  9. 9. BDD vs ATDD ATDD est un paradigme générique d’ automatisation des tests d’acceptation BDD permet d’automatiser les tests, en mettant l’accent sur la communication
  10. 10. BDD : origine(s) DDD Domain Driven Design
  11. 11. BDD : origine(s) Automatiser les tests d’acceptation Tester c’est décrire le comportement Un langage universel c’est la clef Toute exigence deviendra un comportement Dan North
  12. 12. BDD : pourquoi ? quels bénéfices ? Couverture des tests fonctionnels Non régression Acceptation du produit Etude d’impact Validation du but de l’itération Démo réussie Critère DONE Visibilité sur l’avancement
  13. 13. BDD : quoi ? Point de vue des utilisateurs finaux O: EM MAN D S AFT N CR PLA
  14. 14. BDD : quoi ? Boîte noire Aux frontières du système On ne décrit pas le comment
  15. 15. BDD : quoi ? Décrire le comportement et non pas le fonctionnement
  16. 16. BDD : quoi ? Langage commun Ubiquitous language de DDD
  17. 17. BDD : clés de la réussite Intégration continue Point de vue de l’utilisateur Collaboration Découpage priorisation cycle itératif et incrémental Test First !
  18. 18. Exemple avec should →
  19. 19. Exemple avec Gherkin Given the distance max is 50 km per day And I meet M John on “20/11/13” 10 km away And I meet Ms Shelp on “20/11/13” 12 km away When I try to meet M Bob on “20/11/13” 8 km away Then I still have only 2 appointements on “20/11/13” Structure de test → 1 méthode par step
  20. 20. BDD : quand ? Découper Coder Démontrer Estimer Préciser Utiliser S’engager
  21. 21. BDD From Scratch Comment démarrer de zéro ? Spec Code Test
  22. 22. RAD : Rapid Application Development IHM Métier BdD Fake 1 Make Make Make Fake Make Exploration & émergence ⇒ refactoring 2
  23. 23. Double loop TDD Acceptance Test loop Unit Test loops Fail Refactor Pass
  24. 24. Maintenance BDD Versionning des spécifications Refactoring des spécifications Poser les bonnes questions Etude d’impact Expérimentation d’alternatives ?
  25. 25. BDD sur du legacy Legacy = non testé (automatiquement !) On ajoute du BDD sur une application existante → Non intrusif Une nouvelle partie fonctionnelle : ok (serein) Une adaptation : impact ? effets de bords ? Une refonte : couverture en tests fonctionnels ?
  26. 26. Retours terrain Pas à pas : User Story, scénario d’acceptation Test First : discipline, paradigme Test ? scénario, méthode, exécution, step Gherkin : pas pour le métier, dur pour l’analyste Structuration d’un scénario en français : ok Ne remplace pas : tests “après”, recette intégrée
  27. 27. As a conclusion...
  28. 28. Ressources Un exemple BDD avec cucumber-JVM: https://github.com/acrepet/craftsmanplan Le blog de Dan North: http://dannorth.net

×