Corner Cases and Verification Thinking
How to choose a compact test set that covers boundaries, controls, and unusual operating conditions.
Updated 2026-07-26
A corner case is a boundary or unusual operating condition where a design is more likely to fail. Good verification is not about collecting the largest possible number of tests; it is about making each test probe a distinct promise.
For a small counter, high-value cases include:
- reset from a nonzero state;
- the first transition after reset;
- hold while enable is inactive;
- the transition into the maximum value; and
- an attempted increment while already at the maximum.
Those cases cover reset, control, ordinary state movement, and the saturation boundary. A second ordinary middle-range increment may add little after the same behavior has already passed.
For each proposed test, write one sentence: “This case could expose ___.” If two tests complete that sentence in exactly the same way, keep the clearer or cheaper one and look for an uncovered boundary.
A compact suite should be deterministic, quick to run, and varied enough that different incorrect implementations fail for different reasons.