Odeurs erratiques.
Un test erratique (instable) passe et échoue par intermittence sur le même code parce que son résultat dépend du timing, de l'ordre, d'un état partagé ou d'autres facteurs non déterministes plutôt que du comportement testé.
Un Sleepy Test met l'exécution en pause avec un délai codé en dur (`Thread.sleep`, `setTimeout`, `cy.wait(2000)`, `page.waitForTimeout`) pour attendre un travail asynchrone, au lieu d'attendre la condition réelle.
Une guerre des exécutions de tests se produit lorsque les tests réussissent pour une personne mais échouent de manière aléatoire dès que plusieurs personnes ou tâches d'intégration continue (CI) exécutent la suite en même temps, parce que les tests entrent en collision sur une fixture partagée et persistante.
Un test réussit ou échoue selon les autres tests qui se sont exécutés avant lui, parce que les tests laissent fuir un état mutable partagé et s’y appuient, au lieu que chacun mette en place et démonte sa propre fixture.