Test-driven development (TDD) is a programming technique that reverses the usual sequence of coding and testing. By writing tests just in advance of the code needed to satisfy them, programmers:
- Work with confidence
- Work on a series of achievable steps instead of tackling a big problem all at once
- Ensure that software design meets the need of the actual code
- Leave behind a suite of tests to help preserve the integrity of the code
Note: Although the ideas aren’t language specific the author does use Java in the examples.
- Download and watch DRM-free episodes when and where it's convenient for you
- You get Theora Ogg, iPod/iPhone 3, iPad/iPhone 4, and QuickTime formats.
- All the source code is available (visit the links tab).
All the episodes in this series have been released.
About this Screencast
If you have tried TDD and you are looking to improve your skills, this series was recorded for you. TDD re-discoverer Kent Beck demonstrates advanced TDD topics on a realistic example:
- Dividing a big test into slices to increase feedback
- Dividing a big feature into slices to increase feedback
- Re-ordering design decisions to increase feedback
- Ensuring tests are isolated from each other
- Testing corner cases and malformed input
- Predicting test outcomes to maximize learning
A consistent theme throughout the series is the importance of rhythm, making decisions and gathering feedback in an order that reduces defects and other interruptions to the flow of development. Come along for two hours of TDD with Kent Beck.
- See raw raw, unedited samples.
Kent has put the first ten minutes of episodes 1 and 2 up on Vimeo. These are the screencasts before editing and post-production. Enjoy!
Buy All Four and Save
Buy all four screencasts at the same time and we’ll automatically deduct $5 from the overall price during checkout.
Contents and Extracts
Episode 1: Starter Test (28 minutes)
- In this episode we take the first test for the first feature our sample application and slice it up to provide more-frequent feedback.
Episode 2: Isolated Tests (23 minutes)
- In this episode we ensure that tests don’t affect each other. Once the tests are isolated we implement several new operations.
Episode 3: Big Feature (25 minutes)
- In this episode we take a large feature and slice it up to provide more-frequent feedback. At the end we clean the code to remove duplication and make the code easier to read.
Episode 4: Finishing (20 minutes)
- In this episode we finish the functionality of the sample application and prepare it for use by others. Design decisions that were deferred earlier in development are now clearer. The series closes with a summary of lessons from all of the episodes.