Duel: gherkin vs BDD

Introduction

De nombreuses équipes et personnes considèrent que lorsque les tests sont écrits en gherkin alors les équipes font du BDD. Le BDD est le gherkin s’en retrouvent être 2 éléments d’un même ensemble si liés qu’ils n’en deviennent qu’un: si on fait du BDD alors on a ses tests en gherkin et inversement, si on a ses tests écrits en gherkin alors on fait du BDD.

Cela est évidemment totalement faux car le gherkin n’est par le BDD§ Le gherkin n’est ni une condition nécessaire ni une condition suffisante pour faire du BDD!

Pourquoi cette confusion ?

Cette amalgame a selon moi 2 raisons:

  • La première est naturelle et innocente et par d’un des principes de base du BDD: proposer des tests compréhensibles par tous. Le Gherkin permet d’écrire ces tests simplement en adoptant une norme d’écriture très légère. Cette facilité d’adoption a permis au Gherkin d’être très utilisé en BDD et de devenir le langage largement majoritaire utilisé pour l’écriture de test en BDD.
  • La seconde est, selon moi, plus liée à la communication et l’image que l’on souhaite se donner ou donner à son entreprise. Soyons honnête, écrire des tests en Gherkin est assez simple et simple à mettre en place. Adopter une démarche BDD est par contre beaucoup plus complexe et long à mettre en place… peu être justement trop pour se permettre d’attendre de faire vraiment du BDD pour le communiquer

Malheureusement utiliser Gherkin n’apporte pas les avantages que le BDD procure.

Quelle différence entre ces termes ?

Gherkin

Le gherkin est « uniquement » langage pour écrire des tests! Ce langage est facile à lire et à comprendre (tant que le test n’est pas trop long) par toute personne car il utilise une synthaxe très proche d’un langage parlé et ses normes d’écriture avec le « Given » (état initial), le « When » (action / événement) et le « Then » (état final) indique clairement un cheminement.

De même ces tests sont également très facilement partageables car c’est du texte. Il n’y a donc pas besoin d’accéder à un outil spécifique pour pouvoir lire et consulter ces tests qui sont donc tout aussi accessibles au niveau de leur compréhension qu’au niveau de leur diffusion.

BDD

Le BDD est avant tout une démarche qui consiste à communiquer afin de s’assurer que tous les acteurs (métier, testeurs, développeurs… en fait tous les intervenants sur le développement du logiciel) aient une compréhension commune de ce qui doit être fait avec la fonctionnalité. Pour cela il faut que les acteurs collaborent et se mettent d’accord sur l’attendu avant de commencer les développements. Cette synchronisation se fait à l’aide d’exemples qui prennent la forme de test… qui peuvent être écrit en gherkin mais ne le sont pas forcément.

A noter: la réunion des « 3 amigos » n’est pas non plus obligatoire pour faire du BDD (même si elle reste particulièrement bien adaptée au BDD)

Conclusion

BDD et Gherkin sont 2 notions totalement différentes. La démocratisation de l’utilisation du gherkin dans le contexte du BDD a entraîné un confusion qui peut devenir dangereuse dans le sens où le BDD s’en trouve déprécié et mal mis en œuvre. De même cette confusion, comme toutes les confusion réductrices, a tendance à nous ajouter des œillères nous empêchant de penser différemment… ce qui nous entraîne à plus penser au moyen qu’à l’objectif.

Pensez à rejoindre le groupe « Le métier du test » si vous souhaitez échanger sur le test

Merci à tous ceux qui mettent « j’aime », partagent ou commentent mes articles

N’hésitez pas à faire vos propres retours d’expérience en commentaire.

4 réponses

  1. Super article pour expliquer en 5 minutes la différence entre les tests fait avec Gherkin et le BDD qui est une méthode non technique !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Données

Les données de tests

Les données de test font partie intégrante des environnements de test et de leurs qualités dépend la qualité des résultats des tests exécutés. En effet, de mauvaises données peuvent engendrer des résultats de test erronés ou faire perdre beaucoup de temps d’analyse aux personnes travaillant sur l’analyse des bugs détectés.

Lire la suite »
certifications

Avis de recherche: paradoxe du pesticide

Pour ceux qui ont lu le syllabus ISTQB fondation v4.0 vous avez sûrement remarqué une absence de marque! Je parle bien sûr du 5ème principe du test: le paradoxe du pesticide! Vous me direz qu’il est quand même surprenant qu’une des « bases du test », érigé en principe fondateur disparaisse comme

Lire la suite »
Agilité

TDD: Test Driven Development

Définition Le TDD (Test Driven Developement) est, comme son nom l’indique, une méthode de développement. Elle consiste à écrire les tests avant d’écrire le code. Le but est donc pour l’équipe projet de développer un logiciel construit par la validation de tests plutôt qu’un logiciel construit par le suivi des

Lire la suite »