Directives et bonnes pratiques BDD

BDD (Behavior Driven Development) est une méthodologie de développement de logiciels par basé sur des exemples communication entre développeurs, QA et BAs. Dans cet article, nous discutons de quelques bonnes pratiques BDD pour en tirer le meilleur parti.

Plus que toute autre chose, l'objectif principal de la méthodologie BDD est d'encourager la communication entre les parties prenantes du projet afin que le contexte de chaque fonctionnalité soit correctement compris par tous les membres de l'équipe (c.-à-d. Compréhension partagée), avant le début du travail de développement. Cela aide à identifier les scénarios clés pour chaque histoire et à éliminer les ambiguïtés des exigences.

Dans BDD, les exemples sont appelés scénarios. Les scénarios sont structurés autour du Contexte-action-résultat motif et sont écrits dans un format spécial appelé Cornichon .


Les scénarios sont un moyen d'expliquer (en anglais simple) comment une fonction donnée doit se comporter dans différentes situations ou avec différents paramètres d'entrée.

Parce que Gherkin est structurel, il sert à la fois de spécification et d'entrée dans des tests automatisés, d'où le nom de «Spécifications exécutables».


Qu'est-ce qu'un fichier d'entités et que contient-il

Les fichiers de fonctionnalités sont des fichiers texte avec .fonctionnalité extension, qui peut être ouverte par n'importe quel éditeur de texte et lisible par n'importe quel outil compatible BDD, tel que Cucumber, JBehave ou Behat.

Les fichiers de fonctionnalités doivent commencer par le contexte de la fonctionnalité (qui est essentiellement l'histoire), suivi d'au moins un scénario au format suivant

Fonctionnalité: Un texte concis mais descriptif de ce qui est souhaité

Afin de réaliser une valeur commerciale nommée
En tant qu'acteur du système explicite
Je veux obtenir des résultats bénéfiques qui favorisent l'objectif


Scénario: Une situation commerciale déterminable

Compte tenu de certaines conditions préalables
Et une autre condition préalable
Quand une action de l'acteur
Et une autre action
Et encore une autre action
Ensuite, un résultat testable est atteint
Et quelque chose d'autre que nous pouvons vérifier se produit aussi

Les scénarios dans les fichiers de fonctionnalités doivent se concentrer sur le «quoi» plutôt que sur le «comment». Les scénarios doivent être concis et précis, afin que le lecteur puisse saisir rapidement l'intention du test sans avoir à lire beaucoup d'étapes non pertinentes.

Pourquoi devrions-nous écrire des fichiers de fonctionnalités

Comme mentionné précédemment, l'objectif principal de la méthodologie BDD est d'encourager la communication au sein de l'équipe de livraison. Le but des fichiers de fonctionnalités est de documenter les scénarios évoqués afin de donner une indication de la quantité de travail impliquée dans la fourniture de la fonctionnalité. Les fichiers de fonctionnalités sont également les pilotes pour les tests automatisés. Les fichiers de fonctionnalités servent également de définition de terminé (DoD), ce qui signifie que lorsque tous les scénarios ont été mis en œuvre et testés avec succès, nous pouvons marquer l'histoire comme terminée.


Qui doit écrire les fichiers de fonctionnalités

Peu importe qui écrit / tape réellement les fichiers de fonctionnalités, il peut s'agir de n'importe quel membre de l'équipe de livraison, cependant, le contenu (scénarios) discuté par un trio de Dev-QA-BA est la partie essentielle de la fonctionnalité. des dossiers. Obtenir la compréhension commune partagée de la fonctionnalité est l'élément clé.

Quand les fichiers de fonctionnalités doivent-ils être écrits

Les fichiers de fonctionnalités doivent être écrits pendant les sessions de préparation de l'histoire où les détails de chaque histoire sont discutés. Les fichiers de fonctionnalités contenant des scénarios doivent être écrits avant le début du développement afin que les développeurs ainsi que le contrôle qualité aient une compréhension claire de l'intention de l'histoire. Il devrait y avoir une compréhension commune de l'histoire. Les scénarios servent d'exigences au développement.

Où les fichiers de fonctionnalités doivent-ils être conservés?

Il devrait y avoir une source de vérité servant à la fois de spécification et d'exécution automatisée, donc devrait être conservée quelque part où chaque membre de l'équipe a un accès facile.

Cela dit, étant donné que les fichiers de fonctionnalités sont les pilotes des tests automatisés, ils devraient idéalement être conservés dans le système de contrôle de source (GitHub) afin que toutes les mises à jour des fichiers de fonctionnalités soient immédiatement répercutées sur les tests.


Pour les membres non techniques qui n'ont aucune expérience avec Git, nous pouvons toujours exécuter une exécution à sec des fichiers de fonctionnalités qui afficheront ensuite la liste de tous les scénarios existants sans réellement exercer les fichiers de fonctionnalités.

Comment écrire des fichiers de fonctionnalités

Il existe généralement deux façons d'écrire des fichiers de fonctionnalités: impérative et déclarative

Impératif style d'écriture d'un fichier d'entités, est très verbeux, contient des détails de bas niveau et trop d'informations.

Avantages: la personne lisant le fichier d'entités peut suivre l'étape par étape


Inconvénients: à cause de trop de détails, le lecteur peut perdre le point de l'histoire et des tests. Le fichier d'entités devient trop volumineux, difficile à gérer et risque d'échouer en raison des mises à jour de l'interface utilisateur.

Déclaratif Le style d'écriture d'un fichier d'entités est concis et précis, ne contient que des informations pertinentes sur l'histoire.

Avantages: Le style déclaratif est plus lisible car il contient moins d'étapes dans le scénario. Le lecteur peut facilement comprendre la portée du test et identifier rapidement s'il manque des éléments clés.