Considéré comme un héritage du Test-Driven-Devlopment (TDD) le Behavior-Driven Development, ou BDD requiert une augmentation du niveau de collaboration des membres de l’équipe projet.  Le développeur, le testeur  et le Product Owner doivent travailler ensemble sur la définition de chaque fonctionnalité en se basant sur des mots clés et des règles à respecter.

Le processus métier, pour lequel la solution est en cours de développement,  est mis en avant.

 

Le Principe du BDD en Agilité

Le BDD se base sur la description du comportement associé à  la fonctionnalité. Le comportement souhaité par rapport au besoin de l’utilisateur du logiciel à développer.

Le BDD utilise un modèle appelé Gherkin. C’est un ensemble de règles  qui rend la description des étapes de test suffisamment structurée pour que sa compréhension soit facile pour l’ensemble de l’équipe projet. L’utilisation d’un référentiel de test qui supporte le format BDD permet de faciliter l’apprentissage d’appliquer ce concept. Notre société « Expert du Test » propose la platefomre QACoverage pour couvrir ce besoin. N’hésitez pas à nous contacter pour vous donner plus de détails.

Un ensemble de scenarii couvre une fonctionnalité ou Feature. Une fonctionnalité est définie dans un fichier .feature et structurée de la manière suivante :

Désignation en Anglais Désignation en Français Description
Feature Fonctionnalité  Décrire la fonctionnalité
In order to Pourquoi Définir la raison de l’action
As a Qui Définir le rôle de l’utilisateur
I want to Quoi Décrire le comportement souhaité par l’utilisateur

 

Voici un exemple de la définition d’une “feature” :

Feature: Listing command

  In order to change the structure of the folder I am currently in

  As a UNIX user

  I need to be able to see the currently available files and folders there

 

Par la suite, une liste de scenarii de test devrait permettre de couvrir l’ensemble des critères d’acceptation de la fonctionnalité souhaitée.

La définition de la structure d’un scénario BDD est présentée sous la forme suivante :

Désignation en Anglais Désignation en Français Description
Scenario Scénario Définir le titre du scénario de test
Given Etant donné  Définir l’état initial de la fonctionnalité
When Lorsque Expliquer l’action à lancer
Then Alors Décrire le résultat attendu

Voici un exemple d’un scenario de test :

Scenario: Listing two files in a directory

    Given I am in a directory « test »

    And I have a file named « foo »

    And I have a file named « bar »

    When I run « ls »

    Then I should get:

      «  » »

      bar

      foo

      «  » »

Source d’exemple de test BDD : https://docs.behat.org/en/latest/guides.html

 

L’automatisation avec le BDD

Le BDD, par sa structure, facilite énormément l’automatisation des tests. Le Langage Gherkin basé sur les mots clés “Given, When, Then” permet de transformer aisément le scénario de test en script automatisé.

La définition des critères d’acceptation au démarrage de l’activité de développement permet à l’équipe de test de valider les scenarii de test et développer les scripts pour une exécution automatisée.

En  mettant en place un système d’intégration continue comme Jenkins ou Circle CI, l’exécution des tests automatisés est possible dès l’intégration des fonctionnalités par l’équipe de développement.  Ces mêmes scripts de test peuvent être exécutés pendant les campagnes de test de non-régression.

 

Les frameworks permettant d’appliquer le BDD

Plusieurs solutions sur le marché sont disponibles et permettent d’appliquer le BDD.  Voici un exemple d’outils qui peuvent répondre au besoin de mise en place d’automate de test en BDD :

Framework Commentaire
Cucumber Solution open source, la plus répandue sur le marché. Supporte plusieurs langages de programmation
Hiptest Racheté par Smartbear, Hiptest fait partie de CucumberStudio
SpecFlow Solution d’automatisation en .Net
Behat Framework d’automatisation en php

Cet article permet de présenter le BDD comme une solution pour définir les critères d’acceptation dans un projet Agile. N’hésitez pas à nous contacter, si vous souhaitez être accompagné pour la mise en place d’un système de test automatisé avec du BDD,