fast-check suits JavaScript and TypeScript developers who want to exercise expected behavior across generated inputs.
- Home
- Developer Tools
- Property-Based Testing Tools
Best Property-Based Testing Tools 2026
Property-based testing tools use generated inputs to explore how code behaves across cases. Compared on supported languages and test runner support, the entries also provide details on cases per run, failing-case shrinking and reproducible failures. Stateful testing offers another point of distinction, while free-plan availability and paid-from pricing help frame the cost comparison. SwiftCheck, Gopter and Scala Hedgehog are among the options shown, alongside CsCheck, fast-check, QuickCheck, Rapid and Hypothesis. Consider the languages and runners in your workflow, as well as what you need when a generated case reveals a failure that should be inspected or reproduced.
FsCheck
FsCheck is for developers testing properties of .NET programs with generated inputs.
WindowsMacLinuxRacket QuickCheck
QuickCheck is for Racket programmers who want to test properties using generated inputs.
WindowsMacLinuxScalaCheck
ScalaCheck suits Scala and Java developers who want to check program properties using randomized cases.
WindowsMacLinuxGopter
Gopter suits Go developers who want to test properties using generated inputs, including stateful cases.
LinuxSelf-hostedHypothesis suits Python developers who want tests to explore generated inputs and edge cases rather than relying only on examples they choose themselves.
JSVerify may suit JavaScript developers who want generated inputs to check function properties, including asynchronous methods.
PropCheck suits Ruby developers who want generated examples to check assertions with RSpec, MiniTest, test-unit, or vanilla Ruby.
QCheck suits OCaml developers who want to test properties using generated inputs rather than relying only on individual examples.
Scala developers seeking property-based tests, including tests for stateful systems, are the intended users.
Swift developers who want to express tests as properties over generated inputs may find it useful, particularly those using XCTest.
CsCheck suits C# and F# developers who want generated tests, failure shrinking, and reproducible cases.
It suits Java developers who want to test general properties and invariants across generated inputs.
QuickCheck suits Haskell developers who want to test program properties using generated data, including stateful or monadic properties.
scalaprops suits Scala developers writing property-based tests, law checks, and reproducible failure cases.
It is designed for developers testing Erlang programs, especially pure functions and library modules for stateful code.
Rantly suits Ruby developers writing property-based tests with Test::Unit, Minitest, or RSpec.