Iut agile lyon   20 nov. 2013 - bdd
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Iut agile lyon 20 nov. 2013 - bdd

on

  • 414 views

 

Statistics

Views

Total Views
414
Views on SlideShare
409
Embed Views
5

Actions

Likes
0
Downloads
7
Comments
0

1 Embed 5

https://twitter.com 5

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Iut agile lyon 20 nov. 2013 - bdd Presentation Transcript

  • 1. Behaviour-Driven Development IUT Agile Lyon - 20 nov. 2013 @agnes_crepet @AlfredAlmendra
  • 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. Alfred Almendra @AlfredAlmendra alfred.almendra@gmail.com Freelance Scrum Master Coach agile Développeur Java CARA Lyon
  • 4. Acronymes
  • 5. Spécification par l’exemple Spécification exécutable
  • 6. BDD : origine(s) TDD Test Driven Development
  • 7. BDD : origine(s) USDD User Story Driven Development
  • 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. 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. BDD : origine(s) DDD Domain Driven Design
  • 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. 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. BDD : quoi ? Point de vue des utilisateurs finaux O: EM MAN D S AFT N CR PLA
  • 14. BDD : quoi ? Boîte noire Aux frontières du système On ne décrit pas le comment
  • 15. BDD : quoi ? Décrire le comportement et non pas le fonctionnement
  • 16. BDD : quoi ? Langage commun Ubiquitous language de DDD
  • 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. Exemple avec should →
  • 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. BDD : quand ? Découper Coder Démontrer Estimer Préciser Utiliser S’engager
  • 21. BDD From Scratch Comment démarrer de zéro ? Spec Code Test
  • 22. RAD : Rapid Application Development IHM Métier BdD Fake 1 Make Make Make Fake Make Exploration & émergence ⇒ refactoring 2
  • 23. Double loop TDD Acceptance Test loop Unit Test loops Fail Refactor Pass
  • 24. Maintenance BDD Versionning des spécifications Refactoring des spécifications Poser les bonnes questions Etude d’impact Expérimentation d’alternatives ?
  • 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. 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. As a conclusion...
  • 28. Ressources Un exemple BDD avec cucumber-JVM: https://github.com/acrepet/craftsmanplan Le blog de Dan North: http://dannorth.net