I mutate therefore I am
This document briefly explains what if Descartes and the minimum steps to use it or start using its repository. For a full documentation on how to use Descartes in other scenarios and how to configure it go to the project's website.
Descartes evaluates the capability of your test suite to detect bugs using extreme mutation testing. It is able to find the worst tested methods in a project.
Descartes is developed as a mutation engine plugin for PIT which implements extreme mutation operators as proposed in the paper Will my tests tell me if I break this code?. It also works alongside other PIT extensions to provide more meaningful and actionable results improve results.
To use Descartes in a Maven project, add the following plugin configuration to your pom.xml:
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>1.20.2</version>
<configuration>
<mutationEngine>descartes</mutationEngine>
</configuration>
<dependencies>
<dependency>
<groupId>eu.stamp-project</groupId>
<artifactId>descartes</artifactId>
<version>1.3.34</version>
</dependency>
</dependencies>
</plugin>Then, execute the regular mutation coverage goal in the root folder of the project under test:
cd my-project-under-test
mvn clean package org.pitest:pitest-maven:mutationCoverage
All options from PIT can be used. For more details check the PIT documentation.
If you use a multi-module project take a look at PitMP.
In a terminal, clone the repository:
git clone https://github.com/STAMP-project/pitest-descartes.git
switch to the cloned folder:
cd pitest-descartes
install Descartes using the regular Apache Maven commands:
mvn install
If you use Descartes on your research projects you may cite is as:
@inproceedings{vera_descartes_2018,
author = {Vera-Pérez, Oscar L. and Monperrus, Martin and Baudry, Benoit},
url = {https://dl.acm.org/citation.cfm?doid=3238147.3240474},
booktitle = {Proceedings of the 2018 33rd ACM/IEEE International Conference on Automated Software Engineering (ASE ’18)},
date = {2018},
month = {09},
doi = {10.1145/3238147.3240474},
pages = {908--911},
title = {Descartes: A {PITest} Engine to Detect Pseudo-Tested Methods},
urldate = {2019-08-06},
doi = {10.1145/3238147.3240474},
arxiv = {https://arxiv.org/abs/1811.03045},
hal = {https://hal.inria.fr/hal-01870976v1}
}Descartes is published under LGPL-3.0.
Issues, pull requests and other contributions are welcome. Check our GitHub repository
Until December 2019 Descartes was partially funded by the STAMP research project (European Commission - H2020).
