DSpot is a mutation testing tool that automatically generates new tests from existing test suites. It's being developed as part of the STAMP European research project (to which XWiki SAS is participating to, represented by me).
Very quickly, Dspot works as follows:
- Finds an existing test and remove
For full details, see this presentation by Benjamin Danglot (author of DSpot).
Today I tested the latest version of DSpot (I built it from its sources to have the latest code) and tried it on several modules of xwiki-common.
FTR here's what I did to test it:
- Cloned Dspot and built it with Maven by running mvn clean package -DskipTests. This generated a dspot/target/dspot-1.1.1-SNAPSHOT-jar-with-dependencies.jar JAR.
- For each module on which I tested it, I created a dspot.properties file. For example for xwiki-commons-core/xwiki-commons-component/xwiki-commons-component-api, I created the following file:project=../../../
targetModule=xwiki-commons-core/xwiki-commons-component/xwiki-commons-component-api
src=src/main/java/
srcResources=src/main/resources/
testSrc=src/test/java/
testResources=src/test/resources/
javaVersion=8
outputDirectory=output
filter=org.xwiki.*Note that project is pointing to the root of the project.
- Then I executed: java -jar /some/path/dspot/dspot/target/dspot-1.1.1-SNAPSHOT-jar-with-dependencies.jar
path-to-properties dspot.properties - Then checked results in output/* to see if new tests have been generated
I had to test DSpot on 6 modules before getting any result, as follows:
- xwiki-commons-core/xwiki-commons-cache/xwiki-commons-cache-infinispan/: No new test generated by DSpot. One reason was because DSpot modifies the test sources and the tests in this module were extending Abstract test classes located in other modules and this DSpot didn't touch those and was not able to modify them to generate new tests.
- xwiki-commons-core/xwiki-commons-component/xwiki-commons-component-api/: No new test generated by DSpot.
- xwiki-commons-core/xwiki-commons-component/xwiki-commons-component-default/: No new test generated by DSpot.
- xwiki-commons-core/xwiki-commons-component/xwiki-commons-component-observation/: No new test generated by DSpot.
- xwiki-commons-core/xwiki-commons-context/: No new test generated by DSpot.
- xwiki-commons-core/xwiki-commons-crypto/xwiki-commons-crypto-cipher/: Eureka! One test was generated by Dspot
Here's the original