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

Fuente: arXiv
Guardado en:
Detalles Bibliográficos
Autores principales: Krook, Robert, Smallbone, Nicholas, Svensson, Bo Joel, Claessen, Koen
Formato: Preprint
Publicado: 2024
Materias:
Acceso en línea:
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
_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