Le mensonge des fixtures : scénariser plutôt que générer
Jeudi 16:30, Amphi B
Abstract
Nos fixtures mentent. Elles créent des entités, pas des situations. Un workflow métier de 15 étapes joué en 1,3 seconde, dans une seule persistance, ne prouve rien : la réalité, c’est trois semaines. Et quand le bug remonte, les données de test ne tiennent plus : dump de prod anonymisé périmé, README de seed artisanal, fixtures Doctrine empilées sprint après sprint.
C’est à partir de ce constat, sur une plateforme d’agrément Symfony multi-rôles dont le cycle de vie s’étale sur des semaines, qu’on a arrêté de générer des données pour commencer à scénariser des histoires.
Dans ce REX, je raconte le passage des fixtures jetables à des scénarios YAML versionnés, qui décrivent qui fait quoi et quand. SymfonyClock fige le temps à chaque action, les services métier rejouent le scénario pour de vrai, et l’application elle-même valide ses propres données.
Bonus : les scénarios deviennent une documentation vivante, partagée avec la QA et le PO.
À la sortie, vous saurez monter le même système chez vous, brique par brique — et pourquoi vos fixtures ne devraient plus jamais mentir.
Nicolas Guérinet
Lead Dev backend et architecte chez onepoint, je code au quotidien en Symfony, Drupal et API Platform. Mon parcours est un peu atypique : dix ans de chefferie de projet, puis un virage technique il y a sept ans pour replonger dans le code - et ne plus en ressortir.
Persuadé que le café est le seul composant compatible avec tous les frameworks et que la pause café est une bonne session de pair programming.
Je pratique l’aïkido et je reste à l’affût de la prochaine série à binge-watcher ou du film à voir.
