FREEDOM251

Freedom251 › Property-Based Testing Tools

Racket QuickCheck

Free plan LinuxMacWindows

Visit Racket QuickCheck Alternatives Pricing

Racket QuickCheck's own site

What Racket QuickCheck is

Racket QuickCheck is a free package for Racket programmers who want to check program properties using generated inputs. A property is written as ordinary Racket code; QuickCheck runs it with generated values and reports a counterexample when it fails. Built-in generators cover integers, real numbers, characters, lists, vectors, strings, and symbols, and programmers can add custom generators. The default configuration runs 100 successful tests, with helpers for counts of 1,000 or 10,000 and a custom count. Its RackUnit integration raises an exception on failure and includes the test count and counterexample arguments. Install the package with `raco pkg install quickcheck` or DrRacket’s GUI package manager. It requires Racket v6.0 or newer and is listed for Linux, macOS, and Windows. The package index reports a successful build and passing tests; it also notes that license metadata is missing. Failing-case shrinking is not supported.

Who it suits

It suits Racket programmers who want to test specifications against generated values and use RackUnit for failures. It requires Racket v6.0 or newer.

What it does well

  • Supports custom generators.
  • Includes generators for common Racket values.
  • Default run checks 100 successful tests.
  • RackUnit integration reports count and counterexamples.

What to know first

  • Requires Racket v6.0 or newer.
  • Does not support failing-case shrinking.
  • Package listing notes missing license metadata.

Plans

PlanBilled and limitsPrice
QuickcheckRacket package; requires Racket v6.0 or newerFree

As docs.racket-lang.org lists them, read 9 Oct 2026. The maker's own page has the final word.

Getting started

  1. Install Racket v6.0 or newer on Linux, macOS, or Windows.
  2. Install QuickCheck with `raco pkg install quickcheck` or DrRacket’s GUI package manager.
  3. Write a property in ordinary Racket code.
  4. Run property checks with generated inputs; adjust the test count if needed.

Overview

Racket QuickCheck is a property-testing library for checking program specifications against generated inputs, aimed at Racket programmers. Its appeal is a Racket-native workflow with configurable test counts and counterexamples; the key trade-off is that it does not shrink failing cases.

Key features

Tests are written as ordinary Racket code, so a specification can be expressed in the language of the program rather than as a separate test format. QuickCheck runs the property against generated values and prints the arguments that falsify it, giving developers a concrete starting point for investigating a failure.

The default is 100 successful tests. Helpers allow runs of 1,000 or 10,000 tests, as well as a custom count, which gives teams a way to increase coverage when a property warrants a larger sample. These are configurable sample counts, not a guarantee that every relevant input will be covered.

Built-in generators cover integers, real numbers, characters, lists, vectors, strings, and symbols, and developers can add custom generators for their own data. That combination suits properties over both common values and domain-specific structures. The rackunit/quickcheck integration raises a RackUnit exception on failure and includes the test count and counterexample arguments, making it a practical fit for projects already using RackUnit.

Installation is through raco pkg install quickcheck or DrRacket’s GUI package manager. The package requires Racket 6.0 or newer. The Racket Package Index reports a successful latest build and passing tests, though it also records missing license metadata.

Pricing

Quickcheck costs nothing. The plan is the Racket package itself, with the Racket 6.0-or-newer requirement; there is no free trial because the software is free. There are no paid tiers or plan caps to weigh against the free option.

Platforms

QuickCheck is for Racket, and Racket offers installers for Windows, macOS, and Linux. The download options include Windows x64 and Arm, Intel and Apple Silicon Macs, and several Linux architectures. This makes it a fit across those desktop systems, but not a language-agnostic testing tool.

Who it's for

Choose QuickCheck if you write Racket programs and want to state properties in Racket, exercise them with generated values, and get counterexample arguments when they fail. Its RackUnit integration is useful when property checks need to sit alongside an existing RackUnit test suite. It is less suited to teams that need automatic shrinking to reduce a failing input to a smaller case, or that need a tool for another programming language.

Racket’s community spaces include Discourse and Discord, as well as Slack, Reddit, and mailing lists. That gives Racket users several places to seek community discussion.

Pros and cons

  • Pros: Properties use ordinary Racket code, keeping specifications close to the language being tested.
  • Pros: Built-in and custom generators support a range of input types, while adjustable test counts let developers run larger samples when appropriate.
  • Pros: RackUnit integration reports failure through a RackUnit exception with the count and counterexample arguments.
  • Cons: Failing-case shrinking is absent, so developers may have to diagnose a more complicated counterexample themselves.
  • Cons: Racket 6.0 or newer is required, ruling out older installations.
  • Cons: License metadata is missing from the package index, a drawback for teams that need clear license information when assessing dependencies.

Alternatives

If the language fit is more important than using Racket, these free property-testing libraries target other ecosystems. Browse property-based testing tools for more options.

  • ScalaCheck is the free alternative to consider for Scala; it is described as an open-source library under the BSD-3-Clause license.
  • FsCheck is a free, BSD-licensed library distributed through NuGet packages.
  • fast-check is a free, MIT-licensed JavaScript/TypeScript option with API, Linux, and web platforms.
  • Gopter is a free, MIT-licensed Go property-testing library for Linux and self-hosted use.
  • JSVerify is a free open-source JavaScript property-testing library for self-hosted and web platforms.
  • PropCheck is a free, MIT-licensed Ruby gem for Linux and self-hosted use, requiring Ruby 2.5.1 or newer.
  • QCheck is a free OCaml property-testing library for Linux, under the BSD-2-Clause license.
  • Scala Hedgehog is a free, open-source Scala testing library for Linux, with no paid plans listed.

Verdict

Racket QuickCheck is a sound choice for Racket programmers who want property checks integrated with their language and RackUnit workflow, without paying for a testing library. Its generated inputs and counterexamples make it useful for exploring properties, but teams that depend on failing-case shrinking should look elsewhere.

Verdict

QuickCheck offers property checks with generated inputs and useful failure details within Racket. Its limits include no failing-case shrinking and a minimum Racket version of 6.0.

Questions

How much does Racket QuickCheck cost?

The listed plan is free.

Which platforms does it support?

It supports Racket on Linux, macOS, and Windows.

What does it use to run checks?

Properties are written in ordinary Racket code and checked against generated values. RackUnit integration is available.

Can I add my own generators?

Yes. The library supports custom generators and also includes generators for several common value types.

What happens when a property fails?

QuickCheck reports a counterexample with the arguments that falsified the property. Its RackUnit integration raises an exception with the test count and counterexample arguments.

Who makes the package?

The package index lists Ismael Figueroa and Mike Sperber as authors.

Facts from Racket QuickCheck's own pages

Authors
The package index lists Ismael Figueroa and Michael Sperber as authors. · pkgs.racket-lang.org, 9 Oct 2026
Build status
The package index reports that the latest listed build compiled successfully and its tests succeeded. · pkgs.racket-lang.org, 9 Oct 2026
Counterexamples
When a property fails, Quickcheck prints the arguments that falsified it along with other result information. · docs.racket-lang.org, 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. · docs.racket-lang.org, 9 Oct 2026
Default test count
The default configuration runs 100 tests, and the documentation provides settings for 1,000 and 10,000 tests. · docs.racket-lang.org, 9 Oct 2026
Generators
Built-in generators cover values including integers, real numbers, characters, lists, vectors, strings, and symbols. · docs.racket-lang.org, 9 Oct 2026
Installation
Install the package with `raco pkg install quickcheck` or through DrRacket’s GUI package manager. · docs.racket-lang.org, 9 Oct 2026
Intended users
The documented workflow is for Racket programmers who want to test program properties with generated inputs. · docs.racket-lang.org, 9 Oct 2026
Minimum version
The package requires Racket v6.0 or newer. · docs.racket-lang.org, 9 Oct 2026
Package authors
The package listing names Ismael Figueroa and Mike Sperber as authors. · pkgs.racket-lang.org, 9 Oct 2026
Package dependencies
The package index lists base, rackunit, doc-coverage, scribble-lib, and racket-doc as dependencies. · pkgs.racket-lang.org, 9 Oct 2026
Package metadata
The package index describes Quickcheck as a clone and shows missing license metadata. · pkgs.racket-lang.org, 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. · pkgs.racket-lang.org, 9 Oct 2026
Platform options
Racket’s download page lists Windows x64 and Arm, macOS Intel and Apple Silicon, and several Linux architectures. · download.racket-lang.org, 9 Oct 2026
Property checks
A property expresses a program specification in ordinary Racket code, and Quickcheck reports a counterexample if a check fails. · docs.racket-lang.org, 9 Oct 2026
Property testing
Properties are written in ordinary Racket code and checked against generated values. · docs.racket-lang.org, 9 Oct 2026
Purpose
Quickcheck tests program specifications by running properties against randomly generated test inputs. · docs.racket-lang.org, 9 Oct 2026
Racket requirement
The package requires Racket v6.0 or newer. · docs.racket-lang.org, 9 Oct 2026
RackUnit integration
The `rackunit/quickcheck` integration raises a RackUnit exception on failure and includes the test count and counterexample arguments. · docs.racket-lang.org, 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. · racket-lang.org, 9 Oct 2026
Supported platforms
The package listing says its build platform is any platform; Racket offers installers for Windows, macOS, and Linux. · pkgs.racket-lang.org, 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. · docs.racket-lang.org, 9 Oct 2026

Where Racket QuickCheck stands on Freedom251

Look at these too