QuickCheck: a lightweight tool for random testing of Haskell programs
Software unit test coverage and adequacy