In this blog post, the author points out that "modeling" or "prototyping" are one of the more effective ways to test software. http://kev.inburke.com/kevin/the-best-ways-to-find-bugs-in-your-code/ Can someone describe these techniques and how they are used in practice? [update] I found another reference to the data: http://railspikes.com/2008/7/11/testing-is-overrated It's from page 470 of Code Complete by Steve McConnell.