Don’t Go Down the Rabbit Hole: Reprioritizing Enumeration for Property-Based ...
summary
Integrates LazySearch enumeration with NIST’s ACTS combinatorial arrays to split the infinite input space into structural prefixes (patterns) that avoid costly discards from well-typed “rabbit holes.” Runs LazySearch over each pattern with timeouts and three concurrent hyperparameter strategies, tests on a System F evaluator with 20 injected mutants, and reports up to 20× faster bug finding versus baseline LazySearch. The tool generates covering arrays of constructor indices, reduces redundant exploration, and demonstrably improves search efficiency.
AI-written summary · about
chapters (16)
- 0:00Property-based testing intro
- 1:26Precondition problem with random
- 4:17Precondition sparsity in System F
- 6:02Enumeration generation limits
- 7:25Lazy evaluation and partial terms
- 9:33Structural rabbit holes in enum
- 10:14Fighting rabbit holes with coverage
- 12:20Extending coverage to data types
- 15:14Generating patterns with arrays
- 16:38Testing terms with preconditions
- 18:23Technique evaluation on System F
- 20:27Summary and results
- 20:49Q&A: Interpretation strength
- 21:51Q&A: Haskell coverage arrays
- 22:54Q&A: Term duplication
- 23:58Q&A: Program complexity bounds
related talks
20mUnlock The Power Of Property-Based Testing
25mHunting Bugs While Sleeping
28mLanguage Support for Property-Based Testing
58mProperty Based Testing: Concepts and Examples
01h 07mSufficiently Advanced Testing
36mProperty-Based Testing: Unveiling the Truth on Test Reduction
47mProperty-Based Testing
43mTesting: Property-based testing - let your testing library work(...)
