Growing Object-Oriented Software, Guided by Tests
This hands-on advanced workshop teaches incremental Test-Driven Development, showing how to grow code one feature at a time. It will show: how to use tests at multiple levels to focus on requirements, how to use unit tests to drive the discovery of roles and responsibilities in your design; and how to write resilient tests that express your intent and don’t break for irrelevant changes.
The workshop is for programmers who want to improve their TDD practice. It has been presented at several conferences, one review from XpDay London was “Incredibly useful; the best technical I’ve heard”.
The structure is short presentations (< 20 mins) mixed with coding exercises. Topics include: TDD revisited (understanding the context of TDD), JUnit4 with Matchers, Test-Driven Development with Objects. Participants need laptops with Java 5, and Idea or Eclipse.
I’ve run versions of this session at multiple conferences, including Agile 2008 (where the user feedback I saw was excellent but got lost by the student volunteers).
- Test-Driven Development in context: using high-level tests to drive features, low-level tests to drive design.
- Object-Oriented Design: building up systems from communicating objects that provide services for each other.
- Test-Driven Development: using problems in testing to help us identify weaknesses in our design, learning to listen to the tests, writing resilient tests.
- The session will include programming exercises in Java so that the participants can explore the techniques for themselves.