SaaSHub helps you find the best software and product alternatives Learn more →
Smallcheck Alternatives
Similar projects and alternatives to smallcheck
-
-
InfluxDB
Purpose built for real-time analytics at any scale. InfluxDB Platform is powered by columnar analytics, optimized for cost-efficient storage, and built with open data standards.
-
-
-
-
fixie
Discontinued 🚴 Opininated testing framework for mtl style (spies, stubs, and mocks) (by jxv)
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
-
-
smallcheck discussion
smallcheck reviews and mentions
-
Generating Well-Typed Terms that are not "Useless" [pdf]
Using laziness to avoid generating parts of an expression until it's needed is a really nice idea. The LazySmallCheck package[1] took this approach, but was limited in the types of data it could produce (e.g. it couldn't generate functions). This was extended by LazySmallCheck2012[2], but that seems to be unmaintained and doesn't work with more recent GHC versions.
(Note that these are named in reference to SmallCheck[3], which takes the approach of enumerating concrete values in order of "size"; as an alternative to the more widely-used QuickCheck[4], which generates concrete values at random, and tries to "shrink" those which trigger a failure)
[1] https://hackage.haskell.org/package/lazysmallcheck
[2] https://github.com/UoYCS-plasma/LazySmallCheck2012
[3] https://hackage.haskell.org/package/smallcheck
[4] https://hackage.haskell.org/package/QuickCheck
-
[ANN] LeanCheck v1.0.0 – Enumerative Property Testing
Could you compare with https://hackage.haskell.org/package/smallcheck in particular the smallcheck ability "to verify properties for all test cases up to some depth"?
-
Property-based testing #1: What is it anyway?
Another strategy is exhaustive generation. There, all possible values for some type are generated in some well-defined order - typically from "small" to "large" values, and with some upper bound, as once you go past booleans the number of values for most types are (countably) infinite. For example, trying all the integers between -20 and 20 in "zig zag" order 0,1,-1,2,-2,.... SmallCheck for Haskell and SciFe for Scala do this, but this approach is not so well-known. It's a shame as random and exhaustive generation are complementary - if you think of generating values as exploring some large space to find failing tests, random generation is a serendipitous type of exploration, while exhaustive generation is diligently mapping out all the paths in some area.
-
A note from our sponsor - SaaSHub
www.saashub.com | 20 Sep 2024
Stats
Bodigrim/smallcheck is an open source project licensed under BSD 3-clause "New" or "Revised" License which is an OSI approved license.
The primary programming language of smallcheck is Haskell.