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
Facts read 29 Sep 2026 – 15 Oct 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.
The standings: top 10
| Name | In a line | Record score | Price from | Try it free | Runs on | Facts read |
|---|---|---|---|---|---|---|
| 01 fast-check | fast-check suits JavaScript and TypeScript developers who want to exercise expected behavior across generated inputs. | 5.0 | Free plan | Free plan | Web, Linux, API, Self-hosted | 15 Oct 2026 |
| 02 FsCheck | FsCheck is for developers testing properties of .NET programs with generated inputs. | 4.8 | Free plan | Free plan | Windows, Mac, Linux | 7 Oct 2026 |
| 03 Racket QuickCheck | QuickCheck is for Racket programmers who want to test properties using generated inputs. | 4.8 | Free plan | Free plan | Windows, Mac, Linux | 9 Oct 2026 |
| 04 ScalaCheck | ScalaCheck suits Scala and Java developers who want to check program properties using randomized cases. | 4.8 | Free plan | Free plan | Windows, Mac, Linux | 8 Oct 2026 |
| 05 Gopter | Gopter suits Go developers who want to test properties using generated inputs, including stateful cases. | 4.7 | Free plan | Free plan | Linux, Self-hosted | 2 Oct 2026 |
| 06 FSharp.Hedgehog | 4.6 | Free plan | Free plan | Windows, Mac, Linux | 8 Oct 2026 | |
| 07 Hypothesis | Hypothesis suits Python developers who want tests to explore generated inputs and edge cases rather than relying only on examples they choose themselves. | 4.5 | Free plan | Free plan | Windows, Mac, Linux | 29 Sep 2026 |
| 08 JSVerify | JSVerify may suit JavaScript developers who want generated inputs to check function properties, including asynchronous methods. | 4.5 | Free plan | Free plan | Web, Self-hosted | 8 Oct 2026 |
| 09 PropCheck | PropCheck suits Ruby developers who want generated examples to check assertions with RSpec, MiniTest, test-unit, or vanilla Ruby. | 4.5 | Free plan | Free plan | Linux, Self-hosted | 8 Oct 2026 |
| 10 QCheck | QCheck suits OCaml developers who want to test properties using generated inputs rather than relying only on individual examples. | 4.4 | Free plan | Free plan | Linux | 7 Oct 2026 |
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.
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.
QuickCheck suits Haskell developers who want to test program properties using generated data, including stateful or monadic properties.
Rantly suits Ruby developers writing property-based tests with Test::Unit, Minitest, or RSpec.