BDD:
un chemin vers l’Agilité
 Comment BDD peut favoriser
l’adoption d’une approche Agile
      Mauro Talevi
                  2011
Plan
 “Pain-Driven Development”
Behaviour-Driven Development
   BDD en Java: JBehave
       Etude de Cas
         Questions
Pain-Driven
Development *

*Développement pour les SM
Maux du Développement

Le système ne fait pas ce qu’il devrait
      Fonctionnalité manquante
 Le système est développé en “silos”
 Le système n’est pas accessible ni
        visible par le métier
     Pas de tests d’acceptation
          ... et plus encore!
Un Exemple




... c’est familier?
BDD propose un nouveau paradigme ...
       décrire le            un langage
      comportement est   universel c’est la
      un meilleur type      clef
       de test
                               les tests
                          d’acceptation
                          doivent être
                          automatisables



                          toutes requêtes
                         sont aussi des
                          comportements


      ... mais ça prend du temps
Il y a langage ... et langage
Behaviour-Driven
     Development *
*Développement pour les bien élevés
(Une des) definitions de Dan North:

“BDD essaie d’implémenter une application
     en décrivant son comportement
   du point de vue des stakeholders”
      Qui sont les “stakeholders”?
        Développement Out-In
      Parlez le langage du métier
Stakeholders
Tous ceux qui ont un intérêt
      dans le système:
     Métier (bien sûr!)
         Sécurité
        Production
     Audit de Qualité
    ... et plus encore!
Développement Out-In




Choisissez la bonne frontiere
Parlez le langage du métier
Definissez un langage spécifique pour le
            domaine (DSL)
 Concentrez-vous sur les concepts du
                métier
Décrivez les comportements du point de
             vue du métier
     Evitez les détails techniques
Quelques definitions
      Une Histoire (User Story):
      une collection des Scénarios,
      chacun étant une collection d’étapes
Les histoires décrivent des
comportements, c.a.d. la fonctionalité
attendue par le métier
       Les scénarios explorent des
       déclinations de l’histoire,
       nominales et alternatives
Commençons une conversation:
Etant donné un seuil de 15.0
Quand une action est échangée á 5.0
Alors le trader ne doit pas être alerté
      Grammaire BDD d’Etapes:
      Etant donné - contexte
      Quand - événement
      Alors - résultat
      Et - répète étape précédente
Explorez d’autres options du métier:

Etant donné un seuil de 15.0
Quand une action est échangée á 16.0
Alors le trader doit être alerté

  La même grammaire BDD
  Seules des valeurs ont changé
Combinez les étapes:
Etant donné un seuil de 15.0
Quand une action est échangée à 5.0
Alors le trader ne doit pas être alerté
Quand une action est échangée à 16.0
Alors le trader doit être alerté

              Choisissez
       le paramétrage d’étapes
Faites évoluer le langage:
Etant donné un seuil de 15.0
Quand une action est échangée á 16.0
Alors le trader doit être alerté
Alias pour            Mêmes paramétres
mêmes étapes          Langage change
Etant donné un seuil de prix de 15.0
Quand un stock est échangé á 16.0
Alors le trader doit être alerté
Et en plus ...

 Tabularisation: quand on a des
répétitions d’étapes ou des donné

Histoires comme des pre-requis:
quand on a des répétitions des
   histories et des scénarios
BDD vs TDD

BDD parle un langage du métier,
        écrit en texte
TDD parle un langage technique,
         écrit en code

   Ils sont complémentaires,
         pas en conflit!
BDD vs ATDD
BDD permet d’automatiser les tests,
    en mettant l’accent sur la
         communication
ATDD est un paradigme générique
 d’automatisation des tests, pas
     toujours communicative
BDD en Java
BDD (Behavior Driven Development) - Une voie vers l'agilité
Etapes correspondent aux méthodes Java

      Etant donné un seuil de 15.0



   @Given(“un seuil de $seuil”)
   public void unSeuil(double seuil){
     / assignez l’objet pour garder l’état
      /
   }

       Paramétres auto-convertis
Tous les types Java sont supportés
Strings
             Booleans
     Enums
                 Nombres

Listes des Strings

                 Listes des nombres
Types des paramétres sur-mesure
        @Given(“la date de $date”)
        public void uneDate(Date date){
          / Date est multi-format
           /
        } Etant donné la date de 01/04/2010

DateConverter implements ParameterConverter {
   public Object convertValue(String value, Type type) {
     / DateFormat injectée dans DateConverter
      /
      return dateFormat.parse(value);
   }
}
Alias
Etant donné un seuil de 15.0
Etant donné un seuil de prix de 15.0

  @Given(“un seuil de $seuil”)
  @Alias(“un seuil de prix de $seuil”)
  public void unSeuil(double seuil){
    / assignez l’objet pour garder l’état
     /
  }
  Evolution du langage du scénario
Un scénario Web
    Scénario: Un article est ajouté au
    panier du site e-commerce

    Etant donné le panier est vide
    Quand je recherche un article
    Et l’article est ajouté au panier
    Alors le panier contient cet article

On décrit les interactions des utilisateurs
     Pas les détails HTTP/HTML
Groovy WebDriver
class Home extends BasePage {

    def Home(WebDriverProvider webDriverProvider) {
      super(webDriverProvider)
    }

    def go() {
      get("http://www.etsy.com")
    }

    def go(String section) {
      go()
      findElement(By.xpath("//a[@title = '$section']")).click()
    }

    def search(String thing) {
      findElement(By.id("search-facet")).click()
      findElement(By.className("all")).click()
      findElement(By.id("search-query")).sendKeys(thing)
      findElement(By.id("search_submit")).click()
    }

    def goToBuySection() {
      findElement(By.linkText("Buy")).click()
    }
}




           WebDriver agit comme une API
Exécutions
Reporting

StoryReporter observe les
événements (“Observer Pattern”)

En entrée texte (peut-être a wiki)

En sortie plusieurs formats:
CONSOLE, HTML, XML, TXT, STATS
Un Exemple
Un Report HTML
Et en plus ...

Dependency Injection

  Multi-Threading

   Story Mapping
   Web Queue
    Web Runner
Etude de Cas
Contexte
Projet stratégique pour
une banque globale
d’investissement
Commencé en Sept 2008 ...
... des temps très
interessants pour le
monde financier!
Technologie
Application Java Enterprise

Architecture basée sur JMS (transactionnelle)

Interfaçant plusieurs systèmes internes

Focus initial sur le “core back-end”

“Web front-end” ajouté plus tard
Méthodologie
Projet Agile Scrum

Sprints de deux semaines

Equipe jusqu’á 10 membres

Auto-organisé: devs, testers, BA, SM

  Le SM c’est pas un Chef de Projet!
Les Stakeholders
“No world is an island” ...
                ... plusieurs stakeholders
  Métier          Securité
         Production      Infrastructure

Sans expérience d’Agile ni de BDD ...
       ... mais très investis
              & pas juste concernés!
Le Poulet
  & Le Cochon




Il faut être tous des cochons!
Cochonnet




Le plus important membre de l’équipe
BDD et l’Agilité
BDD et l’Agilité
BDD ideale pour un projet Agile:
 .... “Done Criteria” de Scrum
 .... le Contrat de la livration
 ... la clef pour une meilleure
 communication
 ... mais il peut aussi favoriser
 l’adoption de l’Agilité
Web Runner
Le métier voulait plus de visibilité ...
       ... mais ils n’ont pas acces au
       environment technique du build
Utilisé pour le setup des démos
      ... dans les Sprint Reviews
      ... dans les démos métier
 Cela donne plus de confiance au métier
Deux Ans Apres ...




 Most Valuable Agile Project
Cochonnet est très fier
Communication
BDD clef pour la communication en:
... specifiant critères d’acceptance
... aidant l’équipe pour l’estimation
... détaillant des séquences par étapes
... rendant input/output plus visibles
Confiance
BDD relance la confiance:
... du métier, en rendant le
comportement plus visible et detaillé

... de l’équipe, en livrant “what it says
on the tin” et en permettant des
refactoring sans peur
Traitez les tests comme code

Attention au “scenario smells”:

... répétition d’étapes

... répétition des scénarios

   Il faut faire du refactoring
 Engagez-vous avec le métier
Pairing est de grande valeur

Comportement représente un domaine
partagé:
              Métier

   Testers                 BAs

                Devs
       Pairing baisse le risque
          de malentendu et
      favorise la communication
Scénarios par Sprint
En Conclusion ...
BDD représente un nouveau paradigme:
           mais pas toujours      Comme
simple ...
           facile!                l’Agilité
BDD a joué un rôle clef en developpant ...
... la confiance entre équipe et métier
... du code qui est important pour le métier
Contact
     Mauro Talevi
mauro.talevi@agilesque.com

            http://jbehave.org
Questions
    ... et Démo
(pour les intéressés)

Contenu connexe

PDF
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
PDF
Pizza party 30-09-2011 bdd-cucumber
PDF
Iut agile lyon 20 nov. 2013 - bdd
PDF
Behavior driven Development
PDF
Tdd en action - découverte
PPTX
Le pilotage par les tests
PPTX
AT Marseille 2011 - Réduisons les gaspillages
PDF
Tdd en action - refactoring
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
Pizza party 30-09-2011 bdd-cucumber
Iut agile lyon 20 nov. 2013 - bdd
Behavior driven Development
Tdd en action - découverte
Le pilotage par les tests
AT Marseille 2011 - Réduisons les gaspillages
Tdd en action - refactoring

Tendances (20)

PDF
201001 TDD
ODP
Formation Extreme Programming, Tests unitaires, travail collaboratif
PPTX
Essential skills for the agile developer
PPTX
Présentation kanban
PPTX
[Agile Testing Day] Behavior Driven Development (BDD)
PDF
Clean code en pratique
PPTX
Initiation à l'agile
PPTX
Remettons les tests au coeur des projets
PPTX
C'est quoi, du bon code ?
PPTX
[Agile Testing Day] Techniques avancées de tests
PPTX
Présentation Alt.net - Tests unitaires automatisés
ODP
Agile Methodologies
PDF
eXtreme Programming [fr]
PDF
Anatomie du test
PDF
Tester c'est douter - Linkvalue tech
PDF
Soirée Qualité Logicielle avec Sonar
PPTX
PPSX
Xtreme Programming
PPTX
Domain Driven Design (DDD)
PDF
Mockito - Design + tests par Brice Duteil
201001 TDD
Formation Extreme Programming, Tests unitaires, travail collaboratif
Essential skills for the agile developer
Présentation kanban
[Agile Testing Day] Behavior Driven Development (BDD)
Clean code en pratique
Initiation à l'agile
Remettons les tests au coeur des projets
C'est quoi, du bon code ?
[Agile Testing Day] Techniques avancées de tests
Présentation Alt.net - Tests unitaires automatisés
Agile Methodologies
eXtreme Programming [fr]
Anatomie du test
Tester c'est douter - Linkvalue tech
Soirée Qualité Logicielle avec Sonar
Xtreme Programming
Domain Driven Design (DDD)
Mockito - Design + tests par Brice Duteil
Publicité

En vedette (20)

ODP
"Spécification par l'exemple" par l'exemple : le BDD démystifié
ODP
Spécification par l'exemple & Tests d'Acceptance Agile avec cucumber
PDF
Test acceptance
PDF
Tdd cara nov2010
PPTX
Kanban un tour d'horizon
PDF
Behavior Driven Development - How To Start with Behat
PPTX
QA Fest 2014. Анна Гаврилюк. Cool as сucumber
PDF
Softfluent speig mdday2010
PPTX
C# Async, un an après
PPTX
Mode offline et Synchronisation avec Windows Phone et Windows 8.1
PPTX
Keynote "PME & Startups : concurrents ou exemples à suivre ?"
PPTX
Les nouveautés du Framework .NET 4.5
ODP
Test du futur avec Spock
PPTX
LMB Entrepreneurs' Boot Camp Handbook 16 May 2011
PDF
Dot Net Core
PPTX
Aumentando reaproveitamento de código com MvvmCross
PPTX
.NET 2015, ASP.NET 5, C# 6 e tudo mais
PDF
Cucumber Ecosystem Presentation
PDF
Cerberus, un outil pour l'automatisation des tests fonctionnels
PDF
Decouvrir CQRS (sans Event sourcing) par la pratique
"Spécification par l'exemple" par l'exemple : le BDD démystifié
Spécification par l'exemple & Tests d'Acceptance Agile avec cucumber
Test acceptance
Tdd cara nov2010
Kanban un tour d'horizon
Behavior Driven Development - How To Start with Behat
QA Fest 2014. Анна Гаврилюк. Cool as сucumber
Softfluent speig mdday2010
C# Async, un an après
Mode offline et Synchronisation avec Windows Phone et Windows 8.1
Keynote "PME & Startups : concurrents ou exemples à suivre ?"
Les nouveautés du Framework .NET 4.5
Test du futur avec Spock
LMB Entrepreneurs' Boot Camp Handbook 16 May 2011
Dot Net Core
Aumentando reaproveitamento de código com MvvmCross
.NET 2015, ASP.NET 5, C# 6 e tudo mais
Cucumber Ecosystem Presentation
Cerberus, un outil pour l'automatisation des tests fonctionnels
Decouvrir CQRS (sans Event sourcing) par la pratique
Publicité

Similaire à BDD (Behavior Driven Development) - Une voie vers l'agilité (20)

PDF
Les tests automatisés par mots-clés, le complément parfait d’un projet Agile
PDF
Le BDD est bien plus qu’une technique de test!
PPTX
Behavior Driven Development - agile testing day
PDF
Développement d'un grand projet piloté par les tests (BDD)
PPT
to Test or not to Test?
PPTX
AgileTour Strasbourg 2011 BDD with jBehave
PDF
Comment accélérer le DevOps avec l’ATDD/BDD?
PPTX
Introduction au BDD (Behavior Driven Development)
PDF
2019 - NOURI - ALL4TEST- Le BDD pour decouvrir et specifier les besoins metie...
PPT
Bbd dans le flow nov.2012
PPTX
Behaviour Driven Development chez Jouve ITS - Agile Laval 2014
PDF
DDD session BrownBagLunch (FR)
PDF
20151013 - Agirc arrco : Behavior driven development
PDF
Tour d'horizon des tests
PPTX
L'agilité chez Jouve via le Behaviour Driven Development
PPTX
10 ans de Code (Agile Bordeaux 2019).pptx
PPTX
L'agilité non IT dans une Caisse d'Epargne Régionale - Nathalie Retter (BPCE)...
PPTX
Agilité, Tests Et Industrialisation
PDF
Webinar - Mieux s'entendre entre Dev / PO / Testeur avec TDD et BDD
PDF
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...
Les tests automatisés par mots-clés, le complément parfait d’un projet Agile
Le BDD est bien plus qu’une technique de test!
Behavior Driven Development - agile testing day
Développement d'un grand projet piloté par les tests (BDD)
to Test or not to Test?
AgileTour Strasbourg 2011 BDD with jBehave
Comment accélérer le DevOps avec l’ATDD/BDD?
Introduction au BDD (Behavior Driven Development)
2019 - NOURI - ALL4TEST- Le BDD pour decouvrir et specifier les besoins metie...
Bbd dans le flow nov.2012
Behaviour Driven Development chez Jouve ITS - Agile Laval 2014
DDD session BrownBagLunch (FR)
20151013 - Agirc arrco : Behavior driven development
Tour d'horizon des tests
L'agilité chez Jouve via le Behaviour Driven Development
10 ans de Code (Agile Bordeaux 2019).pptx
L'agilité non IT dans une Caisse d'Epargne Régionale - Nathalie Retter (BPCE)...
Agilité, Tests Et Industrialisation
Webinar - Mieux s'entendre entre Dev / PO / Testeur avec TDD et BDD
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...

Plus de CARA_Lyon (9)

PDF
Smartphone : et l'informatique devint mobile...
PDF
Agile Sans Frontières
PDF
Building complex and modular RIAs with OSGi and Flex
PDF
Les outils de l'ergonome agile
PDF
Comment j'ai mis ma suite de tests au régime en 5 minutes par jour
PDF
Fable du Product Owner et de la Maîtrise d'Ouvrage (MOA)
PDF
HTML5... La révolution maintenant!
PDF
HTML5... La révolution maintenant!
PDF
20110519 cara tests_agiles_grenoble_all
Smartphone : et l'informatique devint mobile...
Agile Sans Frontières
Building complex and modular RIAs with OSGi and Flex
Les outils de l'ergonome agile
Comment j'ai mis ma suite de tests au régime en 5 minutes par jour
Fable du Product Owner et de la Maîtrise d'Ouvrage (MOA)
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!
20110519 cara tests_agiles_grenoble_all

Dernier (7)

PDF
Frais et décompte dans SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
IPTV Meilleur - Le Meilleur Abonnement IPTV en France pour 2025
PPTX
Cours Electrotechnique L2 - Séance 6.pptx
PDF
Architecture logicielle et Modeles de Conception
PPTX
test pour la présentation foire de Chalôns V1
PDF
Analyse technique approfondie pour la gestion des transports dans SAP S/4HANA...
PDF
COURS GCDs Chap 9.pdf tous les éléments.
Frais et décompte dans SAP S/4HANA Transportation Management, S4TM3 Col26
IPTV Meilleur - Le Meilleur Abonnement IPTV en France pour 2025
Cours Electrotechnique L2 - Séance 6.pptx
Architecture logicielle et Modeles de Conception
test pour la présentation foire de Chalôns V1
Analyse technique approfondie pour la gestion des transports dans SAP S/4HANA...
COURS GCDs Chap 9.pdf tous les éléments.

BDD (Behavior Driven Development) - Une voie vers l'agilité

  • 1. BDD: un chemin vers l’Agilité Comment BDD peut favoriser l’adoption d’une approche Agile Mauro Talevi 2011
  • 2. Plan “Pain-Driven Development” Behaviour-Driven Development BDD en Java: JBehave Etude de Cas Questions
  • 4. Maux du Développement Le système ne fait pas ce qu’il devrait Fonctionnalité manquante Le système est développé en “silos” Le système n’est pas accessible ni visible par le métier Pas de tests d’acceptation ... et plus encore!
  • 6. BDD propose un nouveau paradigme ... décrire le un langage comportement est universel c’est la un meilleur type clef de test les tests d’acceptation doivent être automatisables toutes requêtes sont aussi des comportements ... mais ça prend du temps
  • 7. Il y a langage ... et langage
  • 8. Behaviour-Driven Development * *Développement pour les bien élevés
  • 9. (Une des) definitions de Dan North: “BDD essaie d’implémenter une application en décrivant son comportement du point de vue des stakeholders” Qui sont les “stakeholders”? Développement Out-In Parlez le langage du métier
  • 10. Stakeholders Tous ceux qui ont un intérêt dans le système: Métier (bien sûr!) Sécurité Production Audit de Qualité ... et plus encore!
  • 12. Parlez le langage du métier Definissez un langage spécifique pour le domaine (DSL) Concentrez-vous sur les concepts du métier Décrivez les comportements du point de vue du métier Evitez les détails techniques
  • 13. Quelques definitions Une Histoire (User Story): une collection des Scénarios, chacun étant une collection d’étapes Les histoires décrivent des comportements, c.a.d. la fonctionalité attendue par le métier Les scénarios explorent des déclinations de l’histoire, nominales et alternatives
  • 14. Commençons une conversation: Etant donné un seuil de 15.0 Quand une action est échangée á 5.0 Alors le trader ne doit pas être alerté Grammaire BDD d’Etapes: Etant donné - contexte Quand - événement Alors - résultat Et - répète étape précédente
  • 15. Explorez d’autres options du métier: Etant donné un seuil de 15.0 Quand une action est échangée á 16.0 Alors le trader doit être alerté La même grammaire BDD Seules des valeurs ont changé
  • 16. Combinez les étapes: Etant donné un seuil de 15.0 Quand une action est échangée à 5.0 Alors le trader ne doit pas être alerté Quand une action est échangée à 16.0 Alors le trader doit être alerté Choisissez le paramétrage d’étapes
  • 17. Faites évoluer le langage: Etant donné un seuil de 15.0 Quand une action est échangée á 16.0 Alors le trader doit être alerté Alias pour Mêmes paramétres mêmes étapes Langage change Etant donné un seuil de prix de 15.0 Quand un stock est échangé á 16.0 Alors le trader doit être alerté
  • 18. Et en plus ... Tabularisation: quand on a des répétitions d’étapes ou des donné Histoires comme des pre-requis: quand on a des répétitions des histories et des scénarios
  • 19. BDD vs TDD BDD parle un langage du métier, écrit en texte TDD parle un langage technique, écrit en code Ils sont complémentaires, pas en conflit!
  • 20. BDD vs ATDD BDD permet d’automatiser les tests, en mettant l’accent sur la communication ATDD est un paradigme générique d’automatisation des tests, pas toujours communicative
  • 23. Etapes correspondent aux méthodes Java Etant donné un seuil de 15.0 @Given(“un seuil de $seuil”) public void unSeuil(double seuil){ / assignez l’objet pour garder l’état / } Paramétres auto-convertis
  • 24. Tous les types Java sont supportés Strings Booleans Enums Nombres Listes des Strings Listes des nombres
  • 25. Types des paramétres sur-mesure @Given(“la date de $date”) public void uneDate(Date date){ / Date est multi-format / } Etant donné la date de 01/04/2010 DateConverter implements ParameterConverter { public Object convertValue(String value, Type type) { / DateFormat injectée dans DateConverter / return dateFormat.parse(value); } }
  • 26. Alias Etant donné un seuil de 15.0 Etant donné un seuil de prix de 15.0 @Given(“un seuil de $seuil”) @Alias(“un seuil de prix de $seuil”) public void unSeuil(double seuil){ / assignez l’objet pour garder l’état / } Evolution du langage du scénario
  • 27. Un scénario Web Scénario: Un article est ajouté au panier du site e-commerce Etant donné le panier est vide Quand je recherche un article Et l’article est ajouté au panier Alors le panier contient cet article On décrit les interactions des utilisateurs Pas les détails HTTP/HTML
  • 28. Groovy WebDriver class Home extends BasePage { def Home(WebDriverProvider webDriverProvider) { super(webDriverProvider) } def go() { get("http://www.etsy.com") } def go(String section) { go() findElement(By.xpath("//a[@title = '$section']")).click() } def search(String thing) { findElement(By.id("search-facet")).click() findElement(By.className("all")).click() findElement(By.id("search-query")).sendKeys(thing) findElement(By.id("search_submit")).click() } def goToBuySection() { findElement(By.linkText("Buy")).click() } } WebDriver agit comme une API
  • 30. Reporting StoryReporter observe les événements (“Observer Pattern”) En entrée texte (peut-être a wiki) En sortie plusieurs formats: CONSOLE, HTML, XML, TXT, STATS
  • 33. Et en plus ... Dependency Injection Multi-Threading Story Mapping Web Queue Web Runner
  • 35. Contexte Projet stratégique pour une banque globale d’investissement Commencé en Sept 2008 ... ... des temps très interessants pour le monde financier!
  • 36. Technologie Application Java Enterprise Architecture basée sur JMS (transactionnelle) Interfaçant plusieurs systèmes internes Focus initial sur le “core back-end” “Web front-end” ajouté plus tard
  • 37. Méthodologie Projet Agile Scrum Sprints de deux semaines Equipe jusqu’á 10 membres Auto-organisé: devs, testers, BA, SM Le SM c’est pas un Chef de Projet!
  • 38. Les Stakeholders “No world is an island” ... ... plusieurs stakeholders Métier Securité Production Infrastructure Sans expérience d’Agile ni de BDD ... ... mais très investis & pas juste concernés!
  • 39. Le Poulet & Le Cochon Il faut être tous des cochons!
  • 40. Cochonnet Le plus important membre de l’équipe
  • 42. BDD et l’Agilité BDD ideale pour un projet Agile: .... “Done Criteria” de Scrum .... le Contrat de la livration ... la clef pour une meilleure communication ... mais il peut aussi favoriser l’adoption de l’Agilité
  • 43. Web Runner Le métier voulait plus de visibilité ... ... mais ils n’ont pas acces au environment technique du build Utilisé pour le setup des démos ... dans les Sprint Reviews ... dans les démos métier Cela donne plus de confiance au métier
  • 44. Deux Ans Apres ... Most Valuable Agile Project
  • 46. Communication BDD clef pour la communication en: ... specifiant critères d’acceptance ... aidant l’équipe pour l’estimation ... détaillant des séquences par étapes ... rendant input/output plus visibles
  • 47. Confiance BDD relance la confiance: ... du métier, en rendant le comportement plus visible et detaillé ... de l’équipe, en livrant “what it says on the tin” et en permettant des refactoring sans peur
  • 48. Traitez les tests comme code Attention au “scenario smells”: ... répétition d’étapes ... répétition des scénarios Il faut faire du refactoring Engagez-vous avec le métier
  • 49. Pairing est de grande valeur Comportement représente un domaine partagé: Métier Testers BAs Devs Pairing baisse le risque de malentendu et favorise la communication
  • 51. En Conclusion ... BDD représente un nouveau paradigme: mais pas toujours Comme simple ... facile! l’Agilité BDD a joué un rôle clef en developpant ... ... la confiance entre équipe et métier ... du code qui est important pour le métier
  • 52. Contact Mauro Talevi mauro.talevi@agilesque.com http://jbehave.org
  • 53. Questions ... et Démo (pour les intéressés)