Suggestions appear as you type. Use the up and down arrows to choose one and Enter to open it.

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

  1. Top ranked

    fast-check#1 of 27
    9.4/10

    A deep, runner-agnostic testing library for JavaScript and TypeScript teams.

    Open source

  2. Runner-up

    Hypothesis#2 of 27
    9.3/10

    A focused Python library for generated inputs, shrinking, and stateful tests.

    Free plan

  3. Top-ranked free plan

    Proptest#3 of 27
    9.1/10

    A 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

27 tools
  1. 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
  2. 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
  3. Proptest

    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
  4. 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
  5. CsCheck

    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
  6. 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
  7. PropEr

    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
  8. Best forScala teams needing broad integration

    A broad Scala testing library with generation, shrinking, stateful tests, and ecosystem integrations.

    8.6/10★★★★☆
    Visit ScalaCheck
  9. jqwik

    Best forJava and Kotlin JVM teams

    A focused open-source testing library for Java and Kotlin JVM teams.

    Open source Our jqwik verdict → Visit jqwik
    8.5/10★★★★☆
    Visit jqwik
  10. 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
  11. QCheck

    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
  12. 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
  13. Rapid

    Best forGo teams adopting fuzz targets

    A practical open-source choice for Go teams adopting fuzz targets.

    • Stateful testing
    • Reproducible failures
    • Failing-case shrinking
    Free plan Our Rapid verdict → Visit Rapid
    8.1/10★★★★☆
    Visit Rapid
  14. Gopter

    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
  15. FsCheck

    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
  16. 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
  17. 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
  18. 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
  19. JSVerify

    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
  20. PropCheck

    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
  21. 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
  22. 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
  23. Plausible

    Best forLean 4 developers

    A focused open-source testing framework for Lean 4 developers.

    • Failing-case shrinking
    7.1/10★★★★☆
    Visit Plausible
  24. Eris

    Best forPHPUnit-based PHP teams

    A focused PHP library for generating, shrinking, and replaying PHPUnit test cases.

    • Reproducible failures
    • Failing-case shrinking
    Free plan Our Eris verdict → Visit Eris
    7.0/10★★★★☆
    Visit Eris
  25. Best forHaskell teams testing finite domains

    A deterministic Haskell tester for finite, depth-bounded property checks.

    • Reproducible failures
    6.9/10★★★☆☆
    Visit SmallCheck
  26. Rantly

    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
  27. 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

#ToolFree planPaid fromSupported languagesTest runner supportFailing-case shrinkingStateful testingScore
1fast-checkYesFreeJavaScript, TypeScriptJest, Mocha, Vitest, Ava, Bun, Deno, Node.js test runnerYesYes9.4
2HypothesisYesFreePythonpytest, unittestYesYes9.3
3ProptestYesFreeRustRust test harness ([test]); TestRunnerYesYes9.1
4RapidCheckYesFreeC++Boost Test, Google Test, Google Mock, Catch.hppYesYes9.0
5CsCheckYesFreeC#, F#TUnit; any testing frameworkYesYes8.9
6Scala HedgehogYesFreeScala, Javasbt, Minitest, MUnitYesYes8.8
7PropErYesFreeErlangEUnit, Common TestYesYes8.7
8ScalaCheckYesFreeScala, Java8.6
9jqwikFreeJava, Kotlin, Groovy8.5
10QuickCheckYesFreeHaskellYesYes8.4
11QCheckYesFreeOCamlQCheck_base_runner, QCheck_runner, OUnit, AlcotestYesYes8.3
12FSharp.HedgehogYesFreeF#, C#xUnit V3Yes8.2
13RapidYesFreeGoGo testing package; go testYesYes8.1
14GopterYesFreeGoGo testing package; GoConveyYesYes8.0
15FsCheckYesFreeF#, C#, VB7.9
16QuickTheoriesYesFreeJavaJUnit, TestNG, and other test frameworksYes7.8
17StreamDataYesFreeElixirExUnitYesNo7.7
18test.checkYesFreeClojure, ClojureScriptclojure.test, cljs.testYes7.6
19JSVerifyYesFreeJavaScript, TypeScriptMocha, nodeunit, JasmineYesNo7.5
20PropCheckYesFreeRubyRSpec, MiniTest, test-unitYesNo7.4
21scalapropsYesFreeScalaScalapropsFramework, sbt7.3
22SwiftCheckYesFreeSwiftXCTestYes7.2
23PlausibleYesFreeLean 4Lean 4 tactic frameworkYes7.1
24ErisYesFreePHPPHPUnitYes7.0
25SmallCheckYesFreeHaskellTest.SmallCheck.DriversNo6.9
26RantlyYesFreeRubyTest::Unit, Minitest, RSpecYes6.8
27Racket QuickCheckYesFreeRacketRackUnitNo6.7

Head-to-head All 28 comparisons →

Explore other topics All topics →

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