ScalaCheck
ScalaCheck is a free Scala library for automated property-based testing of Scala and Java programs.
What ScalaCheck is
ScalaCheck is a free Scala library for automated property-based testing of Scala and Java programs. Developers describe properties and ScalaCheck checks them against randomized inputs, reporting the arguments that make a property fail. It supports parameterized cases and parallel execution, and can run independently with its built-in test runner. For projects using sbt, the site recommends adding it as a test dependency. It also integrates with ScalaTest, specs2, and LambdaTest. ScalaCheck has no external dependencies beyond the Scala runtime. Build artifacts are published in the Central Repository, while the project site links to a user guide and API documentation. The listed release is version 1.19.0, released September 6, 2025. The project identifies its license as BSD-3-Clause and lists a security policy. The README says the Gradle plugin supports ScalaCheck for Scala.js and Scala Native; the project build defines JVM, Scala.js, and Scala Native platforms. The site names the Scala compiler and Akka among projects that use it.
Good
- Tests properties using randomized inputs.
- Reports arguments that falsify a property.
- Integrates with ScalaTest, specs2, and LambdaTest.
- Can run standalone with its built-in test runner.
- BSD-3-Clause license; free to use.
Watch out
- Requires the Scala runtime.
- No free trial is listed.
- The listed release is from September 6, 2025.
Who it suits
ScalaCheck is suited to developers testing Scala or Java code with randomized property checks. It fits projects using sbt or the listed testing integrations, and can also be run standalone.
Verdict
ScalaCheck provides property-based testing for Scala and Java, with several testing integrations and standalone use. Its randomized checks and reported failing arguments make it a focused option for developers working with those languages.
Plans and prices
From ScalaCheck's own pricing page, checked 8 Oct 2026.
| Plan | Price | What it gives you |
|---|---|---|
| ScalaCheck | Free | open-source library · BSD-3-Clause license |
The facts
Each one read from ScalaCheck's own pages, with the date it was checked.
What it does
- Build integration
- The site says ScalaCheck works with sbt and shows adding it as a test dependency.checked 7 Oct 2026
- Compatibility
- The project README says ScalaCheck is supported by the Gradle plugin for Scala.js and Scala Native.checked 7 Oct 2026
- Dependencies
- ScalaCheck has no external dependencies other than the Scala runtime.checked 8 Oct 2026
- Distribution
- Build artifacts are published in the Central Repository, and the download page gives an sbt dependency declaration.checked 7 Oct 2026
- Documentation
- The site links to a continuously developed user guide and API documentation for the latest release.checked 8 Oct 2026
- Installation
- The site recommends adding org.scalacheck %% scalacheck % 1.19.0 % test as an sbt dependency.checked 8 Oct 2026
- Integrations
- The site says ScalaCheck works with sbt and is integrated with ScalaTest, specs2 and LambdaTest.checked 8 Oct 2026
- Latest listed release
- The site lists ScalaCheck 1.19.0, released on September 6, 2025.checked 7 Oct 2026
- License
- The project build identifies its license as BSD-3-Clause.checked 8 Oct 2026
- Maintainer
- The project build lists Rickard Nilsson as a developer.checked 8 Oct 2026
- Notable usage
- The site names the Scala compiler and Akka as projects that use ScalaCheck.checked 7 Oct 2026
- Purpose
- ScalaCheck is a Scala library for automated property-based testing of Scala or Java programs.checked 8 Oct 2026
- Security
- The GitHub repository page lists a security policy.checked 8 Oct 2026
- Security and license
- The project repository lists a security policy and identifies its license as BSD-3-Clause.checked 7 Oct 2026
- Standalone use
- ScalaCheck can run standalone with its built-in test runner.checked 8 Oct 2026
- Support
- The documentation page links to GitHub bug reports, a mailing list and Stack Overflow.checked 8 Oct 2026
- Support channels
- The documentation page links to bug reports, a mailing list, and ScalaCheck on Stack Overflow.checked 7 Oct 2026
- Supported targets
- The project build defines JVM, Scala.js and Scala Native platforms.checked 8 Oct 2026
- Test frameworks
- ScalaCheck is integrated with ScalaTest, specs2, and LambdaTest.checked 7 Oct 2026
- Test generation
- Its properties are checked over randomized input parameters, and it reports arguments that cause a property to fail.checked 7 Oct 2026
- Testing
- It tests properties with randomized inputs and reports arguments that falsify a property.checked 8 Oct 2026
The full review of ScalaCheck
ScalaCheck is a focused testing library for teams writing Scala or Java programs. It makes most sense when you can describe expected behavior as properties and want randomized cases to probe them; it is not a replacement for a full test framework.
Overview
Rather than checking only a set of handpicked examples, ScalaCheck evaluates properties against randomized inputs and reports the arguments that cause a failure. That can reveal edge cases that a short list of examples misses, and the failing arguments give developers a concrete starting point for investigation. The result still depends on writing meaningful properties: ScalaCheck explores inputs but does not define correct behavior for you.
The library has a narrow dependency footprint, requiring only the Scala runtime. That is useful for Scala projects seeking a dedicated property-testing tool, but it makes ScalaCheck a poor fit for teams that need a runtime-independent option.
Key features
Randomized property checks
Parameterized cases let developers express a rule once and check it across varied inputs. Parallel execution is supported, which can suit projects that want property checks to run concurrently. These capabilities target broad behavioral checks rather than serving as a general-purpose test runner.
Build and framework integration
ScalaCheck works with sbt and can be added as a test dependency. It also integrates with ScalaTest, specs2, and LambdaTest, so teams using those frameworks can incorporate property checks into a familiar testing setup. For projects outside those paths, ScalaCheck can run on its own with its built-in runner.
Targets and distribution
The project build defines JVM, Scala.js, and Scala Native targets, and its README says it is supported by the Gradle plugin for Scala.js and Scala Native. Build artifacts are published in the Central Repository. The site lists version 1.19.0, released September 6, 2025, and recommends the sbt dependency org.scalacheck %% scalacheck % 1.19.0 % test.
A continuously developed user guide and API documentation cover use of the library. The documentation also links to GitHub bug reports, a mailing list, and Stack Overflow. The repository lists a security policy; the project uses the BSD-3-Clause license. The site names the Scala compiler and Akka among projects that use ScalaCheck.
Pricing
ScalaCheck is free: its open-source library is listed as free under the BSD-3-Clause license. There is no paid tier or trial to weigh against a free-plan cap; it is a library rather than a hosted service with seat or usage quotas.
Platforms
ScalaCheck is available for Linux, macOS, and Windows. Its build targets JVM, Scala.js, and Scala Native, giving Scala projects options beyond JVM use while keeping the Scala runtime requirement central to adoption.
Who it's for
ScalaCheck is best suited to Scala and Java developers who want to test rules across generated inputs, especially teams already using sbt or ScalaTest, specs2, or LambdaTest. It is a sensible specialist addition when example-based checks alone are not enough. Teams seeking a broader testing framework, or a tool that does not depend on Scala, should look elsewhere.
Pros and cons
- Actionable failing cases: reports the arguments that falsify a property, giving developers a specific case to examine.
- Fits established Scala workflows: supports sbt, three named test integrations, and standalone running.
- Multiple Scala targets: the build defines JVM, Scala.js, and Scala Native platforms.
- Free and permissively licensed: the free BSD-3-Clause library avoids a purchase decision.
- Requires Scala runtime: the dependency keeps the tool rooted in Scala projects rather than making it a language-neutral choice.
- Focused scope: it checks properties, so teams still need another tool where they need general-purpose testing coverage.
Alternatives
For a broader comparison, browse Property-Based Testing Tools or Unit Testing Frameworks. These alternatives offer free options for different language ecosystems:
- Racket QuickCheck is a free Racket package for readers working with Racket v6.0 or newer.
- FsCheck is a free BSD-licensed library distributed through NuGet packages.
- Gopter is a free, MIT-licensed Go property-testing library.
- fast-check is a free, MIT-licensed JavaScript/TypeScript option.
- JSVerify is a free open-source JavaScript property-based testing library.
- Scala Hedgehog is another free open-source Scala testing library.
- PropCheck is a free MIT-licensed Ruby gem requiring Ruby 2.5.1 or newer.
- QCheck is a free OCaml property-based testing library under the BSD-2-Clause license.
Verdict
Choose ScalaCheck if you work in Scala or Java and want randomized property checks that report the inputs behind failures, particularly if your project already uses sbt or one of its integrated test frameworks. Its free BSD-3-Clause distribution and multiple Scala targets make it a practical specialist tool; look elsewhere if you need a general testing framework or cannot take on the Scala runtime.
Getting started
- Open https://scalacheck.org/.
- For an sbt project, add org.scalacheck %% scalacheck % 1.19.0 % test as a test dependency.
- Alternatively, use the standalone built-in test runner.
- Use the user guide or API documentation linked from the project site.
Limits worth knowing
ScalaCheck has no external dependencies other than the Scala runtime. The listed plan is free, with no plan-specific quota or feature restriction stated in the facts.
Questions
How much does ScalaCheck cost?
The listed plan is free at no cost. The project identifies its license as BSD-3-Clause.
Which languages does ScalaCheck support?
It is a Scala library for testing Scala and Java programs.
How does its property testing work?
It checks defined properties against randomized input parameters and reports arguments that cause a property to fail.
Which testing tools does it integrate with?
The site says it works with sbt and integrates with ScalaTest, specs2, and LambdaTest. It can also run standalone with its built-in test runner.
Which platforms does it support?
The listed platforms are Linux, macOS, and Windows. The project build defines JVM, Scala.js, and Scala Native targets.
How do I add it to an sbt project?
The site recommends adding org.scalacheck %% scalacheck % 1.19.0 % test as a test dependency. Its build artifacts are published in the Central Repository.
Alternatives to ScalaCheck
- 1

fast-check
Free planOpen sourceWebAPILinuxSelf-hosted7.1Free plan - 2
Gopter
Free planLinuxSelf-hosted6.4Free plan - 3
JSVerify
Free planWebSelf-hosted6.4Free plan - 4
Racket QuickCheck
Free planLinuxmacOSWindows6.4Free plan - 5
FsCheck
Free planLinuxmacOSWindows6.3Free plan - 6
QCheck
Free planLinux6.0Free plan
