Alan just posted this: http://angryweasel.com/blog/?p=325 This is the nicest test example I've seen in a long time, and I think it bears a little more analysis. If I were in charge of the development of this app, I would make automated testing happen on 3 levels. First, there would have to be some sort of test for generating a single random number. Which seems easy enough, but at this level, you really have to understand exactly what a call to rand() (or whatever) on your particular OS is going to do. I once wrote a script in Perl (praise Allah just a toy, not production code) that returned perfectly random numbers on OSX but returned exactly the same values every time on Windows. You'd better test that your call to rand() really returns random numbers, regardless of the OS it is running on. At a higher level, you'd want to do exactly what Alan talks about in looping 100,000 times (although 100K seems like overkill to me). This is what I think of as an "i
QA is not evil