Le but du mutation testing est de vérifier dans un premier temps si notre couverture de tests est fiable. En effet, il n'y pas de que la couverture de tests qui compte, mais également leur pertinence et leur efficacité. En quelques mot, il s'agit de mesurer le comportement de notre harnais de tests face à du code qui mute (refactoring, correction de bug, refonte d'architecture, etc...) et ainsi déterminer si celui-ci couvre bien le cas pour lequel il a été conçu.
Le principe étant lors de l'exécution des tests de faire muter notre code source et ainsi s'assurer que les mutants ont bien été éliminés : on entend par mutants, les parties de code source ayant muté. Il devient alors évident qu'un test bien fait se plantera dès lors qu'il rencontrera du code ayant un comportement autre que celui de prévu (il existe malheureusement des cas ou la mutation est "légitime"). Si ce n'est pas le cas, c'est que votre test n'est bon et qu'il ne couvre pas correctement votre implémentation.
Pour un peu plus de détail sur la mise en place du mutation testing, n'hésitez pas à aller voir mon article sur mon Wiki pro Reservoir code.
Introduction au Mutation Testing
Bonne lecture,
Crédit photo : https://pixabay.com/fr/users/jackmac34-483877/
Commentaires