Goodreads helps you keep track of books you want to read.
Start by marking “Growing Object-Oriented Software, Guided by Tests” as Want to Read:
Growing Object-Oriented Software, Guided by Tests
Enlarge cover
Rate this book
Clear rating
Open Preview

Growing Object-Oriented Software, Guided by Tests

(A Kent Beck Signature Book)

4.19  ·  Rating details ·  2,276 ratings  ·  121 reviews
Foreword by Kent Beck The authors of this book have led a revolution in the craft of programming by controlling the environment in which software grows." --Ward Cunningham "At last, a book suffused with code that exposes the deep symbiosis between TDD and OOD. This one's a keeper." --Robert C. Martin "If you want to be an expert in the state of the art in TDD, you need ...more
Paperback, 345 pages
Published October 1st 2009 by Addison-Wesley Professional
More Details... Edit Details

Friend Reviews

To see what your friends thought of this book, please sign up.

Community Reviews

Showing 1-30
Average rating 4.19  · 
Rating details
 ·  2,276 ratings  ·  121 reviews

More filters
Sort order
Start your review of Growing Object-Oriented Software, Guided by Tests
Yevgeniy Brikman
May 15, 2014 rated it it was amazing
A great read for anyone interested in automated testing and TDD.


* Makes a strong case for testing: better design, faster feedback, user experience first, regression, and most importantly, the confidence to make changes quickly.
* Includes a nice walk through of an iterative, test driven development process of a small app.
* Lots of great examples of how "listening" to tests leads to better design (ie, what the "driven" really means in TDD).
* I learned a lot from the discussion of how to m
Alena Varkockova
Dec 28, 2013 rated it really liked it
Do not read this if you don't wanna know that you are writing your tests all wrong!

Introduction is rather slow and uninteresting for someone already testing on day to day basis. Throughout half of the book there is a step by step introduction into the TDD - I did not care that much for this part. Especially in the end it was somehow hard to follow when the code base for the example grows - especially for a non-java programmer.

But the last 100 pages with the examples of how to write more maintai
Amy Gilchrist Thorne
Jan 10, 2010 rated it really liked it
I think there's a lot of food for thought in this book. Personally, I can remember reading Martin Fowler's Mocks Aren't Stubs some time ago and concluding that I'd be a "classicist."

Some time later, I started working with mocks as a way to isolate unit tests from "slow" dependencies, such as databases, trying to make them run more quickly. I didn't have much success, though, because I was still writing my tests in a classicist style.

This book helped open my eyes to how the "mockist" style really
Amir Sarabadani
Jun 04, 2019 rated it really liked it
One of best books about software design and TDD and tests in general.
David Lindelof
Sep 18, 2014 rated it it was amazing
Shelves: safari
I didn't know what to expect when I picked up this book. In spite of its excellent reviews I feared it was going to be another redundant addition to the mountain of books harping on the virtues of Test-Driven Development (TDD), without adding anything significant to the standard sermon.

Nothing could be further from the truth.

I read a fair share of technical books, but this book is the only one in years that I immediately began to re-read again after finishing. It is easily one of the most import
Wilson Jimenez
Jan 03, 2018 rated it really liked it
Recommended to Wilson by: Josue Abreu
Even if the book describes some OO concepts, in order to get the most out of it I suggest reading a couple of OO related books beforehand and get a good grasp of things like encapsulation, polymorphism and specially objects collaboration. As the authors state it: one of their main focus when constructing OO software is to think about how objects will send messages to each other rather than their roles, in other words, drive the design from how the moving pieces would collaborate with each other. ...more
May 12, 2011 rated it really liked it
Shelves: own-paper-copy
It took me too long to finish the book. First part was quit interesting and promising. I enjoyed reading stories from the author's practice as consultants trying to adopt TDD and unit-testing doctrine in real life. It was interesting to read their props and cons particularly because I have seen myself in the same role at my daily job. I have seen or wished to see. So I tried to learn new tricks to convince colleagues and managers to accept unit-testing as necessary part of the development proces ...more
Sep 08, 2010 rated it it was amazing
Shelves: tech, nonfiction, own
A definite must-read for professional developers, this book taught me a lot about incrementally building software that's constantly deployable and maintainable - not only the technical know-how required to do it, but also the mentality needed. Reading the book made me realize that my unit testing skills are woefully lacking in comparison, so I'm grateful that it provides extension tips, tricks, and examples that I can study for improvement. But this book covers much more than unit testing, which ...more
Jul 13, 2016 rated it it was amazing
Before reading this book, it would be wise to set your worldly affairs in order and prepare your psyche for a transformation which may move you in entirely new and unanticipated directions. Not only does GOOS offer a collection of solid practices for any software engineer to follow, it also describes a mechanism for design through disciplined planning and execution. Many have scribbled on the topic of software development, but the Venn diagram between recorded wisdom and the art of software desi ...more
Xavier Shay
Jan 27, 2011 rated it really liked it
Shelves: owned
It started a bit slow so I was concerned, but it really kicked off. Wish I'd read this 4 years ago. The guided walkthrough is good but as with clean code would have been better as a screencast. The final chapters on testing are spectacular.

Key takeaways:
- Focus on the communication between objects.
- Ports and adapters architecture to separate the domain.
- Proper division between unit, integration and acceptance tests.
- Use test builders for complex test setup.
- Transactional tests are a hack bec
Vitor Cavalcanti de Albuquerque
A must read for anyone willing to learn and understand how to write concise and maintainable tests, and how to grow a code base in an object oriented fashion. The techniques and principles shown in this book are pure gold: walking skeleton, depth of testing, async code testing, data test builders, mocking, single responsibility, only mock classes you own, hexagonal architecture, etc. If you're still in the fence about the advantages of TDD, this is for you. It displays how quick it is to add new ...more
Isidro López
OK... so now I understand why this book became so popular :-)

It's that kind of book that I feel I should reread immediately after finishing it.
The part with the worked example is great, but personally I found specially interesting the chapters with insights about OOP design and sustainable TDD.

The ideal way to get all the value of this book is to write yourself the worked code as they are doing it. If you don't do it, at least take a look to the code here http://www.growing-object-oriented-so..
Baal Of
Oct 28, 2019 marked it as dnf
I hope to come back to this one at a later time.
Jan 31, 2020 rated it it was amazing
Shelves: software, favorites
This book is truly amazing, I have learned a lot of things about: what types to mock, how to write my tests properly, test driven development, UI testing and other things.

The only downside is that this book uses Java and I'm not experienced with it, reading Chapter 3 was hard and not very rewarding.
Jun 18, 2020 rated it it was amazing
Great book. I wish more people would follow the advice from this book.
May 12, 2012 rated it it was amazing
Shelves: software

I did not realize how much I still have to learn about writing good object-oriented (OO) code, and about hewing to a tight test driven development (TDD) methodology, before I read Growing Object-Oriented Software, Guided By Tests. My education in OO and unit testing has been largely theoretical, with no time spent directly learning from experienced OO programmers; my best mentor was a COBOL coder. Books like Design Patterns: Elements of Reusable Object-Oriented Software, Patterns of Enterprise A

Bjoern Rochel
Nov 16, 2012 rated it it was amazing
Shelves: 2012
Pretty cool book. I wish I had it 6 years ago. Learned quite a few of the lessons they talk about the hard way in those years. I really, really like the emphasis on growing and nurturing a software design. I've seen too many codebases that slowly but gradually went off the rail because of too much pragmatism or simply the lack of a big picture on what the software was supposed to do and how it actually did it.

Software teams often don't fail delivering the first version of a software. They fail
Jeanne Boyarsky
Jun 20, 2011 rated it really liked it
Shelves: technology
The person who handed me this book said it was "better than Lasse's book" (Test Driven.) I disagree. One can't compare the two books - Test Driven is meant for beginners and this book is meant for an advanced audience. If you have never written unit tests before, this book is very hard to follow. So put it down, get an intro book and come back.

I really liked the emphasis on making the software responsive to change along with separating acceptance and unit tests. The book uses Junit 4.6 and ther
Jan 01, 2015 rated it really liked it
A great book on a little bit different approach of testing. Going end-to-end and grow your software one test at a time will result in a much more stable software that most other approaches. The authors know a lot about writing good and useful test-suites and can explain the main things you should look out for.

The only downside in this book is the big focus on a library like jMock. Outside Java you can’t use it and when you program in any other language that part is of no use to you.
Aug 21, 2011 rated it it was amazing
Best TDD book and best OO book I ever read. Amazing.
Mar 30, 2013 rated it it was amazing
This is the best guide to TDD and emergent design I've read. I have two copies, one of which is permanently loaned out to friends and colleagues. ...more
Dec 06, 2013 rated it liked it
While there was a lot to learn and take away you have to overlook the over architecting that took place in the code.
Michael Gaudet
Jan 12, 2019 rated it really liked it
I found this to be a tough read, even for a dry topic like this. Its mostly in Java, which is applicable enough to most languages that it’s still accessible even if you program in a different object oriented language.

There are a number of books out there on TDD, but this one is pretty unique out of the ones I’ve read so far in that it includes integration testing of the example, not just unit testing. There’s almost a whole chapter on testing persistence layers, which most books on testing pract
Martin Chalupa
Sep 04, 2017 rated it it was amazing  ·  review of another edition
Shelves: technical
This is an amazing book. I've read some classic books about programming but they seems to be more targeted at beginner programmers. They don't offer so much for developers with some experience (even it is useful to read them to remind yourself about industry basics). On the other hand this book is better for advanced programmers. You will know most of described concepts at least from theory but this book shows useful practical usage. The main part of the book is an example of application develop ...more
Rory Armstrong
Oct 04, 2017 rated it it was amazing
An absolutely wonderful book on TDD. Really explains the process of writing tests before features both technically and pratically.
In the middle of the book the authors develop a Auction Sniper application using Swing using the TDD method and bring the reader through the TDD process every step of the way which is a brilliant idea for a technical book as it explains the concept very well.
Don't let the fact that it's a swing app deter you however as this could easily be a web framework or some othe
Yannick Grenzinger
Jul 20, 2020 rated it liked it
I am really disappointed by this book (especially after reading TDD by Example from Kent Beck).
There are some typical good advices around Object Oriented Programming (some of them directly coming from DDD) and the book goes very deep on the example it uses to explain their "Outside In" method.

But I have, personnaly, two big issues:
- on the book itself, the focus on the example, the code and the "how" make it hard to understand the why and not to be lost in the details
- on the approach proposed,
Marcelo Schreiber
Mar 09, 2021 rated it really liked it
Software development is about solving problems. In order to solve these problems, you need to have a model of the problem and the technical knowledge of a programming language and its available tools.

This book provides you with a clear example of how to create this mental model of the problem while slowly developing it with tests while explaining the deciding making process which is much more important than the end result.

I believe this is a must-read for anyone wanting to broaden their knowledg
Shahriyar Nasir
Jul 30, 2017 rated it it was amazing  ·  review of another edition
GOOS is one of my all time favourite software development books. It guides the reader towards building a software system through test-driven development. The authors discuss many important techniques such as Acceptance Testing, Encapsulation/Information Hiding, "Tell, Don't Ask", Listening to the Tests, and The Walking Skeleton just to name a few. These techniques are strung together with a real example of how they build an automated auction bidding app. The techniques help the authors build res ...more
Peter Aboalim
Oct 08, 2018 rated it it was amazing
This is one of best books I have read. It is very good book if you wanna how to use TDD in a right way. The way the authors proposed their ideas and experience were amazing. You will learn how to do incremental development and how to make your tests drive your application. The book starts with 10 chapters include all concepts and approaches you wanna learn. Then it has complete example to create an application from scratch which is driven by tests. From chapter to another, you add a new feature ...more
Leo Maslovs
Dec 27, 2018 rated it it was amazing
Definitely liked the book and added it to "Must read" category. Brief, practical, inspiring and down to earth introduction into TDD practices.

I concur I am not sold on Mocks as a golden hammer to drive the design and building blocks to Test Suites. In my practice - Mocks are something dreadful and better to be avoided by means of simpler tools (e.g. FakeRepository (in-memory database) over _mocked_ Repository).

I particularly liked the _practical bit_ it, e.g. 2/3 of the book materials are acco
« previous 1 3 4 next »
There are no discussion topics on this book yet. Be the first to start one »

Readers also enjoyed

  • Refactoring: Improving the Design of Existing Code
  • Clean Code: A Handbook of Agile Software Craftsmanship
  • Design Patterns: Elements of Reusable Object-Oriented Software
  • Working Effectively with Legacy Code
  • The Clean Coder: A Code of Conduct for Professional Programmers
  • Domain-Driven Design: Tackling Complexity in the Heart of Software
  • Clean Architecture
  • The Pragmatic Programmer: From Journeyman to Master
  • Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers)
  • Head First Design Patterns
  • Building Microservices: Designing Fine-Grained Systems
  • Extreme Programming Explained: Embrace Change (The XP Series)
  • Implementing Domain-Driven Design
  • Effective Java
  • The Lean Entrepreneur: How Visionaries Create Products, Innovate with New Ventures, and Disrupt Markets
  • Refactoring to Patterns
  • The Manager's Path: A Guide for Tech Leaders Navigating Growth and Change
  • Designing Data-Intensive Applications
See similar books…

Goodreads is hiring!

If you like books and love to build cool products, we may be looking for you.
Learn more »

Other books in the series

A Kent Beck Signature Book (7 books)
  • Test-Driven Development: By Example
  • Implementation Patterns
  • ATDD by Example: A Practical Guide to Acceptance Test-Driven Development
  • User Stories Applied: For Agile Software Development
  • Implementing Lean Software Development: From Concept to Cash
  • Leading Lean Software Development: Results Are Not the Point

News & Interviews

The beauty of a paperback novel is multidimensional. Allow me to explain: The format allows you to catch up on some of 2020's biggest books...
63 likes · 6 comments
“One Domain Vocabulary A class that uses terms from multiple domains might be violating context independence, unless it’s part of a bridging layer.” 1 likes
“How can we hope to catch all the configuration options in an entire system? At some level we can’t, and this is at the heart of what professional testers do.” 1 likes
More quotes…