C’est tout. A partir de là, MutaTesting va procéder à un certain nombre de processus :
- les tests vont être lancés une première fois
- chaque suite de test va être isolée, puis relancée pour déterminer quelles sources PHP elle permet de tester
- le code source est converti en tokens, puis chaque token transformable est transformé en mutant
- chaque suite de test va être relancée sur chaque mutation de code
Bien entendu, votre code source n’est jamais modifié. En réalité, l’outil joue avec un StreamWrapper spécifique pour le flux de fichier standard (file://) pour substituer la mutation à votre code originel.
Voici quelques exemples de bugs qui peuvent être introduits :
- remplacer un test d’égalité (« == ») par un test de non-égalite ( » != « )
- remplacer » true » par « false »
- supprimer un bloc » else «
Partager