Note for Thomas (or whoever else is interested in improving the commons extension tests) there are plenty in ./xwiki-commons-core/xwiki-commons-extension/xwiki-commons-extension-api/target/pit-reports/201808071749/methods.json:pseudo-tested pseudo-tested pseudo-tested partially-tested partially-tested pseudo-tested pseudo-tested pseudo-tested pseudo-tested pseudo-tested partially-tested pseudo-tested pseudo-tested partially-tested pseudo-tested partially-tested pseudo-tested pseudo-tested pseudo-tested pseudo-tested pseudo-tested pseudo-tested pseudo-tested partially-tested partially-tested pseudo-tested pseudo-tested pseudo-tested pseudo-tested partially-tested pseudo-tested pseudo-tested pseudo-tested pseudo-tested pseudo-tested pseudo-tested pseudo-tested pseudo-tested partially-tested pseudo-tested pseudo-tested pseudo-tested pseudo-tested pseudo-tested pseudo-tested pseudo-tested pseudo-tested partially-tested pseudo-tested pseudo-tested pseudo-tested pseudo-tested pseudo-tested pseudo-tested pseudo-tested partially-tested partially-tested pseudo-tested partially-tested partially-tested partially-tested partially-tested partially-tested pseudo-tested pseudo-tested Fixing those should yield a good increase in both mutation score and test coverage. Thanks -Vincent
On 7 Aug 2018, at 18:05, Vincent Massol <[email protected]> wrote:
On 30 Jul 2018, at 12:39, Vincent Massol <[email protected]> wrote:
Hi devs,
It would be great if you could help improve our unit tests using Descartes. This is needed for the STAMP research project (https://www.stamp-project.eu/view/main/) and will benefit XWiki by having 2 effects: * increasing the test coverage * improving the tests themselves (increasing their mutation score)
Since 10.7 is 50% testing and 50% BFD, it would be great if you could spend all or a substantial part of your testing time working on this.
I propose the following strategy: * You find a module you want to work on. * In that module you run: mvn clean install -Pquality -Dxwiki.pitest.skip=false
You can also run that at the top of a multimodule project and then find pseudo/partially tested methods with:
find . -name "methods.json" -exec egrep -oH "pseudo-tested|partially-tested" {} \;
Thanks -Vincent
* Then you check target/pit-reports/<date>/issues/index.html and verify if there are "pseudo tested" methods listed (when we have finished fixing all of those we can move to “partially tested methods”). * If there are some, then please record the current jacoco threshold and the current mutation score. * You can get the jacoco threshold by running "mvn clean install -Pquality -Dxwiki.pitest.skip=false -Dxwiki.pitest.mutationThreshold=100” (or by checking target/pit-reports/<date>/index.html, I haven’t checked yet if they are the same). * You can get the current mutation score by checking target/pit-reports/<date>/index.html * Then fix the test so that Descartes doesn’t report any pseudo tested or partially tested methods * Update the jacoco threshold and the mutation scores in the pom.xml * Send a PR on https://github.com/STAMP-project/descartes-usecases-output/tree/master/xwiki using the format already defined there.
WDYT? Doable?
Thanks -Vincent