QuickCheck: a lightweight tool for random testing of Haskell programs
By Koen Claessen, John Hughes. ACM SIGPLAN International Conference on Functional Programming, 2000
1,338 citations recorded by the source corpus.
Subfields: Information Systems, Software
View Paper: https://www.semanticscholar.org/paper/75d28729e96691eb85ae2b34e791473a24062ce5
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Information Systems
- Koushik Sen
- Mark Harman
- Gordon Fraser
- Michael D. Ernst
- Charles Sutton
- Rishabh Singh
- Carlos Pacheco
- Phil McMinn
In Software
- Koushik Sen
- Mark Harman
- Gordon Fraser
- Patrice Godefroid
- Michael D. Ernst
- Andrea Arcuri
- Jacob Burnim
- Rupak Majumdar
Citations in the corpus
- Grounded Copilot: How Programmers Interact with Code-Generating Models (2022, positive): “For example, P16 wanted to set up property-based testing [Claessen and Hughes 2000] to run automatically on Copilot suggestions.”
- A history of Haskell: being lazy with class (2007, background): “A first paper appeared in 2000 (Claessen and Hughes, 2000), with a follow-up article on testing monadic code in 2002 (Claessen and Hughes, 2002).”
- Flask (2008, methodology): “…new first class operations is not unique to Flask; it is a mainstay of the functional programming literature and has resulted in many powerful systems, from parsing combinators (Hutton 1992) to evaluation of financial contracts (Jones et al. 2000) to program testing (Claessen and Hughes 2000).”
- An orchestrated survey of methodologies for automated software test case generation (2013, methodology): “Tools like QuickCheck (Claessen and Hughes, 2000) and others are used successfully in practice applying this approach.”
- Fuzzing: A Survey for Roadmap (2022, methodology): “For example, the community open-sources some tools for generating highly structured inputs [50, 146] (Section 4.4.1).”
- Learn&Fuzz: Machine learning for input fuzzing (2017, background): “Imperative generation [5], [8] is a related approach in which a custom-made program generates the inputs (in effect, the program encodes the grammar).”
- The Future of Sensitivity Analysis: An essential discipline for systems modeling and policy support (2020, neutral): “Diagnostic evaluation of models in this manner is analogous to property-based testing (Claessen and Hughes, 2000), wherein the logical properties of model behavior are evaluated according to expected behavior.”
- Learning to Represent Programs with Property Signatures (2020, methodology): “…Function properties are similar to the properties from Property Based Testing, a software testing methodology popularized by the QuickCheck library (Claessen & Hughes, 2011) that has now spread to many contexts (Gallant, 2018; Holser, 2018; Hypothesis, 2018; Luu, 2015; Elhage, 2017; MacIver, 2017).”
- Grammar-based whitebox fuzzing (2008, background): “Imperative generation [7, 27, 10] is a related approach in which a custommade program generates the inputs (in e ffect, the program encodes the grammar).”
- DART: directed automated random testing (2005, methodology): “QuickCheck [7] is a tool for random testing of Haskell programs which supports a test specification language where the user can assign probabilities to inputs.”
- JCrasher: an automatic robustness tester for Java (2004, background): “Several research tools [2, 3, 4, 5, 6] and commercial products [7, 8] employ some of the same ideas in their testing.”
- Feedback-Directed Random Test Generation (2007, methodology): “Random testing [14] has been used to find errors in many applications; a partial list includes Unix utilities [19], Windows GUI applications [10], Haskell programs [2], and Java programs [3, 23, 22].”
- Hybrid Concolic Testing (2007, background): “The simplest, and yet often very effective, techniquesuserandom generation of (concrete) test inputs [3, 22, 12, 5, 7, 23, 20].”
- CUTE: a concolic unit testing engine for C (2005, background): “The random generation itself may not terminate [7].”
- Heuristics for Scalable Dynamic Test Generation (2008, methodology): “A simple and effective technique for automated test generation is random testing [2, 22, 9, 4, 6, 23] (a.”