Le test qui échoue : déboguer l'automatisation comme un senior · Leçon 1 sur 6 · Module bonus

Les quatre questions qui trient tout échec

Un test rouge est une affirmation, pas un verdict. Quatre questions vous disent quel problème vous avez réellement — avant de toucher au code.

Par Shahriyar · Mis à jour

Posez-les dans l'ordre

  1. A-t-il déjà passé ? Vérifiez git log sur le fichier de test. Un test qui n'a jamais été vert est un problème de nouveau test, pas une régression.
  2. Échoue-t-il en local ? Les échecs uniquement en CI sont des problèmes d'environnement — la leçon 5 les couvre. Échouer sur votre machine est une bonne nouvelle : vous pouvez le voir.
  3. Échoue-t-il seul ? Exécutez juste ce test-là. Passe seul mais échoue dans la suite ? Un autre test lui fuit un état dessus.
  4. Échoue-t-il à chaque fois ? Exécutez-le dix fois. 10/10 est un vrai bug — suivez la trace. 3/10 est une race condition — le timing est le suspect.
▸ The four questions as commands
# 1. did it ever pass?
git log --oneline -- tests/test_checkout.py

# 2 + 3. does it fail locally — alone, and in company?
pytest tests/test_checkout.py::test_guest_checkout
pytest tests/

# 4. does it fail every time?
for i in {1..10}; do pytest -q tests/test_checkout.py::test_guest_checkout; done

Ce que signifient les réponses

Basé sur la doc pytest sur la sélection et la ré-exécution des tests

Toutes les leçons de Le test qui échoue : déboguer l'automatisation comme un senior

  1. Les quatre questions qui trient tout échec
  2. Lire le traceback comme un senior
  3. Rétrécir l'espace de recherche
  4. Instable ou cassé : prouvez-le avec un chiffre
  5. Ça n'échoue qu'en CI
  6. Le compte rendu : bug produit ou bug de test