Skip to content
SPECIFICTION
Get listed

ScalaCheck

scalacheck.org

Free plan WindowsmacOSLinux

What it is

ScalaCheck is a free Scala library for automated property-based testing of Scala and Java programs. It checks defined properties against randomized input parameters and reports the arguments that produce a failure. The library supports parameterized cases and parallel execution, and can run on its own with a built-in test runner. For sbt projects, the site shows how to add it as a test dependency; it is also integrated with ScalaTest, specs2 and LambdaTest. ScalaCheck has no external dependencies beyond the Scala runtime. Build artifacts are published in the Central Repository, with an sbt dependency declaration available from the download page. Documentation includes a user guide and API reference. The site lists version 1.19.0, released September 6, 2025. The project identifies the BSD-3-Clause license and lists a security policy. Its build defines JVM, Scala.js and Scala Native platforms, and its README says the Gradle plugin supports Scala.js and Scala Native. The site names the Scala compiler and Akka among projects that use it.

Spec sheet

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

Plans and prices

ScalaCheck Free open-source library · BSD-3-Clause license Read 8 Oct 2026 · github.com

Every ScalaCheck plan and price →

Strong points and limits

Strong points

  • Reports arguments that cause a property to fail
  • Supports parameterized cases and parallel execution
  • Runs standalone with a built-in test runner
  • No external dependencies beyond the Scala runtime
  • Free under the BSD-3-Clause license

Limits

  • Requires the Scala runtime
  • Listed release is 1.19.0 from September 6, 2025

Who it suits

It suits Scala and Java developers who want to check program properties against randomized inputs. It is particularly relevant to projects using sbt or the listed ScalaTest, specs2 and LambdaTest integrations.

ScalaCheck in depth

Read the full write-up

ScalaCheck is a property-testing library for Scala and Java code, best suited to teams already working in the Scala ecosystem. Its focused feature set, framework integrations and free BSD-licensed distribution make it a practical way to broaden test coverage without adding external dependencies beyond Scala.

Overview

ScalaCheck evaluates properties against randomized inputs and reports the arguments that cause a failure. This is useful when a behavior should hold across a range of values, not just a handful of examples: a failing input gives developers a concrete case to investigate. The library cannot determine which rules matter, however; teams must still formulate meaningful properties and expected behavior.

Its narrow dependency footprint is attractive for existing Scala projects, but also defines the boundary of its appeal. ScalaCheck relies on the Scala runtime, so it is not a general-purpose testing choice for projects outside that ecosystem.

Key features

Randomized property checks

ScalaCheck supports property-based checks and parameterized cases, with parallel execution. Randomized arguments can exercise more cases than a short collection of manually selected examples, while reported failure arguments help narrow the investigation. Parallel execution is useful for projects that want checks to run concurrently, though it does not remove the need to write properties that reflect the program's intended behavior.

Build and framework integration

The library works with sbt and integrates with ScalaTest, specs2 and LambdaTest. Teams using one of those frameworks can incorporate property checks into an established testing setup; the built-in runner also allows standalone use. Artifacts are published in the Central Repository, and the recommended sbt test dependency is org.scalacheck %% scalacheck % 1.19.0 % test.

Documentation and project support

A continuously developed user guide and release-specific API documentation support adoption. Bug reports, a mailing list and Stack Overflow provide routes for questions and issue reports. The repository has a security policy, and the project build identifies the BSD-3-Clause license. The Scala compiler and Akka are among the named users of the library.

Pricing

ScalaCheck is free: its ScalaCheck plan costs nothing and is an open-source library under the BSD-3-Clause license. There is no paid tier or free trial to weigh against it; the trade-off is its specialized scope and requirement for the Scala runtime, rather than a feature cap or seat limit. The project lists version 1.19.0, released September 6, 2025.

Platforms

The listed platforms are Linux, macOS and Windows. The project build also defines JVM, Scala.js and Scala Native targets, and the README says the Gradle plugin for Scala.js and Scala Native supports ScalaCheck. That cross-target support is valuable for Scala projects targeting more than the JVM, while the library remains tied to Scala-based development.

Who it's for

Scala and Java developers who want randomized property checks, especially teams already using sbt, ScalaTest, specs2 or LambdaTest, are the natural audience. It is also a reasonable fit for projects that want a small dependency footprint and can express important behavior as properties. Choose a broader or ecosystem-specific testing tool instead if the project cannot use Scala or needs more than property testing.

Pros and cons

Useful failure detail: ScalaCheck reports arguments that falsify a property, giving developers a concrete case to examine.

Fits established Scala workflows: sbt support, three test-framework integrations and standalone execution give teams several ways to adopt it.

Lean, free distribution: the library has no external dependencies beyond Scala and is available under the BSD-3-Clause license at no charge.

Focused rather than comprehensive: it checks properties but does not replace the work of defining expected behavior or serve as a general-purpose testing application.

Scala runtime required: projects outside the Scala ecosystem do not get the same dependency advantage and should consider a tool for their language instead.

Alternatives

For other language ecosystems, these free tools may be a better fit: Racket QuickCheck is a Racket package that requires Racket v6.0 or newer; FsCheck is a BSD-licensed library distributed through NuGet; Gopter is a MIT-licensed Go property-testing library; JSVerify is an open-source JavaScript property-testing library; Hypothesis is another free option; PropCheck is a MIT-licensed Ruby gem requiring Ruby 2.5.1 or newer; QCheck is a BSD-2-Clause OCaml property-testing library; and fast-check is a free option for JavaScript and TypeScript.

Readers comparing tools by category can also browse Property-Based Testing Tools and Unit Testing Frameworks.

Verdict

Choose ScalaCheck when you want randomized property checks for Scala or Java code and value counterexamples, established Scala integrations and a free, narrow-dependency library. Look elsewhere when you need a general-purpose testing framework or a property-testing tool for a project that cannot use the Scala runtime.

Verdict

ScalaCheck offers randomized property checks, failure arguments and several integration options without external dependencies beyond Scala itself. It is a focused testing library for Scala and Java projects, rather than a general-purpose testing application.

Where Specifiction places it

Alternatives to ScalaCheckAll alternatives →