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.

2 Responses

  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 *

culture générale

Former au test

La nécessité de formation dans le test Former au test est un sujet peu abordé mais au combien primordial. En effet, même si le test est très demandé, il n’existe encore que trop peu de formations post-bac à ce métier pour satisfaire la demande toujours grandissante du marché. Afin de

Lire la suite »
Automatisation

Automatisation: Architecture modulaire, la clé pour limiter la maintenance ?

Les problèmes de maintenance sont récurrents avec les tests automatisés. C’est même une des raisons majeures de l’échec de l’automatisation des tests. La maintenance doit être effectuée à chaque changement applicatif impactant un ou plusieurs cas de tests.  Cette maintenance, si elle est mal gérée peut très vite devenir très

Lire la suite »
Avenir

L’évolution n’est pas forcément ce que l’on croit!

L’évolution est quelque chose d’assez imprévisible et capricieux. Si l’on écoute les prévisions d’évolution pour le test depuis 10 ans on pourrait croire que le test serait: Majoritairement automatisé Se servant de l’IA pour optimisé ses choix et la qualité Avec des testeurs experts dans de nombreux domaines Avec création

Lire la suite »