Files
roadwave/docs/adr/007-tests-bdd.md

2.0 KiB

ADR-007 : Tests et Spécifications Exécutables

Statut : Accepté Date : 2025-01-17

Contexte

RoadWave nécessite une documentation des use cases qui soit à la fois lisible par tous les stakeholders et vérifiable automatiquement. Les scénarios utilisateurs (touriste, routier, commerçant) doivent être validés en continu.

Décision

Gherkin pour les spécifications avec Godog comme runner de tests.

Alternatives considérées

Option Lisibilité Intégration Go Maintenance
Gherkin + Godog Excellente Native Faible
Gauge (Markdown) Bonne Plugin Moyenne
Tests Go natifs Faible (devs only) Native Faible
Concordion Bonne Java-centric Élevée

Justification

  • Living Documentation : Les fichiers .feature servent de documentation ET de tests
  • Accessibilité : Syntaxe Given/When/Then lisible par PO, devs, testeurs
  • Cohérence stack : Godog est le standard BDD pour Go
  • CI/CD : Intégration simple dans les pipelines

Structure

features/
├── recommendation/
│   ├── geolocalisation.feature
│   └── interets.feature
├── streaming/
│   ├── lecture.feature
│   └── buffering.feature
├── moderation/
│   └── signalement.feature
└── steps/
    └── steps.go

Exemple

Feature: Recommandation géolocalisée

  Scenario: Touriste près d'un monument
    Given un utilisateur avec l'intérêt "tourisme" à 80%
    And une position GPS à 100m de la Tour Eiffel
    When le système calcule les recommandations
    Then l'audio guide "Histoire de la Tour Eiffel" est en première position

Conséquences

  • Dépendance : github.com/cucumber/godog (MIT)
  • Les use cases du README doivent être traduits en .feature
  • CI exécute godog run avant chaque merge

Librairies : Voir ADR-020 pour analyse complète des frameworks BDD