Bonjour,
Je vient de lire l'article de Jean-François Lépine sur son logiciel MutaTesting de contrôle de qualité des tests unitaires.
Je m'intéresse à l'idée de triturer des tests unitaire dynamiquement, donc sans avoir a y effectuer de changement, pour assurer le suivis de leur qualité. Mais j'aimerasi mieux comprendre la manière dont cela fonctionne. Citation:
Je n'es pas bien compris, que va en fait modifer la mutation au niveau des test unitaire ?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