In this InfoQ tutorial Dan Bunea shows developers how TDD can be applied in .NET using Selenium RC and Castle. Selenium is an automated test harness for building enterprise class web user interafaces written in any programming language. Castle is an open source project dedicated to providing libraries to ease the enterprise application development process for .NET based applications.
Test first principals provide architects a way to quickly jump into active development early in the application development lifecycle. Design of the application takes place as development occurs and obviates the need to design the application before the actual coding process begins. This provides the architect with flexibility to respond to new and changing requirements as the application lifecycle evolves.
The benefits of TDD are a drastic reduction in defects as well as increased adaptability in the code base since the application advances quickly through an iterative process. For each iteration developers must first create the tests their code must pass before they write any actual code. The iteration finishes with a period of refactoring dedicated to simplicity and flexibility. Adherents claim TDD is a code tempering process allowing them more time to program and concentrate on writing quality applications.
What have been your experiences with TDD?