InfoWorld has an interview with Ward Cunningham, a pioneer of Extreme Programming and test-driven development, and the inventor of Wiki. He advocates a “test-first” methodology in doing software development.
Developers use tests to communicate with other developers. The social contract says, “Here’s my code, do anything you want with it so long as you have and run my tests. You’re unlikely to hurt me if you continue to pass those tests. If you do fail a test, come talk to me.”
when you’re writing code, you’re focused on a single goal. When you’re writing a test, you’re deciding, “Of all the goals I know I have, what goal will I focus on next?” It’s a sequencing thing. Do I take a little step or a big one? And how am I going to check that step?
We think writing the software is more important than testing it. It should be the other way around. We need to put in place appropriate test harnesses for all that we develop.