Freedom251 › Mutation Testing Tools
mutator

What mutator is
mutator is a free mutation testing tool for R developers assessing whether package tests detect systematic changes to source code. It alters code at the abstract syntax tree level and reports a mutation score: the ratio of killed mutants to the total mutants. Its mutation operators cover arithmetic, comparisons, logic, constants, return values and statement deletion. The tool supports testthat and tinytest, with a generic installed-tests fallback for other layouts. For testthat and tinytest, coverage-guided selection runs tests covering each mutated line; with the generic fallback, mutator warns and runs the full suite. Test execution can run in parallel, and per-mutant timeouts are calibrated to detect hangs, with an option to override them. Users can cap the number of mutants. A reusable GitHub Actions workflow supports running mutation tests in continuous integration, and the tool reports surviving mutants and provides a mutation quality gate. Equivalent-mutant detection can use a configurable OpenAI-compatible API. The released version can be installed from CRAN, with development versions available from GitHub and R-universe. The package is licensed under GPL (>= 3), and its documentation links to GitHub for bug reports.
Who it suits
mutator is aimed at R developers who want to assess and improve package test suites. It supports testthat, tinytest and a generic installed-tests fallback.
What it does well
- Reports a mutation score and surviving mutants
- Supports testthat and tinytest
- Runs tests in parallel
- Includes a reusable GitHub Actions workflow
- Users can cap mutants and override timeouts
What to know first
- Generic installed-tests fallback runs the full suite
- Coverage-guided selection is unavailable for the generic fallback
- Equivalent-mutant detection uses an OpenAI-compatible API
Limits
Users can cap the number of mutants and set a per-mutant timeout. The generic installed-tests strategy runs the full suite instead of coverage-guided selection.
Getting started
- Open the mutator project website
- Install the released package from CRAN with install.packages("mutator")
- Use a development build from GitHub or R-universe if needed
- Run it with a testthat, tinytest, or installed-tests layout
- Add the reusable GitHub Actions workflow for CI
Verdict
mutator offers mutation testing for R packages, including CI support and controls for test execution. Developers using the generic installed-tests fallback should account for its full-suite run instead of coverage-guided selection.
Questions
What language does mutator support?
It supports R.
Which test frameworks are supported?
mutator supports testthat and tinytest, plus a generic installed-tests fallback.
Is mutator free?
Yes. It has a free plan.
Where can it be installed?
The released version is available from CRAN. Development versions are available from GitHub and R-universe.
Can it run in continuous integration?
Yes. A reusable GitHub Actions workflow runs mutation testing in CI.
What license does it use?
The package is licensed under GPL (>= 3).
Facts from mutator's own pages
- AST mutations
- mutator applies mutations at the abstract syntax tree level. · pdonatbouillud.com, 7 Oct 2026
- CI integration
- It provides a reusable GitHub Actions workflow for mutation testing, including optional mutation-score thresholds and badge publishing. · prl-prg.github.io, 7 Oct 2026
- Developers
- The project is developed by Pierre Donat-Bouillud and Assanali Amandykov. · prl-prg.github.io, 7 Oct 2026
- Equivalent mutants
- It can use LLMs to flag likely equivalent mutants through a configurable OpenAI-compatible API. · prl-prg.github.io, 7 Oct 2026
- Execution speed
- It supports parallel test execution and coverage-guided selection that runs only tests covering each mutated line. · pdonatbouillud.com, 7 Oct 2026
- Installation
- The released version can be installed from CRAN with install.packages("mutator"), and development versions are available from GitHub and R-universe. · prl-prg.github.io, 7 Oct 2026
- Intended users
- The tool is for developers seeking to assess and improve R package test suites. · pdonatbouillud.com, 7 Oct 2026
- License
- The package is licensed under GPL (>= 3). · prl-prg.github.io, 7 Oct 2026
- Limits and configuration
- Users can cap the number of mutants and set a per-mutant timeout; coverage-guided selection falls back to the full suite for the generic installed-tests strategy. · prl-prg.github.io, 7 Oct 2026
- LLM integration
- Equivalent-mutant detection can use an OpenAI-compatible API. · prl-prg.github.io, 7 Oct 2026
- Mutation method
- It uses abstract syntax tree analysis and mutation operators for arithmetic, comparisons, logic, constants, return values, and statement deletion. · prl-prg.github.io, 7 Oct 2026
- Mutation operators
- Its operators include arithmetic, comparison and logical changes, constant and return-value replacements, and statement deletions. · pdonatbouillud.com, 7 Oct 2026
- Mutation score
- It reports the ratio of killed mutants to total mutants as a measure of test suite effectiveness. · pdonatbouillud.com, 7 Oct 2026
- Notable limit
- Coverage-guided selection is on by default for testthat and tinytest strategies; with the generic installed-tests fallback, it warns and runs the full suite. · prl-prg.github.io, 7 Oct 2026
- Performance
- It supports parallel test execution and coverage-guided test selection, which runs tests covering each mutated line. · prl-prg.github.io, 7 Oct 2026
- Purpose
- mutator is an automated mutation testing tool for the R language that checks whether a test suite detects systematic changes to source code. · pdonatbouillud.com, 7 Oct 2026
- Support
- The documentation links to a GitHub page for reporting bugs. · prl-prg.github.io, 7 Oct 2026
- Test harnesses
- It supports testthat and tinytest, with a generic installed-tests fallback for other layouts. · prl-prg.github.io, 7 Oct 2026
- Timeouts
- It self-calibrates per-mutant timeouts to detect hangs, and users can override the timeout. · prl-prg.github.io, 7 Oct 2026
Where mutator stands on Freedom251
- Mutation Testing Tools#17 of 25