English

QuickerCheck: Implementing and Evaluating a Parallel Run-Time for QuickCheck

Programming Languages 2024-04-26 v1

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×\times 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.

Keywords

Cite

@article{arxiv.2404.16062,
  title  = {QuickerCheck: Implementing and Evaluating a Parallel Run-Time for QuickCheck},
  author = {Robert Krook and Nicholas Smallbone and Bo Joel Svensson and Koen Claessen},
  journal= {arXiv preprint arXiv:2404.16062},
  year   = {2024}
}

Comments

12 pages, IFL 2023

R2 v1 2026-06-28T16:05:22.724Z