go-mutesting vs LittleDarwin
go-mutesting
github.comLittleDarwin
aliparsai.github.ioSide by side
| Figure | go-mutesting | LittleDarwin |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Linux | Yes | Yes |
| Self-hosted | Yes | — |
| Plans published | 1 | 1 |
| Spec score · Mutation Testing Tools | 8.0 (#6) | 8.3 (#4) |
| Integration | The tool can run Go package tests by default and supports external test commands through `--exec`. | The guide demonstrates running `mvn clean test` for each mutant in a Maven project. |
| Intended use | The README describes go-mutesting as an addition to automatic test suites and says it can help compare automatically generated and manually written test suites. | The maker describes LittleDarwin as designed for deployment in complex systems where other mutation tools may not work. |
| License | The repository identifies the project as MIT licensed. | The project is free software under the GNU General Public License, version 3 or later. |
| Purpose | go-mutesting performs mutation testing on Go source code to find code that is not covered by tests. | LittleDarwin generates mutants of Java source code and runs a build command to check whether the test suite detects them. |
| Support | The README invites users to make feature requests and report bugs or problems. | The maker invites users to email the author with feedback or suggestions. |
Plans
In their own words
go-mutesting
go-mutesting is a framework for mutation testing Go code to identify parts of a program that tests may not cover. It changes source code in controlled ways, runs tests, and reports whether each mutation is killed or survives; surviving mutations are accompanied by a source patch. Its mutation score reflects the share of generated mutations killed by the test suite. Targets may be Go files, directories, or packages, including recursive `...` patterns, while `_test` files are excluded. By default, it replaces the original file with a mutation and runs that package’s tests. Alternatively, an external command can test each mutation, with environment variables describing the change and exit codes indicating the result. Built-in mutators cover branches, comparisons, boolean expressions, statement removal, and Cosmos SDK arithmetic and comparisons. Custom mutators can be registered through the Mutator interface. The MIT-licensed tool is free and runs on Linux or in self-hosted environments. Its README positions mutation testing as a supplement to automatic test suites and cautions that false positives can occur.
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.