EVERYTHING XIAOMI
Get listed

Mutatest

Mutatest is a free command-line tool for Python that checks whether tests catch small changes to code.

Place
#1 of 25
Score
7.2
Mutatest's website

What Mutatest is

Mutatest is a free command-line tool for Python that checks whether tests catch small changes to code. It creates valid mutations using 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 focus mutations on lines marked as covered. Mutation locations and possible changes are sampled randomly, with a seed available to make trials reproducible. Command-line options include run modes, mutation categories, exclusions, timeouts, reports, and thresholds for surviving mutants; an API allows custom controls. The documentation describes using test commands such as pytest, but only pytest has been tested to date. Mutatest can raise an exception when survivors meet a configured threshold, which can make it useful in a CI stage. It runs on Linux, macOS, and Windows, and requires Python 3.7 or 3.8. Multiprocessing is supported on 3.8, not 3.7. The free plan is free under the MIT License.

Good

  • Free plan listed as free.
  • Can restrict mutation targets to covered lines.
  • Random seed can make trials reproducible.
  • Can report surviving mutants and enforce a threshold.
  • Includes an API for custom mutation controls.

Watch out

  • Only pytest has been tested to date.
  • Python 3.7 does not support parallelization.
  • Repeated test-suite runs can make mutation testing slow.
  • Requires Python 3.7 or Python 3.8.

Who it suits

Mutatest suits Python developers who want to check whether their tests detect code changes, especially when they need mutation thresholds in automated runs. It is intended for diagnostic use rather than repeated runs across an entire codebase on every commit.

Verdict

Mutatest offers configurable mutation checks for Python tests, with coverage filtering and survivor thresholds. Its documented test-runner support is limited to pytest, and repeated runs can be slow, so it is better suited to targeted diagnostics than checking an entire codebase on every commit.

Plans and prices

From Mutatest's own pricing page, checked 2 Oct 2026.

All about pricing
PlanPriceWhat it gives you
MutatestFreeFree and open source under the MIT License

The facts

Each one read from Mutatest's own pages, with the date it was checked.

What it does

API
Mutatest includes an API for custom mutation controls.checked 2 Oct 2026
API objects
The documented API centers on Genome, GenomeGroup and Mutant objects.checked 15 Oct 2026
AST mutation engine
Mutations are generated from Python's Abstract Syntax Tree grammar.checked 15 Oct 2026
CI use
Mutatest can raise an exception when surviving mutants meet a configured threshold, for use in automated runs such as a continuous integration stage.checked 2 Oct 2026
CLI configuration
Settings can be supplied through mutatest.ini or setup.cfg sections named mutatest or tool:mutatest.checked 15 Oct 2026
Controls
The command line supports run modes, mutation category selection, file exclusions, timeouts, output reports, and survivor thresholds.checked 2 Oct 2026
Coverage
When coverage data is available, mutation targets can be restricted to lines marked as covered.checked 2 Oct 2026
Coverage guidance
Coverage data can restrict mutation targets to code executed by tests.checked 15 Oct 2026
Custom API
The package exposes an API for custom mutation controls.checked 15 Oct 2026
Diagnostic positioning
The installation guide describes Mutatest as a diagnostic tool and cautions that running a full suite repeatedly can be slow for continuous integration.checked 15 Oct 2026
Documentation depth
Documentation includes installation, command-line controls, API reference, API tutorial, mutation operators and contributing guidance.checked 15 Oct 2026
Execution modes
The command line supports fast and detection or survival stopping modes, including f, s, d and sd.checked 15 Oct 2026
Independent activity record
Ecosyste.ms reported the last repository push as February 17, 2023.checked 15 Oct 2026
Independent popularity record
Ecosyste.ms reported 97 stars, 18 forks and two watchers when it last synced the repository.checked 15 Oct 2026
Independent repository record
Ecosyste.ms records the repository as created on December 22, 2018, with MIT licensing.checked 15 Oct 2026
Install channels
Installation is documented through pip, conda-forge or a local source checkout.checked 15 Oct 2026
Integrations
The documentation describes running test commands such as pytest and using coverage data to filter mutation targets.checked 2 Oct 2026
Known limitation
The documentation warns that repeated test-suite runs can make mutation testing slow, so it is intended as a diagnostic tool rather than a run over an entire codebase on every commit.checked 2 Oct 2026
Latest release
PyPI lists version 3.1.0 as released on February 20, 2022.checked 15 Oct 2026
Licence
PyPI identifies the project as MIT licensed and OSI-approved.checked 15 Oct 2026
Limit: diagnostics
The public issue tracker contains an open report about being unable to retrieve failing-test information for mutants, opened May 28, 2025.checked 15 Oct 2026
Limit: maintenance
The public issue tracker contains an open request to support newer Python versions, opened November 30, 2025.checked 15 Oct 2026
Limit: mutation coverage
An open issue reports that type hints are not ignored as mutation targets.checked 15 Oct 2026
Limit: parallel integration
An independent Reddit comparison says Mutatest lacks pytest-xdist integration and that its last PyPI release was in 2022.checked 15 Oct 2026
The full review of Mutatest

Mutatest is a free command-line mutation-testing tool for Python projects. It is best for developers who want to investigate whether tests catch small code changes and can use pytest. Coverage filtering and configurable runs make it useful for focused diagnostics, though repeated test runs limit its fit for frequent, whole-codebase checks.

Overview

Mutation testing probes a test suite by introducing small changes and checking whether tests detect them. Mutatest generates valid mutants from Python’s Abstract Syntax Tree grammar and applies them to local __pycache__ files instead of source files. For developers who want to assess test effectiveness without changing source files, that is a practical distinction.

When coverage data is available, runs can target covered lines, concentrating effort on code the suite reaches. Mutation locations and candidate changes are sampled randomly, but a seed makes a run reproducible. Since the process can require repeated test-suite runs, Mutatest is better suited to deliberate diagnostics than an exhaustive check on every commit.

Key features

Configurable mutation checks

The command line supports run modes, mutation-category selection, file exclusions, timeouts, reports, and thresholds for surviving mutants. Operators cover augmented assignment, binary operations, bitwise comparisons and shifts, Boolean operations, comparisons, conditionals, indexing, names, and slices. This range and an API for custom controls give users room to tailor an investigation; users seeking a simple pass over a large codebase may find the repeated runs a poor trade-off.

Coverage and automated runs

Coverage data can narrow mutation targets to lines marked as covered. A configured survivor threshold can raise an exception when enough mutants survive, making the result usable as a quality gate in an automated stage. That offers a way to flag weak tests, but the documented warning about runtime makes broad per-commit checks less suitable.

Runner and Python constraints

The documentation describes supplying test commands, but only pytest has been tested. Installation requires Python 3.7 or 3.8; multiprocessing is supported on 3.8, while parallelization is unavailable on 3.7. Those constraints make Mutatest a more natural fit for teams already using the documented Python versions and pytest than for projects built around another runner or newer Python releases.

Pricing

Mutatest costs nothing. It is free and open source under the MIT License, with mutation checks, survivor reports, and quality-gate support included. There is no paid tier or trial to weigh against a limited free plan, so it suits individual developers and teams that can work within its platform and runner constraints.

Platforms

The project reports testing on Linux, Windows, and macOS with Azure pipelines. Python 3.7 and 3.8 are the documented installation requirements, with parallel execution limited to Python 3.8.

Who it's for

Mutatest fits Python developers who want to find gaps in a pytest suite, focus on covered lines, and use survivor thresholds in a diagnostic or CI stage. It is less suitable for teams that need a tested runner other than pytest, depend on parallel execution with Python 3.7, or expect to run mutation checks over the entire codebase on every commit.

Pros and cons

  • Focused targeting: Coverage filtering can direct mutation checks toward executed lines rather than spending effort on uncovered code.
  • Reproducible sampling: A seed can make random trials repeatable, helping teams revisit a diagnostic result.
  • Useful automation controls: Survivor thresholds can raise exceptions, and reports and timeouts help shape automated runs.
  • Narrow tested runner support: Only pytest has been tested, which limits confidence for projects using other test commands.
  • Potentially slow at scale: Repeated suite runs make exhaustive, frequent checks a poor fit.
  • Version-dependent parallelism: Multiprocessing is supported on Python 3.8 but not Python 3.7.

Alternatives

For a free Python-focused option that requires Python 3.11 or newer and runs on Linux, consider pytest-gremlins. If open-source mutation testing for JavaScript or TypeScript, C#, or Scala is the priority, Stryker Mutator is the more relevant choice.

ArcMutate offers a free open-source-project plan and a free trial, alongside paid pricing; it may suit readers who want to compare a freemium alternative. Mutant has a free full-featured plan for public repositories and a commercial monthly plan billed per developer, making it an option for readers weighing public-repository use against paid commercial use.

pymute is another free option for Linux users willing to install it with Rust and Cargo. Infection, Gambit, and mutmut are also free alternatives. Browse the Mutation Testing Tools category for more options.

Verdict

Choose Mutatest if you need a free, configurable way to diagnose whether Python tests catch small changes, particularly when coverage targeting and survivor thresholds matter. Its main draw is the control it gives focused mutation runs; look elsewhere if you need a tested runner beyond pytest or fast, exhaustive checks on every commit.

Alternatives to Mutatest

All alternatives
  1. 1ArcMutate logo

    ArcMutate

    Free planLinuxmacOSSelf-hostedWindows
    6.7From $8 a month
  2. 2

    Mutant

    Free planLinuxmacOS
    6.7From $250 a year
  3. 3

    MuJava

    Free planLinuxmacOSWindows
    6.3Free plan
  4. 4

    pymute

    Free planLinux
    6.3Free plan
  5. 5

    go-mutesting

    Free planLinuxSelf-hosted
    6.2Free plan
  6. 6

    LittleDarwin

    Free planLinux
    6.2Free plan