Racket QuickCheck
Racket QuickCheck is a free package for testing program specifications against randomly generated inputs.
What Racket QuickCheck is
Racket QuickCheck is a free package for testing program specifications against randomly generated inputs. A property expresses a specification in ordinary Racket code; QuickCheck checks it with generated values and reports a counterexample when it fails. Its built-in generators cover integers, real numbers, characters, lists, vectors, strings, and symbols, and programmers can create custom generators. The default run checks 100 successful tests, with helpers for setting counts of 1,000, 10,000, or a custom number. The `rackunit/quickcheck` integration raises a RackUnit exception on failure and includes the test count and counterexample arguments. Install it with `raco pkg install quickcheck` or DrRacket’s GUI package manager. It requires Racket v6.0 or newer, and Racket offers installers for Linux, macOS, and Windows. The package listing reports a successful build and passing tests, while noting that license metadata is missing. Its documented workflow is intended for Racket programmers who want to check properties using generated inputs.
Good
- Free Racket package.
- Reports counterexamples when properties fail.
- Includes built-in and custom generators.
- Integrates with RackUnit.
- Supports configurable test counts.
Watch out
- Requires Racket v6.0 or newer.
- Package listing notes missing license metadata.
- Does not shrink failing cases.
Who it suits
QuickCheck suits Racket programmers who want to test program properties with generated inputs. It is designed to work with RackUnit as well as standalone property checks.
Verdict
QuickCheck offers property-based checks in ordinary Racket code, with generated values and counterexample reporting. Its Racket version requirement and lack of failing-case shrinking are worth noting.
Plans and prices
From Racket QuickCheck's own pricing page, checked 9 Oct 2026.
| Plan | Price | What it gives you |
|---|---|---|
| Quickcheck | Free | Racket package; requires Racket v6.0 or newer |
The facts
Each one read from Racket QuickCheck's own pages, with the date it was checked.
What it does
- Authors
- The package index lists Ismael Figueroa and Michael Sperber as authors.checked 9 Oct 2026
- Build status
- The package index reports that the latest listed build compiled successfully and its tests succeeded.checked 9 Oct 2026
- Counterexamples
- When a property fails, Quickcheck prints the arguments that falsified it along with other result information.checked 9 Oct 2026
- Custom generators
- The library supports custom generators and includes generators for values such as integers, real numbers, characters, lists, vectors, strings, and symbols.checked 9 Oct 2026
- Default test count
- The default configuration runs 100 tests, and the documentation provides settings for 1,000 and 10,000 tests.checked 9 Oct 2026
- Generators
- Built-in generators cover values including integers, real numbers, characters, lists, vectors, strings, and symbols.checked 9 Oct 2026
- Installation
- Install the package with `raco pkg install quickcheck` or through DrRacket’s GUI package manager.checked 9 Oct 2026
- Intended users
- The documented workflow is for Racket programmers who want to test program properties with generated inputs.checked 9 Oct 2026
- Minimum version
- The package requires Racket v6.0 or newer.checked 9 Oct 2026
- Package authors
- The package listing names Ismael Figueroa and Mike Sperber as authors.checked 9 Oct 2026
- Package dependencies
- The package index lists base, rackunit, doc-coverage, scribble-lib, and racket-doc as dependencies.checked 9 Oct 2026
- Package metadata
- The package index describes Quickcheck as a clone and shows missing license metadata.checked 9 Oct 2026
- Package status
- The Racket Package Index lists the package build as successful and its tests as passing, and notes missing license metadata.checked 9 Oct 2026
- Property checks
- A property expresses a program specification in ordinary Racket code, and Quickcheck reports a counterexample if a check fails.checked 9 Oct 2026
- Property testing
- Properties are written in ordinary Racket code and checked against generated values.checked 9 Oct 2026
- Purpose
- Quickcheck tests program specifications by running properties against randomly generated test inputs.checked 9 Oct 2026
- Racket requirement
- The package requires Racket v6.0 or newer.checked 9 Oct 2026
- RackUnit integration
- The `rackunit/quickcheck` integration raises a RackUnit exception on failure and includes the test count and counterexample arguments.checked 9 Oct 2026
- Support and community
- The Racket site identifies Discourse and Discord as active community spaces and also lists Slack, Reddit, and mailing lists.checked 9 Oct 2026
- Test configuration
- The default configuration runs 100 successful tests, and helpers set counts of 1,000 or 10,000 tests or a custom count.checked 9 Oct 2026
Where it runs
- Platform options
- Racket’s download page lists Windows x64 and Arm, macOS Intel and Apple Silicon, and several Linux architectures.checked 9 Oct 2026
- Supported platforms
- The package listing says its build platform is any platform; Racket offers installers for Windows, macOS, and Linux.checked 9 Oct 2026
The full review of Racket QuickCheck
Overview
Racket QuickCheck is a free property-testing library for Racket programmers who want to check specifications against generated inputs. It fits best in Racket projects already using RackUnit; the lack of failing-case shrinking is its clearest limitation.
Rather than enumerate only hand-picked examples, a property states what should hold and QuickCheck exercises it with generated values. When a check fails, it reports the arguments that falsified the property, giving the programmer a reproducible direction for investigation.
Key features
Properties are written in ordinary Racket code, keeping the specification close to the program and avoiding a separate test language. The default run checks 100 successful cases; helpers raise that to 1,000 or 10,000, or allow a custom count. Larger samples can expose failures missed by a short run, but they remain samples rather than exhaustive coverage.
Built-in generators include integers, real numbers, characters, lists, vectors, strings, and symbols. Custom generators extend that range to values specific to an application, so the library can cover more than basic data types. The main debugging trade-off is that QuickCheck does not shrink a failing case: it prints the counterexample arguments, but does not reduce them to a smaller example.
For projects using RackUnit, the rackunit/quickcheck integration raises a RackUnit exception when a property fails and includes the test count and counterexample arguments. That makes property checks easier to incorporate into a RackUnit workflow, while teams using another runner should weigh that integration’s narrower fit.
Installation is through raco pkg install quickcheck or DrRacket’s GUI package manager. The package requires Racket v6.0 or newer. The Racket Package Index reports a successful latest build and passing tests; it also records missing license metadata, a point worth resolving for projects with license-review requirements.
Pricing
Quickcheck costs nothing. The free package includes property checks, built-in and custom generators, configurable test counts, and RackUnit integration; there is no paid tier or free-trial decision to make. Its practical costs are the Racket v6.0 minimum and the time needed to investigate unsimplified counterexamples.
Platforms
The package is listed for any platform, and Racket installers cover Windows, macOS, and Linux. Racket download options include Windows x64 and Arm, macOS Intel and Apple Silicon, and several Linux architectures. The package itself is for Racket, not a general-purpose testing tool for other languages.
Who it's for
Choose QuickCheck if you write Racket and want to express program properties in the language itself, especially if your project already runs RackUnit tests. It is less compelling if a minimal failing input is important to your debugging workflow, or if your project is not built around Racket.
Pros and cons
- Pros: Ordinary Racket properties keep checks close to the code they describe.
- Pros: Built-in generators cover common value types, while custom generators accommodate application-specific data.
- Pros: Adjustable test counts and RackUnit exceptions make the library useful for different test-run sizes and existing RackUnit workflows.
- Cons: No shrinking means counterexamples may take more work to diagnose.
- Cons: Racket v6.0 or newer is required, so older installations cannot use it.
- Cons: License metadata is missing from the package index, which complicates license checks.
Alternatives
If you want another free property-testing library for a different language or ecosystem, these options are worth considering:
- Property-Based Testing Tools for a broader category comparison.
- ScalaCheck is a free library choice for readers working in Scala rather than Racket.
- FsCheck is a free option for readers whose projects use its NuGet packages.
- Gopter is a free, MIT-licensed Go property-testing option.
- fast-check is a free MIT-licensed choice for JavaScript projects.
- JSVerify is a free option for JavaScript property testing.
- Scala Hedgehog is a free alternative for Scala projects.
- PropCheck is a free MIT-licensed Ruby gem for Ruby 2.5.1 or newer.
- QCheck is a free BSD-2-Clause library for OCaml projects.
Verdict
Racket QuickCheck is a sound fit for Racket programmers who want generated-input property checks and RackUnit integration at no charge. Its ordinary-code properties and flexible generators are the main reasons to choose it; look elsewhere if you need failing-case shrinking or a library for another language.
Getting started
- Install Racket v6.0 or newer.
- Install QuickCheck with `raco pkg install quickcheck` or DrRacket’s GUI package manager.
- Write a property in ordinary Racket code.
- Run the property with QuickCheck’s generated inputs.
- Adjust the test count from the default 100 if needed.
Questions
How much does Racket QuickCheck cost?
The listed free plan costs nothing.
Which platforms are supported?
The package is listed for Linux, macOS, and Windows.
What Racket version does it require?
It requires Racket v6.0 or newer.
Which test counts can I use?
The default is 100 successful tests; settings are provided for 1,000, 10,000, or a custom count.
Does it support RackUnit?
Yes. The `rackunit/quickcheck` integration raises a RackUnit exception on failure and includes the test count and counterexample arguments.
Does QuickCheck shrink failing cases?
No; failing-case shrinking is not supported.
Alternatives to Racket QuickCheck
- 1

fast-check
Free planOpen sourceWebAPILinuxSelf-hosted7.1Free plan - 2
ScalaCheck
Free planLinuxmacOSWindows6.6Free plan - 3
Gopter
Free planLinuxSelf-hosted6.4Free plan - 4
JSVerify
Free planWebSelf-hosted6.4Free plan - 5
FsCheck
Free planLinuxmacOSWindows6.3Free plan - 6
QCheck
Free planLinux6.0Free plan
