This post originated from an RSS feed registered with Agile Buzz
by Greg Vaughn.
Original Post: Breaking Down Test Driven Development
Feed Title: Potential Differences
Feed URL: http://gigavolt.net/blog/development/index.rss
Feed Description: Greg Vaughn on Agile methodologies, Java, OS X, whatever piques my interest!
Brian Marick analyzes the different uses of unit tests. It’s something I’ve been thinking about too. On one project when I was refactoring TDD written code, I found myself deleting quite a few unit tests. Keeping them all up to date was a source of inertia that was slowing down progress after we had higher, component-level, tests in place.
Brian’s using a number of terms that may not be familiar, but it’s a valuable exercise. The term ‘test’ has so many overloaded usages, especially when testers and developers try to communicate. He’s calling unit tests ‘checked examples’ and ‘change detectors’ to elucidate the two major purposes of TDD. Unit tests that help drive design and development are ‘checked examples’. The built up test suite that serve a regression function he’s calling ‘change detectors’.
This distinction has helped me to understand my instinct in my situation. The unit tests had already served their function as ‘checked examples’ that drove the design, and their function as ‘change detectors’ were redundant. Now I can feel less guilty about hitting that delete key.