Growing Object Oriented Software Guided By Tests
Steve Freeman and Nat Pryce
Test-Driven Development (TDD) is a deceptively simple idea: write the tests for your code before writing the code itself. We say "deceptively simple" because this reversal fundamentally changes the role of testing in the development process. The tests are now about helping the team to understand the features that the users need and delivering those features reliably and predictably. When followed to its conclusions, TDD changes the way we develop software and, in our experience, hugely improves the quality of the systems we build.
This advanced tutorial is for developers who have started with Test-Driven Development and are looking for deeper understanding. We will show how TDD fits into the whole development lifecycle, with an extended example started from scratch.
We will cover topics such as:
- What's the point of Test-Driven Development
- Kick-starting the TDD lifecycle
- Growing features test-first
- Maintaining the TDD lifecycle
- Object-oriented design with Mock Objects
- Working with third-party code
- Learning to listen to the tests
- Testing asynchronous code
The course will use Java 5, JUnit 4, and JMock. Attendees should bring a laptop with a Java IDE.
The material is based on our book, which should be out by then. We've run it at ACCU and will have run it at Agile2009.
|