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
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 !
Merci pour ce retour =)