QuickerCheck: Implementing and Evaluating a Parallel Run-Time for QuickCheck
Fuente:
arXiv
Gespeichert in:
| Hauptverfasser: | , , , |
|---|---|
| Format: | Preprint |
| Veröffentlicht: |
2024
|
| Schlagworte: | |
| Online-Zugang: | |
| Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
| _version_ | 1866929326606254080 |
|---|---|
| author | Krook, Robert Smallbone, Nicholas Svensson, Bo Joel Claessen, Koen |
| author_facet | Krook, Robert Smallbone, Nicholas Svensson, Bo Joel Claessen, Koen |
| contents | 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. |
| format | Preprint |
| id |
arxiv_https___arxiv_org_abs_2404_16062 |
| institution | arXiv |
| publishDate | 2024 |
| record_format | arxiv |
| spellingShingle | QuickerCheck: Implementing and Evaluating a Parallel Run-Time for QuickCheck Krook, Robert Smallbone, Nicholas Svensson, Bo Joel Claessen, Koen Programming Languages D.3.3 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. |
| title | QuickerCheck: Implementing and Evaluating a Parallel Run-Time for QuickCheck |
| topic | Programming Languages D.3.3 |
| url | https://arxiv.org/abs/2404.16062 |