SmallCheck for Scala is a Scala library for property-based testing. It is a port of the original Haskell library, SmallCheck.
Following the lead of QuickCheck (Claessen and Hughes 2000), … SmallCheck also [uses] type-based generators to obtain test-sets of finite values for which properties are checked, and report any counter-examples found. But instead of using a sample of randomly generated values they test properties for all values up to some limiting depth, progressively increasing this limit.
(Runciman et al. 2008).
The original SmallCheck is available on Hackage and is maintained by Roman Cheplyaka at http://github.com/feuerbach/smallcheck.
The original property-based testing library for Haskell, QuickCheck (Claessen and Hughes 2000), has also spawned a port written in Scala: Rickard Nilsson’s ScalaCheck. SmallCheck for Scala has followed the design of ScalaCheck.
Koen Claessen and John Hughes. QuickCheck: a lightweight tool for random testing of Haskell programs. In Proceedings of the fifth ACM SIGPLAN international conference on Functional programming, ICFP ’00, pages 268–279. ACM, 2000. doi: 10.1145/351240.351266
Colin Runciman, Matthew Naylor, and Fredrik Lindblad. SmallCheck and Lazy SmallCheck: automatic exhaustive testing for small values. In Proceedings of the first ACM SIGPLAN symposium on Haskell, Haskell ’08, pages 37–48. ACM, 2008. doi: 10.1145/1411286.1411292