LittleDarwin vs PIT
LittleDarwin
aliparsai.github.ioPIT
pitest.orgSide by side
| Figure | LittleDarwin | PIT |
|---|---|---|
| Price from | Free | — |
| Free plan | Yes | — |
| Free trial | — | — |
| Open source | — | — |
| Windows | — | Yes |
| macOS | — | Yes |
| Linux | Yes | Yes |
| Self-hosted | — | Yes |
| Plans published | 1 | 0 |
| Spec score · Mutation Testing Tools | 8.3 (#4) | 7.0 (#20) |
| Distribution | The project README instructs users to install the package with `pip3 install littledarwin`. | PIT releases are available through GitHub and its binaries are available on Maven Central. |
| Mutation operators | The command-line options include null-check and method-level mutation operators, as well as an option to use all operators. | PIT applies configurable bytecode mutations, including removing method calls, inverting logic, and altering return values. |
| Purpose | LittleDarwin generates mutants of Java source code and runs a build command to check whether the test suite detects them. | PIT runs unit tests against automatically modified versions of application code to measure whether tests detect faults. |
| Reports | A full analysis generates a report in the `LittleDarwinResults` directory. | PIT produces reports combining line coverage and mutation coverage information. |
| Support | The maker invites users to email the author with feedback or suggestions. | PIT directs users to its Google Group for support questions. |
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.
PIT
PIT is a free mutation-testing tool for Java and JVM bytecode projects. It measures whether unit tests detect faults by running them against modified versions of application code. Configurable bytecode mutations can remove method calls, invert logic, or change return values. PIT selects and prioritizes tests using line coverage, execution speed, and naming conventions, then reports mutation coverage alongside line coverage. It can run from the command line, Ant, or Maven; third-party integrations are listed for Gradle, Eclipse, and IntelliJ. Java is supported directly, and Kotlin use is available through the ArcMutate plugin. PIT supports JUnit 3, JUnit 4, and TestNG; JUnit 5 needs a plugin. Versions 1.4.0 and later require Java 8 or above and JUnit or TestNG on the classpath. Mutation runs can take a long time depending on codebase size and test-suite speed, so PIT recommends focusing on changed code. It mutates bytecode and requires line numbers and source file names in that bytecode.