Kelly Mears

Reproducible Case

The smallest set of steps that reliably produces a fault, and the unit of real debugging.

Method1 min read197 words10 out · 14 in
also calledMinimal reproductionRepro

A reproducible case is a minimal, reliable procedure that produces a fault on demand. It is the fundamental unit of debugging, because everything else — bisecting, diagnosing, verifying the fix — depends on being able to trigger the behaviour at will.

Building one is often most of the work. The steps that matter are usually to fix the environment (a clean database, a restarted server, a known input) and then to remove everything that does not change the outcome. What remains is both the diagnosis and, frequently, the test.

A differential repro is the strongest form: two builds identical except for one variable, each producing a different observable. It converts "something in this upgrade broke fonts" into "this version emits the preload tags and that one does not", which is a fact rather than a theory. See Ground Truth.

Two habits keep repros honest. Write the reproduction before the fix, so you have seen the red — see Falsifiability. And distinguish a genuine repro from an intermittent one: a fault that appears once and clears on retry is a Flaky Test until proven otherwise, and reasoning about the code from a single occurrence usually wastes the afternoon.

See also5

Hand-picked in the note itself — the neighbours worth reading next.

Related2

Nearby in the graph rather than deliberately chosen. Looser, sometimes surprising.

Linked from14

Notes elsewhere in the wiki that reach for this one.