Behaviour-Driven
Development
IUT Agile Lyon - 20 nov. 2013
@agnes_crepet
@AlfredAlmendra
Agnès CREPET
@agnes_Crepet
agnes@ninja-squad.com

Java/JEE Architecte & Java Champion
Laboratoires Boiron
Ninja Squad
Java...
Alfred Almendra
@AlfredAlmendra
alfred.almendra@gmail.com

Freelance
Scrum Master
Coach agile
Développeur Java
CARA Lyon
Acronymes
Spécification par l’exemple

Spécification exécutable
BDD : origine(s)

TDD
Test Driven Development
BDD : origine(s)

USDD
User Story Driven Development
BDD vs TDD
BDD parle un langage du métier, écrit en texte
TDD parle un langage technique, écrit en code
Complémentaires et...
BDD vs ATDD
ATDD est un paradigme générique d’
automatisation des tests d’acceptation
BDD permet d’automatiser les tests, ...
BDD : origine(s)

DDD
Domain Driven Design
BDD : origine(s)
Automatiser les tests
d’acceptation

Tester c’est
décrire le
comportement

Un langage
universel c’est la
...
BDD : pourquoi ? quels bénéfices ?
Couverture des tests fonctionnels
Non régression

Acceptation du produit

Etude d’impac...
BDD : quoi ?
Point de vue des utilisateurs finaux

O:
EM MAN
D
S
AFT N
CR PLA
BDD : quoi ?
Boîte noire
Aux frontières
du système
On ne décrit pas
le comment
BDD : quoi ?
Décrire le comportement
et non pas le fonctionnement
BDD : quoi ?
Langage commun
Ubiquitous language
de DDD
BDD : clés de la réussite

Intégration
continue

Point de vue
de l’utilisateur
Collaboration

Découpage
priorisation
cycle...
Exemple avec should

→
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 Shel...
BDD : quand ?
Découper

Coder

Démontrer

Estimer

Préciser

Utiliser

S’engager
BDD From Scratch
Comment démarrer de zéro ?

Spec

Code

Test
RAD : Rapid Application Development
IHM
Métier
BdD

Fake
1

Make

Make

Make

Fake

Make

Exploration & émergence ⇒ refact...
Double loop TDD
Acceptance Test loop

Unit Test loops

Fail

Refactor

Pass
Maintenance BDD
Versionning des spécifications
Refactoring des spécifications
Poser les bonnes questions
Etude d’impact
Ex...
BDD sur du legacy
Legacy = non testé (automatiquement !)
On ajoute du BDD sur une application existante
→ Non intrusif
Une...
Retours terrain
Pas à pas : User Story, scénario d’acceptation
Test First : discipline, paradigme
Test ? scénario, méthode...
As a conclusion...
Ressources
Un exemple BDD avec cucumber-JVM:
https://github.com/acrepet/craftsmanplan

Le blog de Dan North:
http://dannor...
Iut agile lyon   20 nov. 2013 - bdd
Iut agile lyon   20 nov. 2013 - bdd
Iut agile lyon   20 nov. 2013 - bdd
Upcoming SlideShare
Loading in...5
×

Iut agile lyon 20 nov. 2013 - bdd

564

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
564
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
16
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×