The Properties of Property Testing with Hedgehog
summary
Compares Hedgehog and QuickCheck using Hedgehog as the reference, claiming Hedgehog’s automatic shrinking (a rose-tree of generated values) finds minimal counterexamples while QuickCheck leaves shrinking as a neglected Arbitrary responsibility; explains why the Arbitrary typeclass was dropped, how generators carry an explicit size and seed for reproducible failures, why randomly generated functions fail in practice, and recounts porting work (Hedgehog checkers) that reuses quadratic-function hacks instead of maps and that manual shrinking is still available.
AI-written summary · about
chapters (26)
- 0:00Intro
- 3:20Properties of Property Testing
- 11:07Arbitrary Type
- 15:36Humphreys Reverse
- 17:16List Reverse
- 19:31Size
- 21:26Generator
- 22:51Limitations
- 25:46Automatic Trinket
- 26:13Hedgehog
- 32:56Implementation correctness
- 34:03Hedgehog checkers
- 35:15Hedgehog checkers strengths
- 36:02Hedgehog quickcheck
- 36:41Linear tree
- 37:35Bigger values
- 38:13Big trees
- 38:52enum bounded tree
- 39:16unum type
- 39:49enumerate
- 40:24random value generation
- 43:04manual shrink
- 44:27Questions
- 44:55conceit
- 45:46quickcheck
- 46:51wrap up
related talks
43mProperty-Based Testing - Examples from Business Applications
43mProperty-Based Testing - Examples from Business Applications
36mProperty-Based Testing: Unveiling the Truth on Test Reduction
53mProperty Based Testing, By Example
42mSurprise yourself with Property Based Testing
18mProperty-based testing beginning with SwiftCheck
01h 24mIntroduction to Property Based Testing
54mAn Introduction to Property-based Testing
