QuickCheck: a lightweight tool for random testing of Haskell programs
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
The nofib Benchmark Suite of Haskell Programs
Proceedings of the 1992 Glasgow Workshop on Functional Programming
Deriving a lazy abstract machine
Journal of Functional Programming
Smallcheck and lazy smallcheck: automatic exhaustive testing for small values
Proceedings of the first ACM SIGPLAN symposium on Haskell
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Testing an optimising compiler by generating random lambda terms
Proceedings of the 6th International Workshop on Automation of Software Test
Software Abstractions: Logic, Language, and Analysis
Software Abstractions: Logic, Language, and Analysis
Hi-index | 0.00 |
Property-based testing can be a highly effective form of lightweight verification, but it relies critically on the method used to generate test cases. If we wish to test properties of compilers and related tools we need a generator for source programs as test cases. We describe experiments generating functional programs in a core first-order language with algebraic data types. Candidate programs are generated freely over a syntactic representation with positional names. Static conditions for program validity and canonical representatives of large equivalence classes are defined separately. The technique is used to investigate the correctness properties of a program optimisation and two language implementations.