Origines et objectifs du BDD
- Prolonger et améliorer le Test-Driven Development (TDD) avec le BDD.
- Réduire le gâchis.
- Raccourcir le temps de mise à disposition.
- La feature, la glue et le test d’acceptation exécutable.
- Quand utiliser BDD et quand ne pas l’utiliser.
Démonstration
Outillage BDD
- L’expression des features et des exemples : Gherkin.
- Les tests exécutables : Cucumber.
- L’automatisation des tests : JUnit.
- Support dans les IDE et les outils de Build.
Travaux pratiques
Mise en œuvre du BDD avec Gherkin, Cucumber et JUnit.
Syntaxe Gherkin
- Feature/scénario.
- Background.
- Patterns et anti-patterns.
- Utilisation de tables dans un scénario.
- Utilisation de scénarios paramétrés.
- Annoter avec des tags.
- Organiser ses features.
Travaux pratiques
rédiger des scénarios Gherkin simples.
Aller plus loin avec Gherkin
- Définir son propre Domain Specific Language.
- Écrire ses features dans sa langue.
Travaux pratiques
Création d'un Domain Specific Language (DSL) pour une application d'e-commerce.
Organisation du travail en équipe
- Le trio BA – Dév – Q/A.
- Rédaction des exemples.
- Création des glues.
- Relecture et validation par le product owner.
Travaux pratiques
Optimisation d'un processus de collaboration.
Les glues en détail
- Écriture des glues avec Cucumber.
- Utiliser les Cucumber expressions.
- Utiliser les expressions rationnelles.
- Scénario stateful.
- Prendre en charge plusieurs assertions.
Travaux pratiques
Mise en pratique et analyse des glues dans Cucumber.
Définir les exigences avec BDD
- Définir les features et les stories.
- Illustrer avec des exemples.
- Découper les stories pour gagner en compréhension.
Travaux pratiques
Définir et découper des stories BDD pour une application d'e-commerce.
Documentation vivante
- Rôle de la documentation.
- Reporting sur l’avancement.
- Definition of Done.
Travaux pratiques
Mise en place d'une documentation vivante et collaborative pour un projet BDD.