LittleDarwin vs Mutatest
LittleDarwin
aliparsai.github.ioMutatest
mutatest.readthedocs.ioSide by side
| Figure | LittleDarwin | Mutatest |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | Yes |
| Windows | — | Yes |
| macOS | — | Yes |
| Linux | Yes | Yes |
| API | — | Yes |
| Self-hosted | — | Yes |
| Plans published | 1 | 1 |
| Spec score · Mutation Testing Tools | 8.3 (#4) | 8.7 (#1) |
| Mutation operators | The command-line options include null-check and method-level mutation operators, as well as an option to use all operators. | Supported operators include arithmetic, bitwise, Boolean, comparison, membership, identity, conditional and index mutations. |
| Purpose | LittleDarwin generates mutants of Java source code and runs a build command to check whether the test suite detects them. | Mutatest is a diagnostic command-line tool for assessing test coverage by checking whether tests detect small code mutations. |
| Support | The maker invites users to email the author with feedback or suggestions. | The project directs users to its GitHub issue tracker to submit bugs or request features. |
Plans
In their own words
LittleDarwin
LittleDarwin is a Java mutation testing framework written in Python, available for Linux. It generates altered versions, or mutants, of Java source code, then runs a configured build command for each mutant to check whether the test suite detects the change. Its analysis has a mutation phase and a build phase, where each build is checked for success or failure. Users can select null-check or method-level mutation operators, or use all operators. The --higher-order option sets the mutation order, and the guide demonstrates second-order mutants. Project settings include a test project path and test command, build command, working directory, initial build command, cleanup commands, and build timeout. A Maven example runs `mvn clean test` for each mutant. Whitelist filters restrict analysis to selected packages or files, while blacklist filters exclude them. Generated mutants and full-analysis reports go into a LittleDarwinResults directory, and surviving mutants are reported. Installation uses pip, followed by running LittleDarwin as a Python module. The project is free under the GNU General Public License version 3 or later and is supported through donations.
Mutatest
Mutatest is a free command-line tool for Python projects that checks whether tests catch small changes to code. It creates valid mutations from Python’s Abstract Syntax Tree grammar and applies them to local __pycache__ files rather than changing source files. If coverage data is available, it can limit targets to lines marked as covered. Mutations are sampled randomly, with a seed available to make runs reproducible. Command-line controls include run modes, mutation categories, file exclusions, timeouts, reports, and thresholds for surviving mutants; an API supports custom controls. The documentation describes using test commands such as pytest and coverage data to filter targets. Mutatest can raise an exception when surviving mutants meet a configured threshold, including in automated runs such as CI. It supports Linux, macOS, and Windows, and is free under the MIT License. Installation requires Python 3.7 or 3.8; multiprocessing is available on 3.8, but not 3.7. Repeated test runs can be slow, so it is intended for diagnostics rather than every commit across an entire codebase.