Package: muttest 0.2.1

muttest: Mutation Testing

Measure quality of your tests. 'muttest' introduces small changes (mutations) to your code and runs your tests to check if they catch the changes. If they do, your tests are good. If not, your assertions are not specific enough. 'muttest' gives you percent score of how often your tests catch the changes.

Authors:Jakub Sobolewski [aut, cre]

muttest_0.2.1.tar.gz
muttest_0.2.1.zip(r-4.7)muttest_0.2.1.zip(r-4.6)muttest_0.2.1.zip(r-4.5)
muttest_0.2.1.tgz(r-4.6-any)muttest_0.2.1.tgz(r-4.5-any)
muttest_0.2.1.tar.gz(r-4.7-any)muttest_0.2.1.tar.gz(r-4.6-any)
muttest_0.2.1.tgz(r-4.6-emscripten)
manual.pdf |manual.html
DESCRIPTION |NEWS
card.svg |card.png
muttest/json (API)

# Install 'muttest' in R:
install.packages('muttest', repos = c('https://jakubsob.r-universe.dev', 'https://cloud.r-project.org'))

Bug tracker:https://github.com/jakubsob/muttest/issues

On CRAN:

Conda:

mutation-testingtestingtesting-toolstestthat

6.27 score 25 stars 4 scripts 578 downloads 37 exports 31 dependencies

Last updated from:6cec45271f. Checks:9 OK. Indexed: yes.

TargetResultTimeFilesSyslog
linux-devel-x86_64OK153
source / vignettesOK210
linux-release-x86_64OK138
macos-release-arm64OK90
macos-oldrel-arm64OK98
windows-develOK112
windows-releaseOK110
windows-oldrelOK97
wasm-releaseOK161

Exports:arithmetic_operatorsboolean_literalboolean_literalscall_namecomparison_operatorscondition_mutationsCopyStrategydefault_copy_strategydefault_reporterdefault_test_strategydelete_statementFileTestStrategyFullTestStrategyindex_decrementindex_incrementindex_mutationslogical_operatorsMutationReporterMutatormuttestmuttest_planna_literalna_literalsnegate_conditionnumeric_decrementnumeric_incrementnumeric_literalsoperatorPackageCopyStrategyProgressMutationReporterremove_condition_negationremove_negationreplace_return_valuestring_emptystring_fillstring_literalsTestStrategy

Dependencies:backportsbriocallrcheckmateclicrayondescdiffobjevaluatefsgluejsonlitelifecyclemagrittrmirainanonextotelpkgbuildpkgloadpraiseprocessxpsR6rlangrprojroottestthattreesittertreesitter.rvctrswaldowithr

Getting Started with muttest
Prerequisites | Step 1 — Pick a source file to mutate | Step 2 — Define a test plan | Step 3 — Run the tests | Step 4 — Read the output and improve your tests | The feedback loop | Next steps

Last update: 2026-05-14
Started: 2026-05-06

Mutator Reference and Choosing the Right Mutators
Operator mutators | operator() — custom pair | arithmetic_operators() — preset for arithmetic | comparison_operators() — preset for comparisons | logical_operators() — preset for logical operators | Boolean literal mutators | boolean_literal() — flip TRUE/FALSE | boolean_literals() — preset for boolean literals | Numeric mutators | numeric_increment() — add 1 to every numeric literal | numeric_decrement() — subtract 1 from every numeric literal | numeric_literals() — preset for numeric constants | String mutators | string_empty() — replace strings with "" | string_fill() — replace empty strings with "mutant" | string_literals() — preset for string literals | Condition mutators | negate_condition() — wrap condition in !(...) | remove_condition_negation() — strip leading ! | remove_negation() — remove ! anywhere | condition_mutations() — preset for condition logic | Function call mutator | call_name() — swap one function name for another | NA and NULL mutators | na_literal() — swap NA/NULL values | na_literals() — preset for NA and NULL | Return value mutators | replace_return_value() — replace explicit return values | Index and subscript mutators | index_increment() — shift subscript indices up by one | index_decrement() — shift subscript indices down by one | index_mutations() — preset for subscript indices | Recommended starting set

Last update: 2026-05-14
Started: 2026-05-06

Running muttest in CI
Why run mutation tests in CI | GitHub Actions: minimal workflow | Mutation score badge | Choosing which files to mutate in CI | Failing the build on a low score | Performance tips

Last update: 2026-05-14
Started: 2026-05-06

Reading mutation results and strengthening tests
The output table | What the score tells you | Summary: three patterns, three fixes

Last update: 2026-05-14
Started: 2026-05-06

What is Mutation Testing and Why Does it Matter?
Code coverage is not test quality | What a mutant is | Kill vs survive | The mutation score | The LLM-generated tests problem | When mutation testing pays off most | When it is less useful | How it relates to covr | Next steps

Last update: 2026-05-14
Started: 2026-05-06

Readme and manuals

Help Manual

Help pageTopics
Arithmetic operator mutatorsarithmetic_operators
Mutate a boolean literalboolean_literal
Boolean literal mutatorsboolean_literals
Mutate a function call namecall_name
Comparison operator mutatorscomparison_operators
Condition mutation mutatorscondition_mutations
CopyStrategy interfaceCopyStrategy
Create a default project copy strategydefault_copy_strategy
Create a default reporterdefault_reporter
Create a default run strategydefault_test_strategy
Delete statements one at a timedelete_statement
Run tests matching the mutated source file nameFileTestStrategy
Run all tests for a mutantFullTestStrategy
Decrement subscript indicesindex_decrement
Increment subscript indicesindex_increment
Index mutation mutatorsindex_mutations
Logical operator mutatorslogical_operators
Reporter for Mutation TestingMutationReporter
MutatorMutator
Run a mutation testmuttest
Create a plan for mutation testingmuttest_plan
Mutate an NA or NULL literalna_literal
NA and NULL literal mutatorsna_literals
Negate the condition of if/while statementsnegate_condition
Decrement numeric literalsnumeric_decrement
Increment numeric literalsnumeric_increment
Numeric literal mutatorsnumeric_literals
Mutate a binary operatoroperator
Package copy strategyPackageCopyStrategy
Progress Reporter for Mutation TestingProgressMutationReporter
Remove negation from the condition of if/while statementsremove_condition_negation
Remove logical negationremove_negation
Replace the value in explicit return() callsreplace_return_value
Mutate non-empty string literals to the empty stringstring_empty
Mutate the empty string literal to a placeholder stringstring_fill
String literal mutatorsstring_literals
TestStrategy interfaceTestStrategy