Browse the Knowledge Hub211 resources
Growing Object-Oriented Software, Guided by Tests: is it worth reading?
TDD applied to a real system from first commit to delivery, and the source of the outside-in approach.
We earn nothing from any link on this page. No affiliate links anywhere in this library.
- published
- 2009
- key ideas
- 3
- reading path
- 1

Growing Object-Oriented Software, Guided by Tests
by Steve Freeman, Nat Pryce
- Publisher
- Addison-Wesley
- Year
- 2009
- ISBN
- 9780321503626
Useful when you are: Senior / lead
Verdict
Should you read it?
Read it if
You already practise TDD on small problems and want to see it sustained across a whole system, or you want to understand the London school from its primary source.
Skip it if
You are new to TDD. Start with Beck. This book assumes the basics and moves quickly.
The argument
What it argues
The book builds a complete application over several hundred pages using TDD throughout, starting from a walking skeleton that proves the deployment pipeline before any feature exists.
It introduces the outside-in approach: begin with an acceptance test describing externally visible behaviour, then drive inward with unit tests until it passes. It is the clearest demonstration of how the outer and inner TDD loops relate.
It is also the canonical statement of the London school, using mocks to discover the interfaces between collaborators rather than merely to isolate them.
Key ideas
Ideas worth taking from it
- 01
The walking skeleton
Build the thinnest possible end-to-end slice, including deployment, before any feature. It surfaces integration and infrastructure risk at the point it is cheapest to address.
- 02
Outside-in development
Start from externally visible behaviour and work inward. Implementation is driven by a demonstrated need rather than by anticipated requirements.
- 03
Mocks to discover interfaces
Using mocks as a design tool to work out what a collaborator should look like, which is a genuinely different purpose from using them for isolation.
Criticism
What has dated, and what it gets wrong
The extended example is long and demanding, and many readers do not finish it. The heavy mocking has also aged into genuine controversy: the resulting tests are tightly coupled to collaboration structure, which is exactly what Khorikov later argues against. Read both and form a view.
Reading paths
On our reading paths
Becoming an automation engineer
Book 3 of 5 · Automation and SDET
Shows tests driving the design of a realistic system from the outside in, end-to-end tests included. Harder going than the first two, and worth it.
Keep reading
What to read next
Reads well with
Reading about quality is cheaper than learning it in production.
QAble runs QA for products in BFSI, gaming, healthcare and SaaS, with engineers who have read these and argued about them. Start with a free QA audit.



