FREEDOM251

Freedom251 › Mutation Testing Tools

MutPy

Free plan LinuxSelf-hosted

Visit MutPy Alternatives Pricing

MutPy's own site

What MutPy is

MutPy is a mutation testing tool for Python source code that checks whether tests detect changes in code. It alters code at the abstract syntax tree level and runs tests to see which mutations remain undetected. The project describes support for Python 3.3 and later. MutPy uses unittest by default, while pytest support is experimental. It can create YAML and HTML reports, analyze code coverage, and limit mutations to covered code. Options include selecting or disabling operators and sampling a percentage of mutants; higher order mutations are also supported. The tool includes standard and experimental mutation operators. It can be installed from PyPI with pip or from the repository source, and is licensed under Apache License 2.0. PyPI lists version 0.6.1, released November 17, 2019, as the latest release. The README warns that disabling stdout can damage tests that interact with sys.stdout. The repository has an Issues section, but no support service or security certification is stated.

Who it suits

MutPy is for Python developers and software testers who want to check whether tests catch code changes. It is most suited to projects using unittest; pytest support is experimental.

What it does well

  • Applies mutations at the abstract syntax tree level.
  • Generates YAML and HTML reports.
  • Can restrict mutations to code covered by tests.
  • Supports higher order mutations and coverage analysis.

What to know first

  • The latest listed release is version 0.6.1 from 2019.
  • The pytest runner is experimental.
  • Disabling stdout can damage tests that use sys.stdout.

Limits

The pytest runner is experimental. The README describes support for Python 3.3 and later, and warns that disabling stdout can damage tests that interact with sys.stdout.

Plans

PlanBilled and limitsPrice
MutPyNo paid plans or usage limits statedFree

As github.com lists them, read 9 Oct 2026. The maker's own page has the final word.

Getting started

  1. Install MutPy from PyPI with pip or install it from the repository source.
  2. Use it with Python 3.3 or later source code.
  3. Run it with unittest by default, or select the experimental pytest runner.
  4. Choose mutation operators and optionally sample mutants or restrict mutations to covered code.
  5. Review the generated YAML or HTML report.

MutPy is a Python mutation-testing tool for developers who want evidence that their tests detect real code changes. It is best suited to Linux or self-hosted workflows, particularly projects built around unittest. Its configurable mutations and report formats are useful, but teams centered on pytest must accept an experimental runner and an old release.

Overview

MutPy evaluates test quality by changing Python source at the abstract syntax tree level and checking whether the test suite catches those changes. A surviving mutant represents behavior that the tests failed to detect, so the tool exposes weaknesses that ordinary pass-or-fail results can hide.

It supports Python 3.3 and later. Unittest is the default test runner, while pytest support is experimental. That makes MutPy a more predictable choice for unittest projects than for teams that need a mature pytest workflow. The project originated in engineering and master's theses at Warsaw University of Technology's Institute of Computer Science.

Key features

MutPy combines standard mutation operators with a separate experimental group. Its standard set includes arithmetic, logical, relational, condition, statement, and other code transformations; the experimental operators broaden exploration but are better treated as optional investigation than as a stable baseline.

Command-line controls let developers select or disable operators, sample a percentage of mutants, and mutate only covered code. Those controls can reduce long runs and focus analysis on code the tests actually execute. Coverage analysis and higher-order mutations add depth: the former highlights exercised areas, while the latter combines changes to probe more complex weaknesses.

Surviving mutants can be reported in YAML or HTML, giving teams machine-readable output for processing and a browser-friendly format for review. Installation is available through PyPI with pip or directly from the repository source. The README warns that disabling stdout can damage tests that interact with sys.stdout, an operational caveat for suites that inspect console output.

Pricing

MutPy — free. This is open-source software under the Apache License 2.0, with no paid tier or usage quota attached to the plan. It fits individual developers, research projects, and teams that can host and operate their own analysis without a subscription budget. The trade-off is that the package itself does not provide a commercial support or service layer.

Platforms

MutPy runs on Linux and in self-hosted environments. Python 3.3+ source is supported. Its documented integrations are unittest and experimental pytest, with no broader test-framework integration described.

Who it's for

Choose MutPy when you maintain Python tests and want mutation scores, surviving-mutant reports, and control over which transformations run without paying for a hosted product. It is especially sensible for Linux-based or self-managed development environments and unittest suites.

Look elsewhere if your workflow depends on production-grade pytest integration, a current release cadence, or vendor-backed support and security assurances. The latest PyPI release is version 0.6.1 from November 17, 2019, so teams with strict maintenance requirements should weigh that age before standardizing on it.

Pros and cons

Pros

  • AST-level mutation: Tests are challenged by structured source changes rather than only conventional coverage checks.
  • Useful run controls: Operator selection, sampling, and covered-code-only mutation help contain analysis scope.
  • Higher-order mutations and reports: Combined mutations plus YAML and HTML output support deeper review and automation.
  • Open-source pricing: The Apache 2.0 license and 0.00 USD plan remove subscription cost.

Cons

  • Experimental pytest runner: Pytest-heavy teams face more uncertainty than unittest users.
  • Old release: Version 0.6.1 dates to 2019, which makes long-term currency a concern.
  • Linux or self-hosted scope: It does not target Windows or macOS desktop workflows.
  • Stdout caveat: Disabling stdout can break tests that interact with sys.stdout.

Alternatives

Browse the Mutation Testing Tools list for a wider comparison.

  • ArcMutate is a freemium option for Linux, macOS, Windows, and self-hosted use, with a free open-source plan and an $8.00-per-month Base plan.
  • MuJava is a free Apache-licensed mutation framework for Linux, macOS, and Windows.
  • Mutant offers a free full-featured plan for public repositories and a $30.00-per-month commercial plan billed per developer.
  • Mutatest is a free MIT-licensed choice supporting Linux, macOS, and Windows.
  • go-mutesting is a free MIT-licensed framework for Go on Linux or self-hosted systems.
  • LittleDarwin is a free, donation-supported Java mutation analysis framework for Linux.
  • pymute is a free open-source option installed with Cargo and requiring Rust and Cargo.
  • pytest-gremlins is a free MIT-licensed Python package for Linux that requires Python 3.11+.

Verdict

MutPy is a strong fit for Python developers running Linux or self-hosted unittest projects who want detailed mutation controls and YAML or HTML surviving-mutant reports at no cost. Its main reasons to look elsewhere are the experimental pytest support and the 2019 latest release, both of which matter when dependable, actively maintained integration is a priority.

Verdict

MutPy provides mutation controls, coverage analysis, and reports for evaluating Python tests. Its listed release is old, and teams using pytest should account for its experimental status.

Questions

Is MutPy free?

The listed MutPy plan is free, and the project is open source under Apache License 2.0.

Which programming language does MutPy support?

The project describes support for Python 3.3 and later source code.

Which test frameworks does MutPy work with?

It supports unittest by default. Its pytest runner is experimental.

How can I install MutPy?

The project README describes installing it from PyPI with pip or from the repository source.

What reports can MutPy generate?

It can generate YAML and HTML reports.

What should I know about its stdout setting?

The README warns that disabling stdout can damage tests that interact with sys.stdout.

Facts from MutPy's own pages

Availability
PyPI lists version 0.6.1, released November 17, 2019. · pypi.org, 9 Oct 2026
Compatibility
The README describes MutPy as supporting Python 3.3+ source code. · github.com, 4 Oct 2026
Development origin
The project says it was developed as part of engineering and master's theses at Warsaw University of Technology's Institute of Computer Science. · github.com, 9 Oct 2026
Installation
The project README gives pip installation and source installation instructions. · github.com, 9 Oct 2026
Integrations
The documented test runner integrations are unittest and experimental pytest; no other integrations are listed. · github.com, 9 Oct 2026
Intended users
PyPI classifies the package for developers and software testing. · pypi.org, 9 Oct 2026
License
The project is licensed under the Apache License, Version 2.0. · github.com, 9 Oct 2026
Limitations
The README warns that disabling stdout can damage tests that interact with sys.stdout. · github.com, 9 Oct 2026
Mutation controls
Command line options include selecting or disabling operators, sampling a percentage of mutants, and mutating only covered code. · github.com, 9 Oct 2026
Mutation features
It supports higher order mutations and code coverage analysis. · github.com, 9 Oct 2026
Mutation method
It applies mutations at the abstract syntax tree level. · github.com, 9 Oct 2026
Mutation options
It supports higher order mutations and code coverage analysis, including an option to mutate only covered code. · github.com, 4 Oct 2026
Operators
It includes standard mutation operators and a separate set of experimental operators. · github.com, 4 Oct 2026
Price and license
The project is licensed under Apache License 2.0; the page does not state a price. · github.com, 4 Oct 2026
Purpose
MutPy is a mutation testing tool for Python source code that evaluates the quality of software tests. · github.com, 9 Oct 2026
Python versions
The README describes support for Python 3.3 and later. · github.com, 9 Oct 2026
Release history
PyPI lists version 0.6.1, released November 17, 2019, as the latest release. · pypi.org, 4 Oct 2026
Reports
MutPy can generate YAML and HTML reports and colorful console output. · github.com, 9 Oct 2026
Support and security
The repository page has an Issues section; it does not state a support service or security certification. · github.com, 4 Oct 2026
Test runners
It supports unittest by default and pytest experimentally. · github.com, 9 Oct 2026
Use case
The README presents MutPy as a tool for developers to find weaknesses in their tests by checking whether tests detect mutated code. · github.com, 4 Oct 2026

Where MutPy stands on Freedom251

Look at these too