EVERYTHING XIAOMI
Get listed

mutmut

mutmut is an open-source mutation testing system for Python that helps teams check whether their pytest tests catch changes to code.

Place
#15 of 25
Score
5.7
mutmut's website

What mutmut is

mutmut is an open-source mutation testing system for Python that helps teams check whether their pytest tests catch changes to code. It creates mutants by incrementing integer literals, changing < to <=, or swapping break and continue. Its interactive terminal interface lets users browse mutants, write one to disk, add tests to address surviving changes, and rerun individual mutants. mutmut remembers completed work for incremental runs and selects which tests to execute for each mutant. Execution is described as parallel and fast. When configured, coverage.py can restrict mutations to covered lines, while mypy or pyrefly can filter mutants; pyright and ty are not supported for that filtering purpose. It can also export CI/CD statistics and generate mutation-score badge JSON for a Shields endpoint. Configuration in setup.cfg or pyproject.toml supports source paths and pytest selection arguments. mutmut requires Python 3.10 or later and a system with fork support. It runs on Linux and macOS; Windows users must run it inside WSL. Version 3 and later mutate code inside functions, while version 2 has a different model for code outside functions.

Good

  • Continues mutation runs incrementally.
  • Selects tests to execute for each mutant.
  • Offers interactive terminal mutant browsing.
  • Can use coverage.py, mypy, or pyrefly filters.
  • Exports CI statistics and badge JSON.

Watch out

  • Requires Python 3.10 or later.
  • Windows use requires WSL.
  • Requires a system with fork support.
  • Does not support pyright or ty for mutant filtering.

Who it suits

It suits Python developers using pytest who want to assess whether their tests catch selected code changes. Windows users need to run it inside WSL.

Verdict

mutmut combines incremental mutation runs, test selection, and terminal browsing for Python projects. Check its Python and fork-support requirements, and note the stated limits on type-checker filtering.

The facts

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

Where it runs

Applying mutants
Users can write a mutant to disk from the browse interface or with the mutmut apply command.checked 7 Oct 2026
Windows requirement
mutmut requires fork support, so the documentation says Windows users must run it inside WSL.checked 8 Oct 2026

What it does

CI output
It can export CI statistics and create mutation score badge data for a Shields endpoint.checked 8 Oct 2026
Configuration
Configuration is supported in setup.cfg or pyproject.toml, including source paths and pytest test selection arguments.checked 8 Oct 2026
Coverage and type checking
Optional filters can use coverage.py to select covered lines and mypy or pyrefly to filter invalid mutants.checked 8 Oct 2026
Coverage integration
mutmut can use coverage.py to filter mutations to covered lines when configured.checked 7 Oct 2026
Distribution
The PyPI listing shows mutmut version 3.8.0, released September 12, 2026.checked 7 Oct 2026
Incremental runs
It remembers completed work so mutation testing can continue incrementally.checked 8 Oct 2026
Interface
It provides an interactive terminal based interface for browsing mutants.checked 8 Oct 2026
License
The package is distributed under the BSD-3-Clause license.checked 8 Oct 2026
Mutation scope
The documentation says mutmut 3 and later mutate code inside functions, while mutmut 2 has a different execution model for code outside functions.checked 7 Oct 2026
Operating system requirement
mutmut requires a system with fork support; Windows users must run it inside WSL.checked 7 Oct 2026
Parallel execution
The project lists parallel and fast execution as features.checked 8 Oct 2026
Purpose
mutmut is a mutation testing system for Python focused on ease of use.checked 8 Oct 2026
Pytest
A basic run invokes pytest on tests in a tests or test folder.checked 8 Oct 2026
Python requirement
The package requires Python 3.10 or later.checked 8 Oct 2026
Security and compliance
The project repository identifies its license as BSD-3-Clause.checked 7 Oct 2026
Test selection
It determines which tests to execute for a mutant to speed up mutation testing.checked 8 Oct 2026
Type checker integration
The documentation supports filtering mutants with mypy or pyrefly and says pyright and ty are not currently supported for this purpose.checked 7 Oct 2026
Workflow
Users can browse mutants, write tests to kill them, and rerun individual mutants.checked 8 Oct 2026

Alternatives to mutmut

All alternatives
  1. 1

    Mutatest

    Free planOpen sourceAPILinuxmacOSSelf-hosted
    7.2Free plan
  2. 2ArcMutate logo

    ArcMutate

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

    Mutant

    Free planLinuxmacOS
    6.7From $250 a year
  4. 4

    MuJava

    Free planLinuxmacOSWindows
    6.3Free plan
  5. 5

    pymute

    Free planLinux
    6.3Free plan
  6. 6

    go-mutesting

    Free planLinuxSelf-hosted
    6.2Free plan