Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

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.

Félix-Antoine Bourbonnais

November 13, 2015
Tweet

More Decks by Félix-Antoine Bourbonnais

Other Decks in Programming

Transcript

  1. & 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
  2. Nous voulons vous introduire au BDD comme technique d’analyse pour

    la découverte et la spécification des besoins. Pourquoi cette présentation ?
  3. 4 4 Qui sommes-nous ? Pascal Roy Ing., PSM, CSM,

    PMP Félix-Antoine Bourbonnais B.ing., PSM, M.Sc.
  4. 5

  5. C’est quoi le problème ? Image de Patrick Bell from

    Haddonfield, NJ, USA - new 6-5-06 064
  6. 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) Pilote Pilote Vision, objectifs et capacité Atelier de découverte (3 amigos)
  7. 14 14 Affaires (Problème) QA Dev (Solution) Tous savent quoi

    faire et pourquoi ! BDD : Établir un langage commun!!!
  8. 16 Le BDD dans Scrum Backlog de produit Backlog de

    sprint Planification de livraison Planification de sprint Incrément Livrable Revue 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 Exemple Exemple
  9. 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
  10. 20 Voir 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
  11. 21 BDD Les ingrédients BDD + = Spécification par l’exemple

    1 Automatisation des scénarios en tests 2 Conversations ∀
  12. 1

  13. 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
  14. 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
  15. 25 En résumé Spécification par l’exemple Fonctionnalité / Story Règle

    (critère / COS) Règle (critère / COS) Exemple Exemple Exemple Exemple Exemple Exemple Questions à valider Nouvelle Story Nouvelle Story Spécification & documentation
  16. Il n’y a rien de mieux qu’un exemple pour être

    certain de se comprendre et trouver les cas manquants…
  17. 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
  18. 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
  19. 3 Amigos Affaires (produit) QA / Tests Avec nos 3

    Amigos Développement & opérations Conversations PO
  20. 2

  21. Bien que fortement recommandée, le BDD a de la valeur

    sans l’automatisation… +++ Collaboration & langage commun!!! Automatisation des tests nécessaire?
  22. 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 &
  23. 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…
  24. 41 Suite… Fonctionnalité VS Story Planification VS documentation Ça vous

    intéresse? Demandez cette conférence @elapsetech
  25. 43 Merci Notre site elapsetech.com Notre blogue developpementagile.com Nos Twitter

    @fbourbonnais | @elapsetech Nos courriels [email protected] [email protected] Nos LinkedIn linkedin.com/in/fbourbonnais/fr ca.linkedin.com/in/roypa conferences.elapsetech.com /bdd-plus-que-tests Diapositives seront disponibles…
  26. 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)
  27. • « 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