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 *

Avenir

Les dernières tendances du test logiciel: Présentation STLS 2017

Présentation faite lors de la Soirée du Test Logiciel  de Sophia Antipolis le 5 octobre 2017 ayant pour but d’analyser les dernières tendances du test logiciel à travers diverses études réalisées notamment celle du CFTL. [youtube https://www.youtube.com/watch?v=NM5vyJkCncg?ecver=2] [slideshare id=81151386&doc=legeard-prsentationcftl-evolutiondespratiquesdutestlogiciel-5octobre2017-brunolegeard-171024142508]

Lire la suite »
DevOps

Collaboration entre testeur et développeur au sein d’une équipe agile utilisant une chaine d’intégration continue

Cet article a été écrit pour et publié initialement dans le magazine Programmez! d’avril 2019 Collaboration entre testeur et développeur dans une équipe agile Les équipes agiles – et plus généralement les équipes pluridisciplinaires – ont comme atout principal de regrouper un grand nombre de compétences en leur sein. Les

Lire la suite »
Bilan

La visibilité des tests

Suite à des entretiens passés récemment je me suis aperçu que le principal reproche remonté par les managers aux équipes de test était souvent le manque de visibilité sur les tests. « Je ne sais pas ce qui est testé », « je ne sais pas comment c’est testé »… Ces retours sont particulièrement

Lire la suite »