--- id: mutmut version: "3.7.0" license: BSD-3-Clause license_treatment: permissive maintenance: active --- # mutmut — mutation testing for Python 3 License: permissive · Maintenance: active · Downloads: 3.6M/mo ## What it is and what it does Mutmut is a mutation testing framework that systematically modifies your Python code and reruns your tests to see if they catch the changes. By introducing small, deliberate bugs (mutants) into your source code, it reveals whether your test suite is actually detecting problems or just achieving high line coverage without meaningful assertions. The tool integrates with pytest, remembers previous work for incremental runs, and provides an interactive terminal UI for browsing and applying mutants to disk. You run it with simple commands—`mutmut run` to generate and test mutants, then `mutmut browse` to explore results interactively. It supports configuration via setup.cfg or pyproject.toml, allows you to exclude specific files or functions, and can filter mutants using coverage.py or type checkers like mypy to reduce noise. The main constraint is that it requires fork() support, making it unsuitable for native Windows (though WSL works). Use it for: - Evaluate whether your test suite would catch real bugs by running it against mutated versions of your code. - Identify undertested functions or modules where mutants survive (tests don't fail when code is modified). - Incrementally improve test quality by applying mutants to disk and writing tests that catch them. - Optimize test suites by filtering mutants with coverage.py to focus on actually-executed lines. - Validate type-checked code by filtering out mutations that static type checkers would reject anyway. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Mutmut is a mutation testing system for Python that automatically modifies your code to verify your test suite catches the changes, helping identify gaps in test coverage. Yes. Mutmut is actively maintained, has no known vulnerabilities, low install friction, and solves a real problem—verifying that your tests actually detect bugs rather than just achieving coverage numbers. It's particularly valuable if you want to move beyond line-coverage metrics to genuine test quality. The fork() requirement and occasional Rust compilation on some architectures are minor friction, not blockers. ## Install pip install mutmut uv add mutmut poetry add mutmut ## Installing mutmut Before you install: Low install friction with a pure-Python wheel. Active maintenance with a recent release (14 days ago) and steady development since 2016. Requires Python 3.10+. Note: libcst dependency may require a Rust compiler on some architectures (e.g., x86_64-darwin) if prebuilt binaries are unavailable. License in practice: BSD-3-Clause (permissive) allows commercial use, modification, and distribution with minimal restrictions—suitable for most projects. Quickstart: pip install mutmut mutmut run mutmut browse Requires a system with fork() support; Windows users must run inside WSL. Some architectures may need Rust toolchain installed for libcst compilation. Verify before relying: - Whether the interactive TUI (textual dependency) works reliably across all terminal environments and operating systems. - Performance characteristics on large codebases—how mutation testing scales with project size and test suite complexity. ## Package facts - License: BSD-3-Clause (permissive) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 3.6M/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags mutation testing python, test quality verification, code mutation tester, find weak tests, mutation analysis python, test coverage gaps, mutant generation testing, testing, code-quality, mutation-testing [View on SkillFed](https://skillfed.io/packages/mutmut) · [View on PyPI](https://pypi.org/project/mutmut/)