QuickerCheck: Implementing and Evaluating a Parallel Run-Time for QuickCheck
Robert Krook, Nicholas Smallbone, Bo Joel Svensson, Koen Claessen

TL;DR
This paper presents QuickerCheck, a parallel runtime for QuickCheck that accelerates property testing and counterexample shrinking by utilizing multiple cores, achieving significant speed-ups and flexible shrinking strategies.
Contribution
It introduces a parallel runtime for QuickCheck enabling faster testing and shrinking, with experimental validation on various benchmarks and comparison of shrinking strategies.
Findings
3-9x speed-up in property testing
Parallel shrinking strategies improve efficiency
Deterministic and greedy shrinking strategies compared
Abstract
This paper introduces a new parallel run-time for QuickCheck, a Haskell library and EDSL for specifying and randomly testing properties of programs. The new run-time can run multiple tests for a single property in parallel, using the available cores. Moreover, if a counterexample is found, the run-time can also shrink the test case in parallel, implementing a parallel search for a locally minimal counterexample. Our experimental results show a 3--9 speed-up for testing QuickCheck properties on a variety of heavy-weight benchmark problems. We also evaluate two different shrinking strategies; deterministic shrinking, which guarantees to produce the same minimal test case as standard sequential shrinking, and greedy shrinking, which does not have this guarantee but still produces a locally minimal test case, and is faster in practice.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Embedded Systems Design Techniques · Distributed and Parallel Computing Systems
