Best Property-Based Testing Tools in 2026

In short: SwiftCheck is ranked #1 of 27 as of 4 October 2026, ahead of Gopter and Scala Hedgehog. The best-ranked option with a free plan is Gopter.

Property-based testing tools generate inputs to check how code behaves across cases. Compare supported languages and test runner support first, then look at cases per run and whether a tool lists failing-case shrinking and reproducible failures. Stateful testing offers another way to distinguish the options; free plans and paid-from pricing provide cost details. The ranked entries start with fast-check and Hypothesis, followed by Proptest and RapidCheck. CsCheck, Scala Hedgehog, QuickCheck, and SwiftCheck also appear among the first options. Consider the language and runner you use, as well as which listed features matter for examining failures.

27 property-based testing tools ranked on what their makers publish — plans and prices, free tiers, platforms and the facts on their own pages.

27ranked
6free plans on this page
4 Oct 2026last checked

Recognised 40% · Phone app 26% · Documented 20% · Free plan 14% of the score

  1. 1 SwiftCheck iPhone only RecognisedPhone appDocumentedFree plan 6.7 Supported languages: SwiftTest runner support: XCTestFailing-case shrinking: Yes
  2. 2 Gopter No phone app RecognisedPhone appDocumentedFree plan 6.4Free Supported languages: GoTest runner support: Go testing package; GoConveyFailing-case shrinking: Yes
  3. 3 Scala Hedgehog No phone app RecognisedPhone appDocumentedFree plan 6.4Free Supported languages: Scala, JavaTest runner support: sbt, Minitest, MUnitFailing-case shrinking: Yes
  4. 4 CsCheck No phone app RecognisedPhone appDocumentedFree plan 6.3Free Supported languages: C#, F#Test runner support: TUnit; any testing frameworkFailing-case shrinking: Yes
  5. 5 fast-check No phone app RecognisedPhone appDocumentedFree plan 6.2Free Supported languages: JavaScript, TypeScriptTest runner support: Jest, Mocha, Vitest, Ava, Bun, Deno, Node.js test runnerFailing-case shrinking: Yes
  6. 6 QuickCheck No phone app RecognisedPhone appDocumentedFree plan 6.2Free Supported languages: HaskellTest runner support: Test.SmallCheck.DriversFailing-case shrinking: Yes
  7. 7 Rapid No phone app RecognisedPhone appDocumentedFree plan 6.2Free Supported languages: GoTest runner support: Go testing package; go testFailing-case shrinking: Yes
  8. 8 Hypothesis No phone app RecognisedPhone appDocumentedFree plan 5.8 Supported languages: PythonTest runner support: pytest, unittestFailing-case shrinking: Yes
  9. 9 Proptest No phone app RecognisedPhone appDocumentedFree plan 5.8 Supported languages: RustTest runner support: Rust test harness ([test]); TestRunnerFailing-case shrinking: Yes
  10. 10 RapidCheck No phone app RecognisedPhone appDocumentedFree plan 5.8 Supported languages: C++Test runner support: Boost Test, Google Test, Google Mock, Catch.hppFailing-case shrinking: Yes
  11. 11 Eris No phone app RecognisedPhone appDocumentedFree plan 5.3 Supported languages: PHPTest runner support: PHPUnitFailing-case shrinking: Yes
  12. 12 FSharp.Hedgehog No phone app RecognisedPhone appDocumentedFree plan 5.3 Supported languages: F#, C#Test runner support: xUnit V3Failing-case shrinking: Yes
  13. 13 JSVerify No phone app RecognisedPhone appDocumentedFree plan 5.3 Supported languages: JavaScript, TypeScriptTest runner support: Mocha, nodeunit, JasmineFailing-case shrinking: Yes
  14. 14 PropCheck No phone app RecognisedPhone appDocumentedFree plan 5.3 Supported languages: RubyTest runner support: RSpec, MiniTest, test-unitFailing-case shrinking: Yes
  15. 15 PropEr No phone app RecognisedPhone appDocumentedFree plan 5.3 Supported languages: ErlangTest runner support: EUnit, Common TestFailing-case shrinking: Yes
  16. 16 QCheck No phone app RecognisedPhone appDocumentedFree plan 5.3 Supported languages: OCamlTest runner support: QCheck_base_runner, QCheck_runner, OUnit, AlcotestFailing-case shrinking: Yes
  17. 17 QuickTheories No phone app RecognisedPhone appDocumentedFree plan 5.3 Supported languages: JavaTest runner support: JUnit, TestNG, and other test frameworksFailing-case shrinking: Yes
  18. 18 StreamData No phone app RecognisedPhone appDocumentedFree plan 5.3 Supported languages: ElixirTest runner support: ExUnitFailing-case shrinking: Yes
  19. 19 test.check No phone app RecognisedPhone appDocumentedFree plan 5.3 Supported languages: Clojure, ClojureScriptTest runner support: clojure.test, cljs.testFailing-case shrinking: Yes
  20. 20 Plausible No phone app RecognisedPhone appDocumentedFree plan 5.2 Supported languages: Lean 4Test runner support: Lean 4 tactic frameworkFailing-case shrinking: Yes
  21. 21 Racket QuickCheck No phone app RecognisedPhone appDocumentedFree plan 5.2 Supported languages: RacketTest runner support: RackUnitFailing-case shrinking: No
  22. 22 Rantly No phone app RecognisedPhone appDocumentedFree plan 5.2 Supported languages: RubyTest runner support: Test::Unit, Minitest, RSpecFailing-case shrinking: Yes
  23. 23 scalaprops No phone app RecognisedPhone appDocumentedFree plan 5.2 Supported languages: ScalaTest runner support: ScalapropsFramework, sbt
  24. 24 FsCheck No phone app RecognisedPhone appDocumentedFree plan 5.1 Supported languages: F#, C#, VB
  25. 25 ScalaCheck No phone app RecognisedPhone appDocumentedFree plan 5.1 Supported languages: Scala, Java

Is your app on this list?

Numbered spots on this list can be sponsored. They are labelled, and the editorial order and scores never change for payment.

Questions about this list

Which property-based testing tool is ranked first on Samsung Mobile US Press?

SwiftCheck is ranked #1 of 27 with a score of 6.7. Gopter is second and Scala Hedgehog third.

How many of these have a free plan?

6 of the 25 on this page publish a free plan on their own pricing pages.

How is this list ranked?

Ranked mobile-first: a phone app alongside the web or desktop product, a free tier and the depth of its documentation. Paid placements never change a rank.

More in Developer Tools

All developer tools lists