[ANN] Mutaml 0.1

I’m happy to announce the release of Mutaml 0.1, a mutation testing tool for OCaml:

Mutaml attempts to make small random changes your code, e.g., turning e+1 into e to see if the off-by-one change is caught by your test suite. By finding examples of uncaught wrong behaviour, it can thereby reveal limitations of a test suite and indirectly suggest improvements.

gif demo illustrating mutaml

Overall 0.1 is considered an initial working prototype.

@raphael-proust previously blogged about how he used it while developing Seqes.

Acknowledgements

Mutaml was developed with support from the OCaml Software Foundation.
While developing it, I also benefitted from studying the nice source code of @antron’s bisect_ppx.

16 Likes

I’m happy to share news of the Mutaml 0.3 release! :tada:

Together with the recent 0.2 release, this brings Mutaml up to speed with recent ppxlib releases and addresses a few issues reported by brave, early users:

  • Avoid mutations in attribute parameters #29
  • Avoid polymorphic equality which is incompatible with Core #30
  • Add support for ppxlib.0.28 and above #27
  • Avoid triggering 2 mutations of a pattern incl. a when-clause causing a redundant sub-pattern warning #22, #23

Happy testing! :smiley:

4 Likes