Test Driven Software Development

How would your development process change if you knew you had a complete regression test suite?

The experience to date with many projects is that the ideas presented in Refactoring: Improving the design of existing code by Martin Fowler can actually be implemented. The guesswork is taken out of coding, no more wondering "What have I broken now?" Make a small change, run the tests and immediately know whether anything is broken - the confidence that this instills into a team is invaluable.

Some methodologies talk about being Use Case Driven, this talk takes those ideas one stage further, deriving test cases from the Use Cases and using those tests to drive the development process. Using the Extreme Programming practice called Write the Unit Tests First and JUnit, the Java implementation of Kent Beck's public domain testing framework teams can drastically improve the quality of the systems they produce.

This talk includes a demo of how to use JUnit, the handout notes for this talk (419k PDF).