Flaky Test

Testing 🟡 Mid

Dé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.
#testing#qualite#ci

← → au clavier pour passer d'une fiche à l'autre