bdd-methodology

Traduire les critères d’acceptation en spécifications exécutables Gherkin — conventions Given/When/Then, patterns de scénarios, stratégie de tags et règle des 3 couches d’abstraction.

Quand l’utiliser

Contrat d’entrée

Contrat de sortie

Invariants

Layer Propriétaire Langage
Layer 1 — Gherkin Métier Vocabulaire du domaine pur. Zéro terme technique.
Layer 2 — Step methods Ingénieur (test code) Traduit les noms/verbes Gherkin en appels de cas d’utilisation
Layer 3 — Application Ingénieur (code production) Cas d’utilisation, repositories, objets du domaine

Anti-patterns à éviter :

Anti-pattern Problème Correction
When I call POST /api/eligibility Détail HTTP When the driver requests an eligibility check
Given the database contains a record Infrastructure Given a driver with a complete profile
Then the repository returns null Implémentation Then no eligibility result is found
Multiple When dans un scénario Un seul déclencheur Deux comportements = deux scénarios

Stratégie de tags :

Tag Usage
@{feature-name} Un par feature de bounded context (ex : @eligibility)
@happy-path Scénario principal de succès
@edge-case Valeurs limites, conditions de frontière
@error-case Erreurs système, données manquantes, état invalide
@smoke Ensemble minimal pour la validation walking skeleton (≤3 par feature)
@visual Marque un scénario dont l’AC est visuel/positionnel/de style — nécessite un test E2E Playwright avec mesure réelle, ne peut pas être clos par un seul test unitaire jsdom

Pourquoi cette forme

BDD est un outil de communication avant d’être un outil de test. Un scénario Gherkin lisible par un expert métier garantit que l’ingénieur implémente ce que le métier attend — pas ce que l’ingénieur a compris du ticket.

« The goal of BDD is a shared understanding of the desired behaviour of software by both the business and engineering teams. » — North, D., Introducing BDD, 2006.

« Scenarios are executable specifications that help teams define what software should do before building it. » — Adzic, G., Specification by Example, 2011.

Customisation autorisée

Voir aussi