FREEDOM251

Freedom251 › Property-Based Testing Tools

ScalaCheck

Free plan LinuxMacWindows

Visit ScalaCheck Alternatives Pricing

ScalaCheck's own site

What ScalaCheck is

ScalaCheck is a free Scala library for automated property-based testing of Scala and Java programs. It checks properties against randomized input parameters and reports arguments that make a property fail, helping developers inspect counterexamples. It supports parameterized cases and parallel execution, and can run independently through its built-in test runner. For sbt projects, the project site shows how to add it as a test dependency; it is also integrated with ScalaTest, specs2, and LambdaTest. The library has no external dependencies beyond the Scala runtime. Build artifacts are published in the Central Repository, and the site links to a user guide and API documentation. The listed release is ScalaCheck 1.19.0, released September 6, 2025. The project build identifies its license as BSD-3-Clause, and its repository lists a security policy. Its README says a Gradle plugin supports it for Scala.js and Scala Native. The site names the Scala compiler and Akka among projects that use it.

Who it suits

Scala and Java developers who want automated checks using generated inputs may find ScalaCheck useful. It fits projects using sbt or the listed testing integrations, as well as standalone test runs.

What it does well

  • Tests Scala and Java program properties.
  • Reports inputs that falsify a property.
  • Supports parameterized cases and parallel execution.
  • Integrates with sbt, ScalaTest, specs2, and LambdaTest.
  • No external dependencies beyond the Scala runtime.

What to know first

  • Requires the Scala runtime.
  • The listed release is from September 6, 2025.

Plans

PlanBilled and limitsPrice
ScalaCheckopen-source library · BSD-3-Clause licenseFree

As scalacheck.org lists them, read 8 Oct 2026. The maker's own page has the final word.

Getting started

  1. Open the ScalaCheck website
  2. Add org.scalacheck %% scalacheck % 1.19.0 % test as an sbt test dependency
  3. Use ScalaCheck with sbt, ScalaTest, specs2, or LambdaTest, or run it with its built-in test runner
  4. Consult the user guide or API documentation

ScalaCheck is a free library for automated property-based testing of Scala and Java programs. It is best suited to teams already working in Scala build and test workflows. Its focused approach can expose failing inputs across randomized cases without adding a separate paid plan.

Overview

Instead of checking only hand-picked examples, ScalaCheck evaluates properties over randomized inputs and reports the arguments that make a property fail. This is useful when a rule should hold across many possible values: the reported case gives developers something specific to investigate. It does not determine which behaviors matter, so teams still need to define meaningful properties.

ScalaCheck's only external dependency is the Scala runtime. That keeps its dependency footprint narrow, but makes it a poor fit for projects that cannot accommodate that runtime. The project is licensed under BSD-3-Clause.

Key features

Randomized property checks

Parameterized cases and property-based checks let developers examine behavior across varied inputs, while reported failing arguments make a broken property more actionable. Parallel execution is supported, which can suit suites that want to run checks concurrently; the value still depends on writing useful properties in the first place.

Build and framework integration

ScalaCheck works with sbt and integrates with ScalaTest, specs2, and LambdaTest. Teams already using those tools can incorporate property checks into familiar workflows rather than relying only on standalone execution. It can also run with its built-in test runner, providing an option when framework integration is not needed.

Build artifacts are published in the Central Repository, and the project recommends adding version 1.19.0 as an sbt test dependency. Its build defines JVM, Scala.js, and Scala Native targets; the README also notes support from the Gradle plugin for Scala.js and Scala Native.

Pricing

ScalaCheck's free plan costs nothing and provides the open-source library under a BSD-3-Clause license. There is no free trial, because there is no paid tier to trial. No seat or usage quota is attached to the plan. This makes it straightforward to consider for teams that need property checks without a software fee, though adopting it still requires the Scala runtime.

Platforms

ScalaCheck supports Linux, macOS, and Windows. Its build targets JVM, Scala.js, and Scala Native, giving Scala projects more than a JVM-only target choice. Documentation includes a continuously developed user guide and latest-release API documentation. Support routes include GitHub bug reports, a mailing list, and Stack Overflow; the repository also lists a security policy.

Who it's for

ScalaCheck is a sensible choice for Scala and Java developers who want randomized checks for program properties and already use sbt or one of its integrated test frameworks. It is particularly relevant when a behavior can be expressed as a rule over many inputs, rather than a handful of fixed examples. Developers seeking a broad testing framework, or projects unable to use the Scala runtime, should look elsewhere.

Pros and cons

  • Actionable failing cases: ScalaCheck reports the arguments that falsify a property, helping developers investigate a specific failure.
  • Several integration paths: sbt, ScalaTest, specs2, and LambdaTest support make it easier to fit property checks into existing Scala workflows.
  • Free and BSD-3-Clause licensed: There is no software charge for the library, and its license is identified as BSD-3-Clause.
  • Runtime dependency: The Scala runtime is required, limiting its appeal for projects that need a runtime-independent testing library.
  • Focused scope: It checks properties but does not replace the work of defining expected behavior or the need for other testing approaches.

Alternatives

For a language-specific alternative, Racket QuickCheck is free and requires Racket v6.0 or newer, so it is the more relevant choice for Racket projects. FsCheck is a free BSD-licensed library distributed through NuGet packages, making it an option for developers seeking that package ecosystem instead of ScalaCheck's Scala workflow.

fast-check is a free, MIT-licensed JavaScript/TypeScript option for web or API environments. Go developers can consider Gopter, a free MIT-licensed Go property-testing library. JSVerify is a free open-source JavaScript property-based testing library, while PropCheck is a free MIT-licensed Ruby gem requiring Ruby 2.5.1 or newer. QCheck is a free OCaml property-testing library under BSD-2-Clause. For another Scala testing library, Scala Hedgehog is free and has no paid plans.

Browse Property-Based Testing Tools or Unit Testing Frameworks to compare more options.

Verdict

Choose ScalaCheck if you work in Scala or Java and want a free way to check properties against randomized inputs, especially if sbt or one of its integrated frameworks is already part of your workflow. Its ability to report failing arguments is the clearest reason to choose it. Look elsewhere if you cannot use the Scala runtime or need a general-purpose testing framework rather than a focused property-checking library.

Verdict

ScalaCheck provides randomized property checks with several listed integration options and a standalone runner. Its Scala runtime dependency and the listed release date are worth noting when assessing fit.

Questions

How much does ScalaCheck cost?

The listed plan is free. It is an open-source library under the BSD-3-Clause license.

Is there a free plan or trial?

ScalaCheck is listed as free, with a free plan. No free trial is offered.

Which languages does it support?

ScalaCheck is listed for Scala and Java programs.

Which platforms does it support?

The listed platforms are Linux, macOS, and Windows. The project build defines JVM, Scala.js, and Scala Native targets.

Does it integrate with test tools?

It works with sbt and integrates with ScalaTest, specs2, and LambdaTest. It can also run independently with its built-in test runner.

Who maintains ScalaCheck, and what license does it use?

The project build lists Rickard Nilsson as a developer and identifies the license as BSD-3-Clause.

Facts from ScalaCheck's own pages

Build integration
The site says ScalaCheck works with sbt and shows adding it as a test dependency. · scalacheck.org, 7 Oct 2026
Compatibility
The project README says ScalaCheck is supported by the Gradle plugin for Scala.js and Scala Native. · github.com, 7 Oct 2026
Dependencies
ScalaCheck has no external dependencies other than the Scala runtime. · scalacheck.org, 8 Oct 2026
Distribution
Build artifacts are published in the Central Repository, and the download page gives an sbt dependency declaration. · scalacheck.org, 7 Oct 2026
Documentation
The site links to a continuously developed user guide and API documentation for the latest release. · scalacheck.org, 8 Oct 2026
Installation
The site recommends adding org.scalacheck %% scalacheck % 1.19.0 % test as an sbt dependency. · scalacheck.org, 8 Oct 2026
Integrations
The site says ScalaCheck works with sbt and is integrated with ScalaTest, specs2 and LambdaTest. · scalacheck.org, 8 Oct 2026
Latest listed release
The site lists ScalaCheck 1.19.0, released on September 6, 2025. · scalacheck.org, 7 Oct 2026
License
The project build identifies its license as BSD-3-Clause. · github.com, 8 Oct 2026
Maintainer
The project build lists Rickard Nilsson as a developer. · github.com, 8 Oct 2026
Notable usage
The site names the Scala compiler and Akka as projects that use ScalaCheck. · scalacheck.org, 7 Oct 2026
Purpose
ScalaCheck is a Scala library for automated property-based testing of Scala or Java programs. · scalacheck.org, 8 Oct 2026
Security
The GitHub repository page lists a security policy. · github.com, 8 Oct 2026
Security and license
The project repository lists a security policy and identifies its license as BSD-3-Clause. · github.com, 7 Oct 2026
Standalone use
ScalaCheck can run standalone with its built-in test runner. · scalacheck.org, 8 Oct 2026
Support
The documentation page links to GitHub bug reports, a mailing list and Stack Overflow. · scalacheck.org, 8 Oct 2026
Support channels
The documentation page links to bug reports, a mailing list, and ScalaCheck on Stack Overflow. · scalacheck.org, 7 Oct 2026
Supported targets
The project build defines JVM, Scala.js and Scala Native platforms. · github.com, 8 Oct 2026
Test frameworks
ScalaCheck is integrated with ScalaTest, specs2, and LambdaTest. · scalacheck.org, 7 Oct 2026
Test generation
Its properties are checked over randomized input parameters, and it reports arguments that cause a property to fail. · scalacheck.org, 7 Oct 2026
Testing
It tests properties with randomized inputs and reports arguments that falsify a property. · scalacheck.org, 8 Oct 2026

Where ScalaCheck stands on Freedom251

Look at these too