Test de mutation
Procédé qui introduit volontairement de petites erreurs dans le code afin de vérifier la pertinence des tests.
Un test de mutation modifie volontairement le code de façon minimale à certains endroits – par exemple un opérateur de comparaison est inversé ou une constante est changée – et vérifie si la suite de tests existante remarque cette modification, appelée mutation. Si aucun test n’échoue, la mutation a « survécu », et les tests ne couvrent probablement pas suffisamment cet endroit.
Les tests de mutation comblent une lacune que la simple couverture de tests laisse ouverte : du code peut être parcouru sans qu’aucun test ne vérifie réellement que le résultat est correct. Comme chaque mutation réexécute l’intégralité de la suite de tests, le procédé est gourmand en calcul et, en pratique, ne s’exécute souvent pas à chaque commit.
À quoi Provimedia l'utilise
Provimedia utilise les tests de mutation dans certains projets comme gate local afin de révéler les angles morts de sa propre suite de tests.
Utiliser Test de mutation pour votre projet ?
Découvrons lors d'un entretien gratuit comment nous pouvons le mettre en œuvre pour vous.
Plus dans Qualité logicielle
Clean Code
Principe directeur pour un code conçu pour être compris par des humains et pas seulement par le compilateur.
En savoir plusRevue de code
Examen systématique du code par d’autres développeurs avant sa fusion dans la branche principale.
En savoir plusCode Smell
Motif remarquable dans le code qui n’est pas forcément faux, mais qui révèle un problème plus profond.
En savoir plusDefinition of Done
Liste écrite de critères convenue en équipe, qu’une tâche doit remplir pour être considérée comme terminée.
En savoir plusLinting
Vérification automatisée du code pour détecter des erreurs de style et de mise en forme selon des règles fixes.
En savoir plusQuality Gate
Étape de contrôle du pipeline de développement qui ne laisse passer une modification que si des critères fixes sont remplis.
En savoir plusRefactoring
Restructuration ciblée du code existant sans en modifier le comportement externe.
En savoir plusTest de régression
Nouveau test des fonctions existantes après une modification afin de détecter les erreurs nouvellement apparues.
En savoir plus