La spécification des besoins et le niveau de détails dans vos User Stories est difficile pour votre équipe Agile? Nous croyons que le BDD est le fil conducteur, voire le catalyseur permettant à tous les acteurs de collaborer pour produire plus de valeur.
Le BDD est un processus rassembleur permettant d’impliquer analystes, gens d’affaires, QA et développeurs autour d’une compréhension commune d’une fonctionnalité.
Fondé sur la conversation et l’exemple, il guide le développement, permet d’en découler les tests et sert de documentation fonctionnelle vivante!
À l’aide d’exemples concrets et de cas vécus, nous vous présenterons le processus complet du BDD, de la capture des besoins (spécification par l’exemple) jusqu’aux tests, en passant par la documentation fonctionnelle. Nous verrons pourquoi le BDD n’est pas en soi une technique de test et qu’il va bien au-delà d’une simple notation (Given-When-Then).
Nous verrons comment le BDD peut aider à aligner une fonctionnalité sur un besoin d’affaires réel, voire sur la vision d’entreprise. Nous aborderons aussi la différence entre une “User Story” et une “Fonctionnalité” et comment incorporer le BDD dans un processus Scrum.
12. 13
Le processus BDD (simplifié)
PO + analystes
1. Discuter et établir
les besoins d’affaires
2. Découvrir et
spécifier le besoin
3a.
Réaliser la fonctionnalité
(basé sur les scénarios)
3b.
Tester la fonctionnalité
(basé sur les scénarios)
Les scénarios
servent de
documentation
et de mesure du
progrès
Fonctionnalité
+ Règles
+ Scénarios
Rapports de tests
(avancement)
PilotePilote
Vision, objectifs
et capacité
Atelier de
découverte
(3 amigos)
14. 16
Le BDD dans Scrum
Backlog de
produit
Backlog de
sprint
Planification de
livraison
Planification de
sprint
Incrément
LivrableRevue de sprint
Rétro de sprint
Sprint
Mêlée
Story
Mapping
Découvrir Spécifier
Exemple
Atelier de
découverte
Piloter
Automatisation
des scénarios
Scénarios
Example
Mapping
Fonctionnalités
+ règles
ExempleExemple
15. Quand utiliser le BDD?
"Cynefin as of 1st June 2014" by Snowded - Own work. Licensed under CC BY-SA 3.0 via Commons -
https://commons.wikimedia.org/wiki/File:Cynefin_as_of_1st_June_2014.png#/media/File:Cynefin_as_of_1st_June_2014.png
BDD
21. 23
Démonstration
Example Mapping
Story:
Retirer deS $$ au
guichet
Doit avoir
assez de fonds
Par tranche
de 20$
Si refus
-> message +fin
Limite
Retirer l’Argent du
compte
Si erroné
-> message + réessai
(Q) Autre
Story?
20$ -> OK
21$ -> Err
40$ -> OK
…
Si limite=1000
Montant=20
->OK
Si limite=1000
Montant=1000
->OK
Si limite=1000
& tx AUJ de 980
Montant=1000
->Refusé
…
…
Distribution $$
exclue
Déjà
authentifié
Limites (scope):
quotidienne
22. 24
Des exemples concrets
Spécification par
l’exemple
Scénario: Retirer avec un solde suffisant
Étant donné un compte avec 600$
Quand je fais un retrait de 400$
Alors le retrait est autorisé
Et l’argent est retiré du compte
23. 25
En résumé
Spécification par
l’exemple
Fonctionnalité / Story
Règle
(critère / COS)
Règle
(critère / COS)
ExempleExempleExemple
ExempleExempleExemple
Questions à
valider
Nouvelle StoryNouvelle Story
Spécification &
documentation
25. Il n’y a rien de mieux qu’un exemple pour être
certain de se comprendre et trouver les cas
manquants…
26.
27. Votre Story n’est que la pointe de l’iceberg…
Règles d’affaires
(critères d’acceptation)
Questions
Exemples
Story
Nouvelles
stories
Plus petites
stories
28. 30
Atelier de découverte Conversations
Atelier de découverte
Pas de tests
??
… plus de…
… plus petites …
Compréhension
commune
Règles d’affaires
(critères d’acceptation)
Questions
Exemples
Stories
32. Bien que fortement recommandée, le BDD a de
la valeur sans l’automatisation…
+++ Collaboration & langage commun!!!
Automatisation des tests nécessaire?
36. 38
Scénario
Étant donné un scénario
Quand nous l’avons
Alors il est le point rassembleur
Un scénario pour tous!
Spécification
Tests automatisés
Documentation
< Livraison
&
37.
38. 40
En résumé…
1
En découvrant ensemble les scénarios et les règles, nous
bâtissons une compréhension commune et forte.
2
Les scénarios servent d’exemples pour piloter le
développement.
3
Les scénarios sont attachés à des tests automatisés qui
démontrent l’avancement et préviennent la régression
4
Les scénarios et règles documentent la fonctionnalité de
manière permanente et vivante…
41. 43
Merci
Notre site
elapsetech.com
Notre blogue
developpementagile.com
Nos Twitter
@fbourbonnais | @elapsetech
Nos courriels
fbourbonnais@elapsetech.com
pascalroy@elapsetech.com
Nos LinkedIn
linkedin.com/in/fbourbonnais/fr
ca.linkedin.com/in/roypa
conferences.elapsetech.com
/bdd-plus-que-tests
Diapositives seront disponibles…
42.
43. 45
Automatisation
Scenario: Carte inconnue
Étant donné une demande valide
Et aucun compte associé à la carte
Quand la demande est traitée
Alors la demande est refusée
Feature: Analyser en fonction du compte client
Règles:
- Une carte inconnue est refusée
- Une carte expirée est refusée (le mois courant est accepté)
- Aucune transaction n'est créée en cas de refus
demande =
uneDemande().estValide().build()
compteRepository.clear()
demandesService.traiter(demande)
assertFalse(demande.approvee)
45. • « One large US Investment bank runs around 3000 automated
Cucumber scenarios several times a day, validating 30
applications and components. They have over 500 people
from both business and IT involved in BDD and Cucumber
executable specifications. »
• « SGCIB runs 400 scenarios in 20-30 minutes, and their team
consists of 6 BAs, 60-70 developers and a single QA person. »
• Etc.
-- Aslak Hellesøy BDD in the Finance Sector
https://cucumber.io/blog/2015/07/01/bdd-in-the-financial-sector
Ça peut fonctionner à large échelle?
47