Flaky Test
Testing 🟡 MidDéfinition
Test non déterministe qui passe ou échoue de manière aléatoire sans changement de code. Causes fréquentes : timing, ordre d'exécution, état partage, dépendances externes.
Analogie
Comme un détecteur de fumée qui sonne parfois sans raison : on finit par l'ignorer, même quand il y a un vrai incendie.
Exemple de code
// FLAKY: depend du timing
test('shows notification', async () => {
triggerNotification();
// Mauvais: delai fixe fragile
await sleep(500);
expect(screen.getByText('Done')).toBeVisible();
});
// FIX: utiliser waitFor
await waitFor(() => {
expect(screen.getByText('Done')).toBeVisible();
});
Cas d'usage
Pour identifier et corriger les tests instables qui minent la confiance de l'équipe dans la CI.
Anti-pattern
Re-run automatique des flaky tests au lieu de les corriger, masquant des vrais problèmes.