January 26, 2004 - Violent Agreement

In his blog Patrick Logan makes a very good point that "we have to make a distinction about what kinds of tests we're writing and what kinds of tests we want to automate."

The complete cycle of TDD should be:

  1. Write a test.
  2. Write the code to make it work.
  3. Refactor the code to make it right.
  4. Write any tests you forgot the first time.

But as the XP terminology has shifted from "unit testing" to "test-first programming" to "test-driven design", that 4th step has been de-emphasised. Which is probably why Jarno Virtanen felt there was a hole in the TDD approach, "the complete lack of so-called white-box testing", where you'd look for edge and corner cases.

Patrick is correct in describing the tests from the 1st step are "a programmer's tool for thinking", and thus something we don't want to "over-automate". But what about those tests from step 4?

I think this is the stage where we're all in violent agreement:

Posted by Jeffrey Fredrick at January 26, 2004 06:28 PM

Trackback Pings

TrackBack URL for this entry:


Post a comment

Remember Me?