mutation-testing

Vérifie que les tests détectent réellement des bugs — pas seulement qu’ils exécutent du code — en entrant dans la phase COMMIT & VERIFY du cycle TDD.

Quand l’utiliser

Ne jamais exécuter sur une baseline rouge — corriger les tests d’abord.

Contrat d’entrée

Contrat de sortie

Invariants

Pourquoi cette forme

La couverture de code mesure l’exécution, pas la détection de bugs. Le test de mutation injecte des défauts contrôlés (opérateurs arithmétiques, comparaisons, booléens, conditionnels, valeurs de retour, LINQ) et vérifie que les tests échouent. Un mutant qui survit révèle un cas limite non testé ou un test insuffisamment assertif.

« A test that kills no mutant is noise. DELETE IT. »

Le flux déterministe en 5 étapes (run → parse JSON → classify → kill → re-run scoped) garantit une confiance reproductible dans la qualité des tests, indépendamment de l’interprétation humaine.

Customisation autorisée

Voir aussi