Can you make that smaller? An introduction to test-case reduction
summary
Shows how to turn a large failing input (often kilobytes) into a minimal reproducer using off‑the‑shelf reducers and small scripts: run C-Reduce or ShrinkRay with an interestingness test that detects the bug, watch for two failure modes—slippage (you reduce to a different bug) and invalidity (undefined behavior makes the case meaningless)—and iterate. Reduction uses greedy local search with passes like line deletion and indented-region removal, plus caching, parallelism and pass ordering to speed results.
AI-written summary · about
chapters (8)
- 0:00Introduction to reduction
- 4:29Components of automation
- 9:56Common pitfalls and challenges
- 16:04Iterative development
- 22:42Writing a reducer
- 27:31Advanced structural reduction
- 32:34Advanced research topics
- 36:04Questions and answers
related talks
36mProperty-Based Testing: Unveiling the Truth on Test Reduction
20mUnlock The Power Of Property-Based Testing
28mTDD for Absolute Beginners
26mThe missing piece of testing
01h 01mYou Can Test Anything
27mAn introduction to property based testing
30mStop writing tests!
32mGenerative Testing: Properties, State and Beyond
