I assume your sense of "smoke test" is the same as mine - I'm trying to blow up the program the way you can.
I learned about the value of this 20+ years ago when I just finished (or, as I thought) most of the code for the WYSIWYG editor. I proudly showed it to my officer (Hey, Dbell!), Who said, “Carefully!” He immediately created a paragraph with about 1000 characters, copied it thousands of times and created a document about 32 MB in size, deleted everything, unzipped it, and the program completely exploded.
I was completely horrified and said: "You cannot do this!" He grinned and said, "Why not?"
Finding and fixing a problem (which turned out to be easily replicable as soon as you knew what the threshold events looked like) found a subtle and serious error in memory management. A simple push-button test would never have detected it.
Today's equivalent of this is Fuzz testing ( http://en.wikipedia.org/wiki/Fuzz_testing ). It does not replace step-by-step testing of requirements, but often reveals problems that other methods will not have.
Peter Rowell
source share