The Best Property-Based Testing Tools in 2026
fast-check is the top-ranked property-based testing tool of the 27 we ranked (9.4/10, free plan), best for javaScript and TypeScript teams. Hypothesis is the runner-up (9.3/10), and Proptest is the next highest-ranked option with a free plan (9.1/10). We researched products from their official websites, including pricing pages, plan tables, and product documentation. Rankings reflect how well each product supports generating structured inputs for general properties and invariants, alongside value for money and verified features. This guide is for teams choosing property-based testing tools.
Our top picks
-
Top ranked
fast-check#1 of 279.4/10A deep, runner-agnostic testing library for JavaScript and TypeScript teams.
Open source
-
Runner-up
Hypothesis#2 of 279.3/10A focused Python library for generated inputs, shrinking, and stateful tests.
Free plan
-
Top-ranked free plan
Proptest#3 of 279.1/10A focused Rust framework for generated inputs, shrinking, replay, and stateful tests.
Free plan
Advertiser disclosure: iTechGuides is reader-supported. Vendors can pay for top positions in our rankings and for a place on other products' pages, and we may earn a commission when you click some links. Bought places stand at the number bought; this page and our disclosure say so. Paying vendors may get a fuller, more detailed review from our editors, and that review can change their score. How we rank.
The full ranking 27 tools, best first
-
Best forJavaScript and TypeScript teams
A deep, runner-agnostic testing library for JavaScript and TypeScript teams.
- Stateful testing
- Reproducible failures
- Failing-case shrinking
9.4/10★★★★★Visit fast-check -
Best forPython teams using pytest
A focused Python library for generated inputs, shrinking, and stateful tests.
- Stateful testing
- Reproducible failures
- Failing-case shrinking
9.3/10★★★★★Visit Hypothesis -
Best forRust teams
A focused Rust framework for generated inputs, shrinking, replay, and stateful tests.
- Stateful testing
- Reproducible failures
- Failing-case shrinking
9.1/10★★★★★Visit Proptest -
Best forC++ teams with varied test stacks
A focused C++ framework for finding, shrinking, and reproducing counterexamples.
- Stateful testing
- Reproducible failures
- Failing-case shrinking
9.0/10★★★★☆Visit RapidCheck -
Best forAdvanced .NET property testing
An open-source choice for advanced C# and F# property-based testing.
- Stateful testing
- Reproducible failures
- Failing-case shrinking
8.9/10★★★★☆Visit CsCheck -
Best forScala teams using MUnit or Minitest
A focused open-source choice for Scala teams needing generation, shrinking, and replay.
- Stateful testing
- Reproducible failures
- Failing-case shrinking
8.8/10★★★★☆Visit Scala Hedgehog -
Best forErlang teams testing stateful systems
A focused Erlang tool for generated properties, stateful models, and smaller failure cases.
- Stateful testing
- Failing-case shrinking
8.7/10★★★★☆Visit PropEr -
Best forScala teams needing broad integration
A broad Scala testing library with generation, shrinking, stateful tests, and ecosystem integrations.
8.6/10★★★★☆Visit ScalaCheck -
Best forJava and Kotlin JVM teams
A focused open-source testing library for Java and Kotlin JVM teams.
8.5/10★★★★☆Visit jqwik -
Best forHaskell teams needing deep analysis
A deep, open-source choice for Haskell teams testing pure and effectful code.
- Stateful testing
- Reproducible failures
- Failing-case shrinking
8.4/10★★★★☆View QuickCheck -
Best forOCaml teams
A focused OCaml library with generators, shrinking, runners, and model-based testing.
- Stateful testing
- Failing-case shrinking
8.3/10★★★★☆Visit QCheck -
Best forF# and C# teams using xUnit V3
A focused open-source choice for F# and C# teams using xUnit V3.
- Reproducible failures
- Failing-case shrinking
8.2/10★★★★☆Try FSharp.Hedgehog -
Best forGo teams adopting fuzz targets
A practical open-source choice for Go teams adopting fuzz targets.
- Stateful testing
- Reproducible failures
- Failing-case shrinking
8.1/10★★★★☆Visit Rapid -
Best forGo teams needing stateful properties
A focused Go library for generated tests, shrinking, and stateful command sequences.
- Stateful testing
- Reproducible failures
- Failing-case shrinking
8.0/10★★★★☆Visit Gopter -
Best forF#, C#, and VB teams
A focused open-source choice for generative testing across F#, C#, and Visual Basic.
7.9/10★★★★☆Visit FsCheck -
Best forJava teams using JUnit or TestNG
A focused Java library for generating, shrinking, and reproducing property-test failures.
- Reproducible failures
- Failing-case shrinking
7.8/10★★★★☆Visit QuickTheories -
Best forElixir teams using ExUnit
A focused, open-source choice for repeatable property-based testing in ExUnit.
- Reproducible failures
- Failing-case shrinking
7.7/10★★★★☆Visit StreamData -
Best forClojure and ClojureScript teams
A focused library for generated properties, shrinking, and reproducible failures.
- Reproducible failures
- Failing-case shrinking
7.6/10★★★★☆Visit test.check -
Best forJavaScript teams using Mocha or Jasmine
A focused open-source choice for randomized JavaScript testing with Mocha or Jasmine.
- Reproducible failures
- Failing-case shrinking
7.5/10★★★★☆Visit JSVerify -
Best forRuby teams using RSpec or MiniTest
A focused Ruby library for generated inputs, shrinking, and composable properties.
- Failing-case shrinking
7.4/10★★★★☆Visit PropCheck -
Best forScala teams needing law checking
A focused Scala library for generated properties, law checking, and reproducible failures.
- Reproducible failures
7.3/10★★★★☆Visit scalaprops -
Best forSwift teams on Apple platforms
A focused open-source property-testing library for Swift and XCTest.
- Failing-case shrinking
7.2/10★★★★☆Visit SwiftCheck -
Best forLean 4 developers
A focused open-source testing framework for Lean 4 developers.
- Failing-case shrinking
7.1/10★★★★☆Visit Plausible -
Best forPHPUnit-based PHP teams
A focused PHP library for generating, shrinking, and replaying PHPUnit test cases.
- Reproducible failures
- Failing-case shrinking
7.0/10★★★★☆Visit Eris -
Best forHaskell teams testing finite domains
A deterministic Haskell tester for finite, depth-bounded property checks.
- Reproducible failures
6.9/10★★★☆☆Visit SmallCheck -
Best forRuby teams wanting flexible generators
A flexible Ruby library for generated data, property tests, and optional shrinking.
- Failing-case shrinking
6.8/10★★★☆☆Visit Rantly -
Best forRacket teams using RackUnit
A focused, free property-testing library for Racket teams using RackUnit.
6.7/10★★★☆☆View Racket package
No tools match those filters.
Compare at a glance
| # | Tool | Free plan | Paid from | Supported languages | Test runner support | Failing-case shrinking | Stateful testing | Score |
|---|---|---|---|---|---|---|---|---|
| 1 | fast-check | Yes | Free | JavaScript, TypeScript | Jest, Mocha, Vitest, Ava, Bun, Deno, Node.js test runner | Yes | Yes | 9.4 |
| 2 | Hypothesis | Yes | Free | Python | pytest, unittest | Yes | Yes | 9.3 |
| 3 | Proptest | Yes | Free | Rust | Rust test harness ([test]); TestRunner | Yes | Yes | 9.1 |
| 4 | RapidCheck | Yes | Free | C++ | Boost Test, Google Test, Google Mock, Catch.hpp | Yes | Yes | 9.0 |
| 5 | CsCheck | Yes | Free | C#, F# | TUnit; any testing framework | Yes | Yes | 8.9 |
| 6 | Scala Hedgehog | Yes | Free | Scala, Java | sbt, Minitest, MUnit | Yes | Yes | 8.8 |
| 7 | PropEr | Yes | Free | Erlang | EUnit, Common Test | Yes | Yes | 8.7 |
| 8 | ScalaCheck | Yes | Free | Scala, Java | 8.6 | |||
| 9 | jqwik | Free | Java, Kotlin, Groovy | 8.5 | ||||
| 10 | QuickCheck | Yes | Free | Haskell | Yes | Yes | 8.4 | |
| 11 | QCheck | Yes | Free | OCaml | QCheck_base_runner, QCheck_runner, OUnit, Alcotest | Yes | Yes | 8.3 |
| 12 | FSharp.Hedgehog | Yes | Free | F#, C# | xUnit V3 | Yes | 8.2 | |
| 13 | Rapid | Yes | Free | Go | Go testing package; go test | Yes | Yes | 8.1 |
| 14 | Gopter | Yes | Free | Go | Go testing package; GoConvey | Yes | Yes | 8.0 |
| 15 | FsCheck | Yes | Free | F#, C#, VB | 7.9 | |||
| 16 | QuickTheories | Yes | Free | Java | JUnit, TestNG, and other test frameworks | Yes | 7.8 | |
| 17 | StreamData | Yes | Free | Elixir | ExUnit | Yes | No | 7.7 |
| 18 | test.check | Yes | Free | Clojure, ClojureScript | clojure.test, cljs.test | Yes | 7.6 | |
| 19 | JSVerify | Yes | Free | JavaScript, TypeScript | Mocha, nodeunit, Jasmine | Yes | No | 7.5 |
| 20 | PropCheck | Yes | Free | Ruby | RSpec, MiniTest, test-unit | Yes | No | 7.4 |
| 21 | scalaprops | Yes | Free | Scala | ScalapropsFramework, sbt | 7.3 | ||
| 22 | SwiftCheck | Yes | Free | Swift | XCTest | Yes | 7.2 | |
| 23 | Plausible | Yes | Free | Lean 4 | Lean 4 tactic framework | Yes | 7.1 | |
| 24 | Eris | Yes | Free | PHP | PHPUnit | Yes | 7.0 | |
| 25 | SmallCheck | Yes | Free | Haskell | Test.SmallCheck.Drivers | No | 6.9 | |
| 26 | Rantly | Yes | Free | Ruby | Test::Unit, Minitest, RSpec | Yes | 6.8 | |
| 27 | Racket QuickCheck | Yes | Free | Racket | RackUnit | No | 6.7 |
Head-to-head All 28 comparisons →
- fast-check vs Hypothesis
- fast-check vs Proptest
- fast-check vs RapidCheck
- fast-check vs CsCheck
- fast-check vs Scala Hedgehog
- fast-check vs PropEr
- fast-check vs ScalaCheck
- Hypothesis vs Proptest
- Hypothesis vs RapidCheck
Explore other topics All topics →
- AI Tools 314 directories · 8,550 tools ranked AI Writing Tools · AI Video Generators · Text-to-Speech Software
- Web Hosting & Domains 275 directories · 6,107 tools ranked Shared Web Hosting · Managed Cloud Hosting · Dedicated Server Hosting
- Productivity 157 directories · 4,948 tools ranked Note-Taking Apps · Calendar Apps · Project Management Software
- Marketing 139 directories · 4,058 tools ranked SEO Tools · Influencer Marketing Platforms · Email Marketing Software
- Sales & CRM 153 directories · 4,187 tools ranked Real Estate CRM Software · CRM Software · Proposal Software
- Customer Service 55 directories · 1,547 tools ranked Chatbot Builders · Knowledge Base Software · Call Center Software
How we rank Property-Based testing tools
Every tool on this page was researched by iTechGuides Editors from its official website — pricing pages, plan tables and product documentation. We rank on how well each one does this category's core job, what the free or entry plan includes, and where it falls short. Where we have enough verified facts, the score out of 10 is a rubric — job fit, value and how much we could verify — shown with its breakdown on every tool's page; a tool we have not verified enough to score yet shows its rank without a number. Scores are re-checked when a product changes its plans. Read the full editorial policy, or submit a tool we missed.
Reviewed by iTechGuides Editors · Editorial team · Updated Nov 2026
Last updated · How we research and update






