Muter
What it is
Muter is a free, open-source mutation testing utility for Swift test suites on macOS. It introduces code changes, called mutants, then reports scores based on mutants killed versus mutants created, with results for the full suite and individual files. Runs can happen inside Xcode, from the command line, or incrementally in continuous integration. Configuration supports Xcode projects and workspaces and Swift Package Manager. Reports can be plain text, JSON, HTML, or Xcode issue navigator results. Documented operators replace relational operators, remove side effects, change logical connectors, and swap ternary expressions. Muter performs changes on a complete copy of the codebase, leaving the original untouched. It supports projects tested with xcodebuild, including iOS, macOS, tvOS, and watchOS applications, but runs only on macOS 10.15 or newer. The tool supports Swift, not Objective-C, and recommends unit tests when UI tests would take too long. It has no network access, analytics, or phone-home behavior.
For and against
For
- Reports mutation scores for suites and files
- Runs in Xcode, command line, or CI
- Supports JSON, HTML, text, and Xcode reports
- Leaves the original codebase unchanged
- No network access or analytics
Against
- Supports Swift but not Objective-C
- Runs only on macOS 10.15 or later
- Mutation testing can take a long time
- Some @resultBuilder mutations may fail compilation
The verdict
Muter offers several execution modes and report formats for measuring Swift test effectiveness. Its macOS-only runtime, Swift scope, and potentially lengthy runs define where it fits.
Who it suits
It suits Swift developers evaluating whether Xcode or Swift Package Manager tests detect code changes. Teams should allow time for long-running mutation or UI test suites.
Plans and prices
Open-source Muter
No paid plans or pricing listed
Read 8 Oct 2026 · github.com
On the record
- Compatibility caveat
- Muter documents that mutations in @resultBuilder methods may fail to compile, with the limitation noted as potentially absent when using Swift 5.9 or later.github.com · read 8 Oct 2026
- Integrations
- The README documents Xcode integration, Homebrew installation, and configuration support for Xcode projects and workspaces and Swift Package Manager.github.com · read 8 Oct 2026
- Language limit
- Muter supports Swift code but does not currently support Objective-C.github.com · read 8 Oct 2026
- Mutation operators
- The documented operators are RelationalOperatorReplacement, RemoveSideEffects, ChangeLogicalConnector, and SwapTernary.github.com · read 8 Oct 2026
- Mutation score
- Each run reports a mutation score based on the mutants killed versus the total mutants introduced, with scores for the whole suite and individual files.github.com · read 8 Oct 2026
- Privacy
- The README says Muter has no network access, collects no analytics, and never phones home.github.com · read 8 Oct 2026
- Purpose
- Muter is a mutation testing utility for assessing the quality of Swift test suites.github.com · read 8 Oct 2026
- Reports
- Muter can output reports as plain text, JSON, HTML, or Xcode issue navigator results.github.com · read 8 Oct 2026
- Run modes
- Muter can run within Xcode, from the command line, and incrementally in CI.github.com · read 8 Oct 2026
- Runtime caveat
- The README notes mutation testing can take a long time and recommends allocating enough time and considering separate schemes or targets for longer-running tests.github.com · read 8 Oct 2026
- Source handling
- Muter performs its work on a complete copy of the codebase so it does not leave mutations in the original code.github.com · read 8 Oct 2026
- Supported app platforms
- Muter says it supports projects tested with xcodebuild, including iOS, macOS, tvOS, and watchOS, and runs only on macOS 10.15 or higher.github.com · read 8 Oct 2026
- Test suites
- It supports any kind of test target or suite when the application code is Swift, though the README recommends starting with unit tests because UI tests can take a long time.github.com · read 8 Oct 2026