
Dougal Stanton wrote:
*QuickCheck is a really powerful way to work.*
The real pain in the butt with unit tests is having to write the damn things. Especially for corner cases - if they were easy to reason about they wouldn't really be corner cases, would they? QC allows you to sidestep that neatly by generating a set of unit tests from a specification. And often generating cases you *wouldn't* have thought of yourself. Genius!
For the regex-tdfa project, the unit tests from the AT&T site defined important semantic corners that some implementations got "wrong". Once I had code that worked with *all* those examples, the QuickCheck generated strings and regular expressions made for some quite weird random tests that still found holes in my code. And holes in the TRE c-library code. And holes in the standard c-library regex.h of OS X 10.4.x. So I am quite impressed by Quickcheck. -- Chris