ATDD versus BDD

BDD vs ATDD

Intro

L’ATDD (Acceptance Test Driven Development) et le BDD (Behaviour Test Driven Development) sont des approches collaboratives, quasiment tout le temps implémenté dans des contextes de développement Agile, où l’on définit des tests collaborativement avant de commencer les développements. Ces similitudes font que bien souvent ces 2 méthodologies sont confondues / fusionnées alors qu’au final il y a, selon moi, une vraie différence de fond.

Définition

A noter: je vais présente ici les définitions proposées par l’ISTQB sur son site officiel.

BDD: Une approche collaborative du développement selon laquelle l’équipe se concentre sur la livraison du comportement attendu d’un composant ou d’un système pour le client, ce qui constitue la base des tests.

ATDD: Une approche collaborative du développement selon laquelle l’équipe et les clients utilisent le langage propre au domaine du client pour comprendre ses exigences, ce qui constitue la base pour tester un composant ou un système.

Les 2 définitions parlent d’approches collaboratives. Néanmoins pour l’ATDD on remarque la présence du client alors que ce n’est pas le cas pour le BDD où seule l’équipe (cela inclut quand même un représentant client, le PO en Scrum) est mentionnée. De même on peut également noter que l’objectif est différent. Pour le BDD on parle de comportement d’un système (spécifications) alors que pour l’ATDD on parle de comprendre les exigences du client pour pouvoir tester.

Pourquoi cette confusion ?

Il y a pour moi de nombreuses raisons qui entrainent cette confusion, ou plutôt cette « fusion » des approches. Les principales sont:

  • La présence de 2 visions de l’ATDD qui « s’opposent« . Celle des « développeurs » où l’ATDD c’est l’automatisation de scénarios d’acceptation conçus pour les User Story et celle des « testeurs » (mon point de vue) où l’ATDD doit proposer des tests d’acceptation. J’en parlais d’ailleurs dans mon article sur l’automatisation des tests d’acceptation.
  • La frontière proposée par les certifications (fondation et testeur technique Agile) ISTQB est moins claire que celle du glossaire. Cette Différence se fait essentiellement sur l’expression du test, sa manière de l’écrire, le BDD étant souvent reconnu avec l’usage du gherkin.
  • La séparation tests système et tests d’acceptation reste floue pour beaucoup de personnes. Cette confusion sur les niveaux de test est pour moi la vraie différence entre le BDD et l’ATDD.

Conclusion

Les approches ATDD et BDD, tout comme les tests systèmes et tests d’acceptation, peuvent se ressembler sur la forme et leur méthodologie mais elles ont des objectifs différents. Ces objectifs, proches des niveaux de test, peuvent paraître assez flous pour une grande partie des acteurs du numérique.

De plus 2 visions de l’ATDD s’opposent actuellement. Une de ces visions voit l’ATDD comme étroitement liée aux scénarios d’acceptation des User Story.

Enfin, ces approches, même si elles divergent sur leur finalité partent d’une problématique commune: les divergences de compréhension entre les différents acteurs. Dans tous les cas, ATDD ou BDD, je ne peux que vous conseiller de mettre en pratique ces approches dans votre quotidien.

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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Automatisation

REX : Mise en place d’une solution d’automatisation des tests – Cathy Blache

 Retour d’expérience : Mise en place d’une solution d’automatisation des tests de régression sur des applications métiers : Robot-Framework interfacée avec SquashTM & Autom Après une analyse préalable et l’étude des différents types d’automatisations, en tenant compte de la complexité de nos applications à tester, nous avons choisi une approche d’automatisation

Lire la suite »
Automatisation

Automatiser ou ne pas automatiser? Telle est la question.

Cet article est fortement inspiré de celui-ci, que j’ai lu grâce au groupe Ministry Of Testing un groupe que je recommande fortement à tous les testeurs qui ne sont pas allergiques à la langue de Shakespeare. Pour ces mêmes personnes voici ma version (librement interprétée, ce n’est pas une traduction)

Lire la suite »
culture générale

Industrie classique ≠ Industrie logicielle

Encore trop de personnes haut placées dans les entreprises logicielles ne jurent que par la « productivité ». La sacro-sainte « productivité » ! Dans l’industrie classique cela revient à produire des pièces mécaniques. Dans l’industrie logicielle on  représente malheureusement souvent cela comme « pisser du code » (ce qui explique « productivité »). Cela me met hors de

Lire la suite »