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

    View Slide

  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 ?

    View Slide

  3. View Slide

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

    View Slide

  5. 5

    View Slide

  6. 6
    AGILE
    Coach
    Mentor
    Formateur TECH
    ÉQUIPE
    Gestion

    View Slide

  7. C’est quoi le problème ?
    Image de Patrick Bell from Haddonfield, NJ, USA - new 6-5-06 064

    View Slide

  8. C’est quoi le problème ? Bâtir le bon produit…
    Image http://projectcartoon.com/

    View Slide

  9. BDD :
    Behavior-Driven Development
    BDD ?!?

    View Slide

  10. Le BDD est un
    processus

    View Slide

  11. Découvrir Spécifier Piloter
    BDD
    Un processus pour…

    View Slide

  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)
    Pilote
    Pilote
    Vision, objectifs
    et capacité
    Atelier de
    découverte
    (3 amigos)

    View Slide

  13. 14 14
    Affaires
    (Problème)
    QA
    Dev
    (Solution)
    Tous savent quoi faire et pourquoi !
    BDD : Établir un langage
    commun!!!

    View Slide

  14. 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

    View Slide

  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

    View Slide

  16. View Slide

  17. BDD = Conversations !
    BDD
    Mot clé

    View Slide

  18. 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

    View Slide

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

    View Slide

  20. 1

    View Slide

  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

    View Slide

  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

    View Slide

  23. 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

    View Slide

  24. 26
    Des exemples
    sous différentes formes!
    Spécification par
    l’exemple

    View Slide

  25. Il n’y a rien de mieux qu’un exemple pour être
    certain de se comprendre et trouver les cas
    manquants…

    View Slide

  26. View Slide

  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

    View Slide

  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

    View Slide

  29. 3 Amigos
    Affaires
    (produit)
    QA / Tests
    Avec nos 3 Amigos
    Développement
    & opérations
    Conversations
    PO

    View Slide

  30. 2

    View Slide

  31. 33
    La spécification (exemples) pilote la réalisation…

    View Slide

  32. Bien que fortement recommandée, le BDD a de
    la valeur sans l’automatisation…
    +++ Collaboration & langage commun!!!
    Automatisation des tests nécessaire?

    View Slide

  33. … mais votre spécification ne
    sera pas vivante

    View Slide


  34. View Slide

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

    View Slide

  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
    &

    View Slide

  37. View Slide

  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…

    View Slide

  39. 41
    Suite…
    Fonctionnalité
    VS Story
    Planification VS
    documentation
    Ça vous
    intéresse?
    Demandez cette
    conférence
    @elapsetech

    View Slide

  40. Merci .

    View Slide

  41. 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…

    View Slide

  42. View Slide

  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)

    View Slide

  44. Une documentation vivante!

    View Slide

  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

    View Slide