Property-Based Testing Tools
Alternatives to Racket QuickCheck
Racket QuickCheck lets Racket programmers express properties in ordinary Racket code and check them against randomly generated inputs. Its built-in generators cover integers, real numbers, characters, lists, vectors, strings, and symbols, while custom generators support domain-specific data. A failed property reports the arguments that falsified it, and RackUnit integration raises a RackUnit exception with test details. Runs default to 100 successful tests, with helpers for 1,000, 10,000, or custom counts. The free package runs on Linux, macOS, and Windows, but requires Racket 6.0 or newer and installation through Racket’s package tools.
- 01
fast-check It suits JavaScript and TypeScript developers who want to check behavior across generated inputs, including teams using different test runners.
Free plan Open source Web · Linux · API · Self-hosted8.9 Visit Specs - 02 Gopter
Gopter suits Go developers who want property-based testing, generator control, shrinking, or stateful tests.
Free plan Linux · Self-hosted8.6 Visit Specs - 03 FsCheck
FsCheck suits developers who want generated-input property checks for .NET programs, with properties written in F#, C# or VB.
Free plan Windows · macOS · Linux8.4 Visit Specs - 04 JSVerify
It suits JavaScript developers who want generated inputs to check function properties, including asynchronous ones.
Free plan Web · Self-hosted8.1 Visit Specs - 05 CsCheck
CsCheck suits C# developers who want generated, shrinkable tests, including stateful or concurrent testing.
Free plan Self-hosted8.0 Visit Specs - 06 PropCheck
PropCheck suits Ruby developers who want to check assertions across generated inputs using RSpec, MiniTest, test-unit or vanilla Ruby.
Free plan Linux · Self-hosted8.0 Visit Specs - 07 ScalaCheck
It suits Scala and Java developers who want to check program properties against randomized inputs.
Free plan Windows · macOS · Linux8.0 Visit Specs - 08 QCheck
It suits OCaml developers who want to check properties over generated inputs, including teams using OUnit or Alcotest.
Free plan Linux7.9 Visit Specs - 09 QuickTheories
QuickTheories suits Java developers testing broad properties and invariants rather than only hand-written examples.
Free plan API · Self-hosted7.7 Visit Specs - 10 Scala Hedgehog
Scala developers who want property-based tests, including tests of stateful systems, may find Scala Hedgehog relevant.
Free plan Linux7.7 Visit Specs - 11 Eris Self-hosted7.6 Visit Specs
- 12 FSharp.Hedgehog Windows · macOS · Linux7.5 Visit Specs
- 13 PropEr
PropEr suits Erlang developers testing pure functions, library modules, and stateful code.
Free plan Self-hosted7.5 Visit Specs - 14 Hypothesis
Hypothesis suits Python developers who want tests to explore inputs and edge cases based on described behavior.
Windows · macOS · Linux7.4 Visit Specs - 15 QuickCheck
QuickCheck suits Haskell developers who want to check properties across generated inputs, including stateful or monadic properties.
Free plan Linux7.3 Visit Specs - 16 Rantly Free plan Self-hosted7.3 Visit Specs
- 17 Rapid Free plan Self-hosted7.1 Visit Specs
- 18
jqwik 7.0 Visit Specs - 19 Proptest Web7.0 Visit Specs
- 20 RapidCheck Windows · Linux · Self-hosted7.0 Visit Specs
- 21 scalaprops
Scalaprops suits Scala developers writing property-based tests, law checks, or Scalaz-integrated tests.
Free plan Linux7.0 Visit Specs - 22 StreamData Free plan API7.0 Visit Specs
- 23 test.check Free plan API6.9 Visit Specs
- 24 Plausible 6.5 Visit Specs
- 25 QuickCheck 6.5 Visit Specs
- 26 SwiftCheck macOS · iOS6.5 Visit Specs
- 27 SmallCheck 5.1 Visit Specs
Choosing instead of Racket QuickCheck
Readers may switch for another programming language, automatic failure shrinking, broader test-runner integration, asynchronous checks, or stateful testing. QuickCheck does not shrink failing cases, and its workflow remains tied to the Racket runtime and RackUnit ecosystem. Compare each alternative’s language, generator controls, counterexample handling, runner integrations, platform coverage, and any asynchronous or stateful features. The better choice depends on whether your existing code and test workflow fit Racket or another ecosystem more closely.
Racket QuickCheck, head to head
- Racket QuickCheck vs fast-check
- Racket QuickCheck vs Gopter
- Racket QuickCheck vs FsCheck
- Racket QuickCheck vs JSVerify
- Racket QuickCheck vs CsCheck
- Racket QuickCheck vs PropCheck
- Racket QuickCheck vs ScalaCheck
- Racket QuickCheck vs QCheck
- Racket QuickCheck vs QuickTheories
- Racket QuickCheck vs Scala Hedgehog
- Racket QuickCheck vs Eris
- Racket QuickCheck vs FSharp.Hedgehog