|
|
|
|
|
by Dn_Ab
5105 days ago
|
|
QuickCheck is great and can be found in many languages - dynamic and static alike - nowadays. Another tool that is currently unique to Haskell and is easier to write tests for is Lazy/SmallCheck. SmallCheck shines in the left long tail of failure. Its core idea is based on a powerful principle: "If
a program does not fail in any simple case, it hardly ever fails in
any case."[] So SmallCheck works exhaustively to find a minimal counterexample within some depth bound. This makes sense - when trying to characterize a structure for failure (or anything) you can rarely do better than the simplest explanation. However, when the problem lies in larger examples SmallCheck fails where QuickCheck catches a result so something like Type Check -> SmallCheck -> QuickCheck -> probably ok. [] http://www.cs.york.ac.uk/fp/smallcheck/ documentation |
|
http://permalink.gmane.org/gmane.comp.lang.haskell.general/1...