QuickerCheck Implementing and Evaluating a Parallel Run-Time for QuickCheck
Paper in proceeding, 2024

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-9x 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.

parallel functional programming

testing

quickcheck

property-based testing

haskell

Author

Robert Krook

Chalmers, Computer Science and Engineering (Chalmers), Functional Programming

Nicholas Smallbone

Chalmers, Computer Science and Engineering (Chalmers), Functional Programming

Joel Svensson

Chalmers, Computer Science and Engineering (Chalmers), Functional Programming

Koen Claessen

Chalmers, Computer Science and Engineering (Chalmers), Formal methods

PROCEEDINGS OF THE 2023 35TH SYMPOSIUM ON IMPLEMENTATION AND APPLICATION OF FUNCTIONAL LANGUAGES, IFL 2023

9
979-8-4007-1631-7 (ISBN)

35th Symposium on Implementation and Application of Functional Languages (IFL)
Braga, Portugal,

Subject Categories

Telecommunications

Software Engineering

Computer Science

DOI

10.1145/3652561.3652570

More information

Latest update

8/8/2024 1