Slide 1

Slide 1 text

& FÉLIX-ANTOINE BOURBONNAIS B.ING., M.SC, PSM Agile Tour Québec 2017 Le BDD: Une conversation pour découvrir et spécifier les besoins d’affaires PASCAL ROY ING., CSM, PSM, PMP

Slide 2

Slide 2 text

Diapositives et références http://conferences.elapsetech.com/bdd-spec-affaires/ Cette présentation s’adresse à un public débutant désirant s’initier au BDD.

Slide 3

Slide 3 text

Le BDD n’est pas une technique de test

Slide 4

Slide 4 text

Le BDD peut être fait sans outils comme Cucumber, SpecFlow, etc.

Slide 5

Slide 5 text

Le BDD est un processus pour découvrir, spécifier et documenter les requis d’affaires

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

Cadre de la conférence Public cible Cette présentation s’adresse à un public débutant désirant s’initier au BDD. Nos objectifs • Comprendre (survol) ce qu’est le BDD et pouvoir continuer à explorer le sujet • Le BDD n’est pas une technique de test • Le BDD est une approche pour la découverte et la spécification

Slide 8

Slide 8 text

8 Qui sommes-nous ? Pascal Roy Ing., PSM, CSM, PMP Félix-Antoine Bourbonnais B.ing., PSM, M.Sc.

Slide 9

Slide 9 text

Formations Mentorat Diagnostics Conférences

Slide 10

Slide 10 text

Conférenciers Formateurs Mentors & coaches Tech. Équipe & Affaires Gestion TDD Architecture évolutive Essais automatisés DDD … Scrum QA Agile Gestion de projets BDD > Nous sommes Conseils stratégiques > Spécialités Agilité

Slide 11

Slide 11 text

Quels sont les défis typiques concernant la documentation ?

Slide 12

Slide 12 text

> Transmission et distorsion de l’information Passage de documents souvent sans explications et contexte > Interprétations différentes Impossibilité de transmettre directement un modèle mental > Documentation pas à jour Quelle est la quantité réaliste que l’on pourra garder à jour? > La qualité ≠ la quantité Plus de texte ≠ plus clair Problèmes concernant la documentation

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

Est-ce que je produis la bonne chose? (« Building the right thing ») 14

Slide 15

Slide 15 text

BDD : « Behavior-Driven Development » BDD ?!? 15

Slide 16

Slide 16 text

16 Un processus pour comportement souhaité d’un système le Explorer Découvrir Spécifier Piloter

Slide 17

Slide 17 text

Comportement (« behavior ») * Système au sens large et peut englober plusieurs systèmes « physiques » ou applications dans certains cas. Comportement ?!? 17 Contexte Action Conséquence (« outcome »)

Slide 18

Slide 18 text

18 Explorer Découvrir Spécifier Piloter le développement avec des tests automatisés et piloter une spécification exécutable = la conversation et des exemples concrets utilisant une compréhension commune du problème pour forger

Slide 19

Slide 19 text

Les ingrédients BDD + = Spécification par l’exemple 1 Automatisation des scénarios en tests 2 Conversations ∀

Slide 20

Slide 20 text

Tests Fonctionne comme prévu? + vérifie et valide le développement BDD Bon comportement/produit? + guide le développement BDD versus Tests

Slide 21

Slide 21 text

Il était une fois… Sprint courant Sprint -1 Story 4 • Alice --> Propriétaire du produit • Jean --> Assurance qualité • Bob --> Développeur • La Story 4 devrait être réalisée dans le prochain sprint Explorons la Story 4… • Sa portée • Ses critères d’acceptation et règles d’affaires • Etc.

Slide 22

Slide 22 text

1

Slide 23

Slide 23 text

Où ? Découverte

Slide 24

Slide 24 text

Atelier de découverte Atelier de découverte … plus de… … plus petites … Compréhension commune Règles d’affaires (critères d’acceptation) Questions Exemples (scénarios) Story / Fonctionnalité

Slide 25

Slide 25 text

Qui ? Découverte

Slide 26

Slide 26 text

3 Amigos 26 Affaires / Produit - Valeur – Dev / Ops / … - Faisabilité – QA / UX – Utilisabilité & détails –

Slide 27

Slide 27 text

3 Amigos ≠ 3 personnes 27

Slide 28

Slide 28 text

28 Affaires A le contexte, le pourquoi et connaît la valeur. QA / UX Pense naturellement aux détails et à l’utilisabilité Dev & Ops Pense à la faisabilité et aux aspects techniques et à la complexité

Slide 29

Slide 29 text

Comment ? Découverte

Slide 30

Slide 30 text

User Story / Fonctionnalité • Règles d’affaires; et/ou • Critères d’acceptation; • Conditions de succès Mais avons-nous compris la même chose ? Est-ce que ça veut dire X ou Y ? décrite par

Slide 31

Slide 31 text

BDD centré autour Des conversations

Slide 32

Slide 32 text

J’ai écrit mes « BDDs » Voici les scénarios

Slide 33

Slide 33 text

Le BDD permet à l’équipe de découvrir et s’approprier la spécification Voici les scénarios

Slide 34

Slide 34 text

Donne-moi un exemple! 34

Slide 35

Slide 35 text

On utilise des exemples pour communiquer et découvrir les règles.

Slide 36

Slide 36 text

Déroulement Exemple Et si.. Dans ce cas… Questions sous forme d’exemples

Slide 37

Slide 37 text

Ainsi, on valide que tous ont la même compréhension et qu’il ne manque pas de règles importantes.

Slide 38

Slide 38 text

Pour une activité ludique sur l’interprétation des règles à faire avec votre équipe: https://www.slideshare.net/Reloaddk/bdd-how-to-solve- communication-problems

Slide 39

Slide 39 text

Le principe 39 Scénario (exemple) Règle / Critère illustre

Slide 40

Slide 40 text

Concrètement ? Découverte

Slide 41

Slide 41 text

Limite quotidienne de retrait Si limite=1000 Et déjà retrait =500 le 7 Nov. Montant=500 le 7 Nov. ->OK Si limite=1000 Et déjà retrait =500 le 7 Nov. Montant=501 le 7 Nov. ->Refusé Si limite=1000 Et déjà retrait =500 le 7 Nov. 23h59 Montant=501 le 8 Nov. 00h01 ->????? Story: Retirer au guichet

Slide 42

Slide 42 text

Limite quotidienne de retrait Si limite=1000 Et déjà retrait =500 le 7 Nov. 13h00 Montant=500 le 7 Nov. 14h00 ->OK Si limite=1000 Et déjà retrait =500 le 7 Nov. 13h00 Montant=501 le 7 Nov. 14h00 ->Refusé Si limite=1000 Et déjà retrait =500 le 7 Nov. 23h59 Montant=501 le 8 Nov. 00h01 ->Refusé Si limite=1000 Et déjà retrait =500 le 7 Nov. 23h59 Montant=501 le 9 Nov. 00h00 ->OK Story: Retirer au guichet Autre règle Exemple 1 …

Slide 43

Slide 43 text

Il existe des activités pour mener les ateliers (ex.: Example Mapping, Feature Mapping, …)

Slide 44

Slide 44 text

Activité: « Example Mapping » Fonctionnalité / Story Règle Exemple Questions à valider Nouvelle Story Nouvelle Story Règle Règle Exemple Exemple Exemple Exemple Exemple

Slide 45

Slide 45 text

Démonstration Example Mapping Story: Retirer au guichet Doit avoir assez de fonds Par tranche de 20$ Limite quotidienne Si carte 123 est bloquée Et j’essaie de retirer ???? 20$ -> OK 21$ -> Err 40$ -> OK 1000$ @ 13h 1$ @ 14h  Non 1000$ @ 13h le 7 1$ @ 13h le 8 -> OK 1000$ @ 23h59 1$ @ 00h01 -> NON … … Distribution $$ exclue Déjà authentifié Limites (scope):

Slide 46

Slide 46 text

Pour en savoir plus sur l’Example Mapping https://cucumber.io/blog/2015/12/08 /example-mapping-introduction

Slide 47

Slide 47 text

2

Slide 48

Slide 48 text

Quand ? Qui ? Spécification

Slide 49

Slide 49 text

fnc.feature Déroulement Scénarios Découvrir 1 Atelier de découverte Exemple Spécifier 2 Description du contexte - Règle - Règle

Slide 50

Slide 50 text

1. Prendre les règles et les exemples trouvés lors de la découverte 2. Mettre au propre (pas en groupe!) --> Spécification 3. L’équipe s’entend sur le comportement Écrire la spécification

Slide 51

Slide 51 text

Sous quel format? Spécification

Slide 52

Slide 52 text

Des exemples sous différentes formes!

Slide 53

Slide 53 text

On utilise généralement le Gherkin : un langage simple et textuel

Slide 54

Slide 54 text

Comportement (« Behavior”) Le Gherkin 54 Contexte Action Conséquence (« Outcome”) Étant donné (« Given ») Quand (« When ») Alors (« Then »)

Slide 55

Slide 55 text

Des exemples concrets 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 le solde du compte est de 200$ Gherkin

Slide 56

Slide 56 text

Scénario Gherkin versus tests Test: Retirer avec un solde suffisant 1. Se connecter avec compte ‘C37362’ 2. Aller dans les opérations > Retrait 3. Faire un retrait de 400$ 4. => un message montre que c’est accepté 5. Aller dans le sommaire 6. => Le solde doit être de 200$ 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 le solde du compte est de 200$ Impératif Étapes --> Actions Déclaratif Étapes --> Comportements

Slide 57

Slide 57 text

« Feature File »

Slide 58

Slide 58 text

Nos fonctionnalités composées de règles et de scénarios constituent maintenant une documentation

Slide 59

Slide 59 text

3

Slide 60

Slide 60 text

Déroulement Découvrir 1 Atelier de découverte Exemple Spécifier 2 fnc.feature Scénarios Description du contexte - Règle - Règle 1 2 3 TDD Piloter 3

Slide 61

Slide 61 text

Piloter Fonctionnalité Code Tests automatisés Avancement

Slide 62

Slide 62 text

Image du rapport: http://blog.jonasbandi.net/2010/03/classifying-bdd-tools-unit-test-driven.html Automatisation des tests Feature: Scenario: … Given … When … Then .. Scenario: ... Automatisation

Slide 63

Slide 63 text

Spécification (exemple) Documentation vivante exécutable + = Règles (critères d’acceptation) Résultat des tests +

Slide 64

Slide 64 text

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 &

Slide 65

Slide 65 text

Tests fonctionnels automatisés ≠ Tests bout-en-bout via l’interface et la BD

Slide 66

Slide 66 text

Image par Gamma-Ray Productions sur Flickr Attention en automatisant ! % du portfolio de tests auto. Large (L) Moyen (M) Petit (S) ~10% ~20% ~70% Bout-en-bout Toutes composantes Une ou quelques classes Une composante intégrée Fragilité des tests

Slide 67

Slide 67 text

No content

Slide 68

Slide 68 text

En résumé… 68 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…

Slide 69

Slide 69 text

Cynefin Framework Quand utiliser ou ne pas utiliser le BDD? 69 Simple Compliqué Complexe Chaos

Slide 70

Slide 70 text

Le BDD est particulièrement utile pour découvrir et spécifier des règles impliquant de la logique d’affaires complexe

Slide 71

Slide 71 text

merci .

Slide 72

Slide 72 text

Site elapsetech.com Twitter @fbourbonnais Courriel [email protected] [email protected] conferences.elapsetech.com Toutes nos présentations conferences.elapsetech.com /bdd-spec-affaires Diapositives et références Félix-Antoine Bourbonnais Pascal Roy @

Slide 73

Slide 73 text

No content

Slide 74

Slide 74 text

Découpage vers une fonctionnalité Vision Objectifs d'affaires Capacités Fonctionnalités Stories Règles d'affaires / COS Scénarios / Exemples Code Pourquoi ? Comment ? Quoi ?

Slide 75

Slide 75 text

Quand et où dans mon processus de développement? Pourquoi ? Comment ? Temps Objectifs d’affaires Activités de l’utilisateur Fonctionnalité Capacités Stories Règles Scénarios Tests & Code

Slide 76

Slide 76 text

76 Sprint courant Story A ✔️✔️✔️✔️ + Exemple 1 + 2+3 Story B ✔️✔️✔️✔️ Story C ✔️✔️✔️✔️ Story X ✔️ ? ✔️ ? + Exemple 1 + 2+3 + Exemple 1 + 2+3 + Exemple 1 + ?? Story Z ✔️ ? ✔️ ? Story ?? Temps Sprint -1 Sprint -2 Sprint N