Le Behavior Driven Development (BDD) est un concept défini en 2003 par Dan North. Ce dernier a créé le BDD en réponse au TDD (Test Driven Development) qui pouvait être source de frustration pour les développeurs: que dois-je tester dans cette User story ? Quelle nomenclature utiliser ? etc … Autrement dit, il s’agit d’écrire des tests qui décrivent le comportement attendu du système et que tout le monde peux comprendre.
Vous allez enfin réussir vos recettes et testing en mode Agile !
1- C'est quoi le BDD et en quoi est-ce intéressant ?
Le Behaviour Driven Development est un ensemble de pratiques visant à améliorer la collaboration entre les développeurs, les responsables qualité et les stakeholders non techniques autour de la qualité logicielle dans le cadre de la réalisation d’un produit informatique. Plus précisément, le BDD met en avant 3 critères importants :
- l’utilisation de phrases compréhensibles dans la création des cas de tests (puis classes de tests). Cette pratique aide à une meilleure lisibilité du code et crée un lien avec le fonctionnel attendu.
- La mise en place de termes comportementaux. “ShouldCreditAccount” force à se demander si le résultat attendu est cohérent et s’il est vraiment nécessaire.
- Application de langages de programmation pour l’écriture des tests (Gherkin par exemple). Le Product Owner ou les testeurs peuvent rédiger eux-mêmes les tests d’acceptation et ainsi limiter les incompréhensions avec l’équipe de développement
==> Dans le cadre du travail du Product Ower, le BDD permet une plus grande fluidité dans la communication des critères d’acceptation d’une User Story.
2- Les avantages du BDD
◊ Les avantages de cette pratique sont multiples et peuvent avoir de forts impacts sur la qualité du livrable, nous allons en citer quelques-unes :
1- Elle propose un cadre plus précis pour le dialogue avec les experts fonctionnels
2- Elle permet de générer automatiquement une documentation technique à partir des « spécifications »
3- Avec cette outil l’écriture des scénarios se fait de manière collective: développeurs, clients, équipe support, …: tout le monde peut participer à l’expression du besoin
4- Elle offre une illustration de chaque cas d’utilisation par des exemples concrets.
7- Elle créé une itération avec des tests en continu sur les fonctionnalités …
3- Formalisme et structure des tests
Le BDD est basé sur des mots que l’on utilise souvent dans la vraie vie comme Étant donné, Quand, Alors, et Et, qui vont décrire le comportement de votre fonctionnalité. En effet le contenu du scénario est une succession d’étapes (Step
) permettant:
- soit de définir et de construire le contexte dans lequel le scénario va se dérouler
Given
, - soit de provoquer des événements ou des actions sollicitant le système
When
, - soit de vérifier que le comportement attendu a bien eu lieu
Then
; c’est généralement à ces étapes que l’on retrouvera les assertions.
Par exemple:
Étant donné qu’un utilisateur envoi un message
Quand le message dépasse 1000 caractères
Alors le message ne pas être envoyé
Et l’utilisateur doit voir un message d’erreur
==> Cette grammaire (à base de mots clés en début de phrase) permet de définir le langage de nos scénarios. Il est de plus en plus souvent appelé langage Gherkin, nom donné et popularisé par le framework Cucumber.
==> En résumé, il est très simple de mettre en place une démarche Behaviour Driven Development sur vos projets, à condition d’embarquer votre Product Owner dans la méthode, et vos développeurs. A la clé, meilleure expression de besoin, meilleure complétude fonctionnelle, et moins de bugs en production ! Nos Digital Catalysts proposent régulièrement d’utiliser le BDD dans leurs interventions. Cela permet également de travailler sur des équipes Fullstack intégrant le testing dans la Team (consulter notre articlé dédié ici)
4- Qui sommes-nous ?
DC CONSULTANTS est le cabinet de conseil pure-player de l’agilité, qui accompagne les entreprises de tous secteurs dans le pilotage de leurs projets depuis 2013 ! Pour les acteurs en charge de délivrer des projets et de réaliser une transformation agile, souhaitant mettre en place l’agilité réduire leur TTM, améliorer la qualité de leurs produits, DC CONSULTANTS propose des services de conseil, des outils, des formations, avec l’intervention notamment de Coaches Agiles, Product Owners, Scrum Masters, …L’offre de DC CONSULTANTS permet de mener une transformation agile aisément, de former et motiver ses équipes et de délivrer les projets de manière plus rapide et efficace.