Skip to content
Flag of Europe
Made in the European Union · Independently built · Released under EUPL 1.2

Mutation Testing

Line coverage proves your tests ran the code. Mutation testing proves they'd catch a real bug. This code-first training turns that harder question into daily practice — the same bar jCustos itself is held to.

Hands-on labs 1 day On-site · live-online EN / DE JUnit experience helpful

What your team can do after

Concrete, transferable skills — not a metrics vanity exercise.

Agenda

Six modules, each ending in a hands-on lab on real code — see the survivor, write the test, watch it die.

  1. Why line coverage lies What a mutant is, how PIT rewrites bytecode, killed / survived / no-coverage.
    Lab: a 100 %-line-covered class that catches nothing.
  2. PIT up and running PIT in Maven and Gradle, mutators, scope and reports.
    Lab: first run and first report on a sample module.
  3. Reading the report Per-mutator breakdown, the surviving-mutant list, prioritising what matters.
    Lab: triage a report into must-fix and ignore.
  4. Killing mutants well Writing assertions that kill mutants, test smells that let them survive.
    Lab: drive a module from survivors to green.
  5. Thresholds & CI gates Incremental analysis, changed-code scope, a gate that holds without noise.
    Lab: wire a mutation gate into a CI pipeline.
  6. Equivalent mutants & performance Recognising equivalent mutants, keeping runs fast on a large reactor.
    Lab: tune a slow run and justify the remaining survivors.

Who it's for

Java developers, tech leads and reviewers who own their test suite's credibility — teams moving past line-coverage targets toward tests that actually defend behaviour.

Prerequisite: everyday Java and some JUnit; no prior mutation-testing experience required. Pairs naturally with JUnit 5 & 6.

Logistics

📋 Course details

Formats
On-site · live-online · on-demand (in preparation)
Price
On request — tailored to each client
Duration
Typically 1 day — depth and agenda tailored to your team
Languages
English or German
Group size
Private team cohorts or individual seats on scheduled dates
Trainer
Sven Ruppert, author of jCustos — long-time Java developer and speaker
Testing & Quality track: best taken together with JUnit 5 & 6 — write the tests, then prove they bite. How to book: request the course with team size, format and dates; we tailor the agenda and send a proposal. See the approach in practice on the jCustos mutation-tested library.