SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
Mutation testing
Ou évaluer l’efficacité de vos tests !
Tests de mutations
Qu’est-ce qu’un bon test?
@Test
@Test
@Test
@Test @Test
@TestKO
OK @Test
Tests de mutations
Qu’est-ce qu’un bon test
Un test qui passe toujours ?
?
OK @Test
OK @Test
OK @Test
Tests de mutations
Qu’est-ce qu’un bon test
… Si le test passe ?
?OK @Test
@Test
?
@Test
Tests de mutations
Qu’est-ce qu’un bon test ?
… Si le test échoue ?
@TestKO
@Test
@Test
1)
2)
3)
4) REFACTOR
5) REPEAT
TDD
Tests de mutations
Une méthode ou une métrique?
@TestKO
OK @Test
Couverture de code
Tests de mutations
Une métrique fiable & accessible ?
OK @Test
Assert?
Assert(alwaysTrue)
Assert(somethingElse)
Tests de mutations
Mutation testing
Une métrique efficace de mesure de la qualité d’un jeu de test
@Test( )
Tests de mutations
Mutation : un bug ou presque
Une anomalie… dont vous contrôlez la présence
Tests de mutations
Mutation : un bug ou presque
Une anomalie… dont vous contrôlez la présence
Test de mutations
Tests de mutations
Le principe d’un test
@Test“data1”
“data2”
Assert(“Hello data1”)
@Test Assert(“Hello data2”)
Test de mutations
Tests de mutations
Le principe d’un test de test : Testons nos tests !
MUTATION KILLED
@TestKO
OK @Test@Test
@Test
Pitest
Tests de mutations
Un simple plugin maven
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>LATEST</version>
</plugin>
MUTATION KILLED
Tests de mutations
Tests de mutations
Une couverture du code “assertée”, et non plus juste “exécutée”
Survived !
cover
uncover
@TestKO
OK @Test
@Test
@Test
Pitest
Tests de mutations
Vérifier que les tests sont capables d’échouer en cas de bug
DEMO !
Pitest
Tests de mutations
Vérifier que les tests sont capables d’échouer en cas de bug
REX !
Pitest
Tests de mutations
Takeaways
▼ Tests de mutations, pour une couverture fiable du code asserté par les tests
▼ pitest-maven-plugin
▼ Diverses extensions disponibles pour une meilleure prise en main
(sonar, cucumber, pull-request, annotations...)
▼ Exemples de code et extensions ici : https://github.com/sarahBuisson
Pitest
Tests de mutations
De solides avantages
Une couverture du code “assertée”, pas juste vérifiée
Difficile à tromper
Customisable
Mutations majoritairement centrées sur les parties “logique & metier” du code
Un rapport clair et efficace
Pitest
Tests de mutations
Quelques inconvénients:
Calcul également les mutations pour le code généré
Long
Beaucoup de données à lire
Uniquement pour les tests unitaires “normaux”
Pas une baguette magique
Calcul également les mutations pour le code généré
Long
Beaucoup de données à lire
Uniquement pour les tests unitaires “normaux”
pas une baguette magique
Pitest
Tests de mutations
Quelques inconvénients … mais des possibilités d’extension
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
...
<dependencies>
<dependency>
<groupId>com.github.sarahbuisson</groupId>
<artifactId>pitest-scm-extension</artifactId>
<version>LATEST</version>
</dependency>
<dependency>
<groupId>org.sbuisson</groupId>
<artifactId>pitest-generated-extension</artifactId>
<version>LATEST</version>
</dependency>
</plugin>
extensions disponible ici: https://github.com/sarahBuisson/pitest-extensions
Mutation testing
extensions disponible ici: https://github.com/sarahBuisson/pitest-extensions

Contenu connexe

Similaire à XebiCon'17 : Mutation testing, ou évaluer l’efficacité de vos tests ! - Sarah Buisson

Le rôle du testeur et le Blackbox testing
Le rôle du testeur et le Blackbox testingLe rôle du testeur et le Blackbox testing
Le rôle du testeur et le Blackbox testingGeeks Anonymes
 
Intro sur les tests unitaires
Intro sur les tests unitairesIntro sur les tests unitaires
Intro sur les tests unitairesPHPPRO
 
Test unitaire
Test unitaireTest unitaire
Test unitaireIsenDev
 
Tester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue techTester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue techMarine Karam
 
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)French Scrum User Group
 
Outils et pratiques : tester une application web moderne
Outils et pratiques : tester une application web moderneOutils et pratiques : tester une application web moderne
Outils et pratiques : tester une application web modernehalleck45
 
100% couverture de code par les tests
100% couverture de code par les tests100% couverture de code par les tests
100% couverture de code par les testsVincent Tencé
 
testUnitaire (1).pptx
testUnitaire (1).pptxtestUnitaire (1).pptx
testUnitaire (1).pptxManalAg
 
TDD avec ou sans mock
TDD avec ou sans mockTDD avec ou sans mock
TDD avec ou sans mockYannick Ameur
 
La qualité au meilleur prix grâce aux tests unitaires
La qualité au meilleur prix grâce aux tests unitairesLa qualité au meilleur prix grâce aux tests unitaires
La qualité au meilleur prix grâce aux tests unitairesGauthier Delamarre
 
Human Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDDHuman Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDDXavier NOPRE
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2Christophe Rochefolle
 
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet AgileLes cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet AgileDenis Voituron
 

Similaire à XebiCon'17 : Mutation testing, ou évaluer l’efficacité de vos tests ! - Sarah Buisson (17)

Le rôle du testeur et le Blackbox testing
Le rôle du testeur et le Blackbox testingLe rôle du testeur et le Blackbox testing
Le rôle du testeur et le Blackbox testing
 
Intro sur les tests unitaires
Intro sur les tests unitairesIntro sur les tests unitaires
Intro sur les tests unitaires
 
Test unitaire
Test unitaireTest unitaire
Test unitaire
 
Tester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue techTester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue tech
 
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
 
Outils et pratiques : tester une application web moderne
Outils et pratiques : tester une application web moderneOutils et pratiques : tester une application web moderne
Outils et pratiques : tester une application web moderne
 
100% couverture de code par les tests
100% couverture de code par les tests100% couverture de code par les tests
100% couverture de code par les tests
 
testUnitaire (1).pptx
testUnitaire (1).pptxtestUnitaire (1).pptx
testUnitaire (1).pptx
 
TDD avec ou sans mock
TDD avec ou sans mockTDD avec ou sans mock
TDD avec ou sans mock
 
La qualité au meilleur prix grâce aux tests unitaires
La qualité au meilleur prix grâce aux tests unitairesLa qualité au meilleur prix grâce aux tests unitaires
La qualité au meilleur prix grâce aux tests unitaires
 
Test unitaire
Test unitaireTest unitaire
Test unitaire
 
Test unitaire
Test unitaireTest unitaire
Test unitaire
 
Anatomie du test
Anatomie du testAnatomie du test
Anatomie du test
 
Bbl sur les tests
Bbl sur les testsBbl sur les tests
Bbl sur les tests
 
Human Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDDHuman Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDD
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2
 
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet AgileLes cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
 

Plus de Publicis Sapient Engineering

XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humainXebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humainPublicis Sapient Engineering
 
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveurXebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveurPublicis Sapient Engineering
 
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...Publicis Sapient Engineering
 
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin Publicis Sapient Engineering
 
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?Publicis Sapient Engineering
 
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?Publicis Sapient Engineering
 
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribuéXebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribuéPublicis Sapient Engineering
 
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...Publicis Sapient Engineering
 
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !Publicis Sapient Engineering
 
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des datavizXebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des datavizPublicis Sapient Engineering
 
XebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilitéXebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilitéPublicis Sapient Engineering
 
XebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID ConnectXebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID ConnectPublicis Sapient Engineering
 
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...Publicis Sapient Engineering
 
XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018Publicis Sapient Engineering
 
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...Publicis Sapient Engineering
 
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...Publicis Sapient Engineering
 

Plus de Publicis Sapient Engineering (20)

XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humainXebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
 
Xebicon'18 - IoT: From Edge to Cloud
Xebicon'18 - IoT: From Edge to CloudXebicon'18 - IoT: From Edge to Cloud
Xebicon'18 - IoT: From Edge to Cloud
 
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveurXebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
 
XebiCon'18 - Modern Infrastructure
XebiCon'18 - Modern InfrastructureXebiCon'18 - Modern Infrastructure
XebiCon'18 - Modern Infrastructure
 
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
 
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
 
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
 
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
 
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribuéXebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
 
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
 
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
 
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des datavizXebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
 
XebiCon'18 - Le développeur dans la Pop Culture
XebiCon'18 - Le développeur dans la Pop Culture XebiCon'18 - Le développeur dans la Pop Culture
XebiCon'18 - Le développeur dans la Pop Culture
 
XebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilitéXebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilité
 
XebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID ConnectXebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID Connect
 
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
 
XebiCon'18 - Spark NLP, un an après
XebiCon'18 - Spark NLP, un an aprèsXebiCon'18 - Spark NLP, un an après
XebiCon'18 - Spark NLP, un an après
 
XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018
 
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
 
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
 

XebiCon'17 : Mutation testing, ou évaluer l’efficacité de vos tests ! - Sarah Buisson

  • 1. Mutation testing Ou évaluer l’efficacité de vos tests !
  • 2. Tests de mutations Qu’est-ce qu’un bon test? @Test @Test @Test @Test @Test @TestKO OK @Test
  • 3. Tests de mutations Qu’est-ce qu’un bon test Un test qui passe toujours ? ? OK @Test OK @Test OK @Test
  • 4. Tests de mutations Qu’est-ce qu’un bon test … Si le test passe ? ?OK @Test @Test ? @Test
  • 5. Tests de mutations Qu’est-ce qu’un bon test ? … Si le test échoue ? @TestKO @Test @Test
  • 6. 1) 2) 3) 4) REFACTOR 5) REPEAT TDD Tests de mutations Une méthode ou une métrique? @TestKO OK @Test
  • 7. Couverture de code Tests de mutations Une métrique fiable & accessible ? OK @Test Assert? Assert(alwaysTrue) Assert(somethingElse)
  • 8. Tests de mutations Mutation testing Une métrique efficace de mesure de la qualité d’un jeu de test @Test( )
  • 9. Tests de mutations Mutation : un bug ou presque Une anomalie… dont vous contrôlez la présence
  • 10. Tests de mutations Mutation : un bug ou presque Une anomalie… dont vous contrôlez la présence
  • 11. Test de mutations Tests de mutations Le principe d’un test @Test“data1” “data2” Assert(“Hello data1”) @Test Assert(“Hello data2”)
  • 12. Test de mutations Tests de mutations Le principe d’un test de test : Testons nos tests ! MUTATION KILLED @TestKO OK @Test@Test @Test
  • 13. Pitest Tests de mutations Un simple plugin maven <plugin> <groupId>org.pitest</groupId> <artifactId>pitest-maven</artifactId> <version>LATEST</version> </plugin>
  • 14. MUTATION KILLED Tests de mutations Tests de mutations Une couverture du code “assertée”, et non plus juste “exécutée” Survived ! cover uncover @TestKO OK @Test @Test @Test
  • 15. Pitest Tests de mutations Vérifier que les tests sont capables d’échouer en cas de bug DEMO !
  • 16. Pitest Tests de mutations Vérifier que les tests sont capables d’échouer en cas de bug REX !
  • 17. Pitest Tests de mutations Takeaways ▼ Tests de mutations, pour une couverture fiable du code asserté par les tests ▼ pitest-maven-plugin ▼ Diverses extensions disponibles pour une meilleure prise en main (sonar, cucumber, pull-request, annotations...) ▼ Exemples de code et extensions ici : https://github.com/sarahBuisson
  • 18. Pitest Tests de mutations De solides avantages Une couverture du code “assertée”, pas juste vérifiée Difficile à tromper Customisable Mutations majoritairement centrées sur les parties “logique & metier” du code Un rapport clair et efficace
  • 19. Pitest Tests de mutations Quelques inconvénients: Calcul également les mutations pour le code généré Long Beaucoup de données à lire Uniquement pour les tests unitaires “normaux” Pas une baguette magique
  • 20. Calcul également les mutations pour le code généré Long Beaucoup de données à lire Uniquement pour les tests unitaires “normaux” pas une baguette magique Pitest Tests de mutations Quelques inconvénients … mais des possibilités d’extension <plugin> <groupId>org.pitest</groupId> <artifactId>pitest-maven</artifactId> ... <dependencies> <dependency> <groupId>com.github.sarahbuisson</groupId> <artifactId>pitest-scm-extension</artifactId> <version>LATEST</version> </dependency> <dependency> <groupId>org.sbuisson</groupId> <artifactId>pitest-generated-extension</artifactId> <version>LATEST</version> </dependency> </plugin> extensions disponible ici: https://github.com/sarahBuisson/pitest-extensions
  • 21. Mutation testing extensions disponible ici: https://github.com/sarahBuisson/pitest-extensions