This is less a book about Test Driven Development than it is a book about how techniques developed to support agile development in object oriented languages like Java and Smalltalk can work effectively in a system language like C. I think it does a better job of introducing TDD than Beck’s own book does, and ties it in to refactoring, modular design techniques that help make code easier to work with and process issues such as code review and pair programming.
In some ways this book is a summary of 4 others: Test Driven Development by Example and Extreme Programming Explained by Kent Beck, Refactoring by Martin Fowler and Working Effectively with Legacy Code by Michael Feathers. Not much of its content is particularly new, but what it does is take the key ideas from these books and show how they can work together in a C based environment. It also covers many of the enhancements and best practices that have developed since these core texts were written and show that they don’t just work for writing large scale enterprise java.
If you’re looking for a broad overview of agile development techniques, or wonder why systems development still feels like its stuck in the 70s, this is the book you’ve been looking for.