&
FÉLIX-ANTOINE
BOURBONNAIS
B.ING., M.SC, PSM
Agile Tour Montréal 2015
Novembre 2015
Le BDD: bien plus qu’une
technique de test!
PASCAL ROY
ING., CSM, PSM, PMP
Nous voulons vous introduire au BDD comme
technique d’analyse pour la découverte et la
spécification des besoins.
Pourquoi cette présentation ?
4 4
Qui sommes-nous ?
Pascal Roy
Ing., PSM, CSM, PMP
Félix-Antoine Bourbonnais
B.ing., PSM, M.Sc.
5
6
AGILE
Coach
Mentor
Formateur TECH
ÉQUIPE
Gestion
C’est quoi le problème ?
Image de Patrick Bell from Haddonfield, NJ, USA - new 6-5-06 064
C’est quoi le problème ? Bâtir le bon produit…
Image http://projectcartoon.com/
BDD :
Behavior-Driven Development
BDD ?!?
Le BDD est un
processus
Découvrir Spécifier Piloter
BDD
Un processus pour…
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 14
Affaires
(Problème)
QA
Dev
(Solution)
Tous savent quoi faire et pourquoi !
BDD : Établir un langage
commun!!!
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
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
BDD = Conversations !
BDD
Mot clé
20Voir http://agileotter.blogspot.ca/2015/05/writing-bdds-good-lord-no.html
Erreur!
J’ai écrit
mes
« BDDs »
On pratique le BDD pour
découvrir les besoins et se
comprendre….
BDD != Tests
21
BDD
Les ingrédients
BDD
+
=
Spécification par
l’exemple1
Automatisation des
scénarios en tests2
Conversations∀
1
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
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
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
26
Des exemples
sous différentes formes!
Spécification par
l’exemple
Il n’y a rien de mieux qu’un exemple pour être
certain de se comprendre et trouver les cas
manquants…
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
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
3 Amigos
Affaires
(produit)
QA / Tests
Avec nos 3 Amigos
Développement
& opérations
Conversations
PO
2
33
La spécification (exemples) pilote la réalisation…
Bien que fortement recommandée, le BDD a de
la valeur sans l’automatisation…
+++ Collaboration & langage commun!!!
Automatisation des tests nécessaire?
… mais votre spécification ne
sera pas vivante
∞
37
Spécification
(exemple)
Documentation
vivante
+
=
Règles
(critères
d’acceptation)
Résultat des
tests
+
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
&
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
Suite…
Fonctionnalité
VS Story
Planification VS
documentation
Ça vous
intéresse?
Demandez cette
conférence
@elapsetech
Merci .
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…
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)
Une documentation vivante!
• « 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

Le BDD est bien plus qu’une technique de test!