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.18  ·  Rating Details ·  1,480 Ratings  ·  78 Reviews
Test-Driven Development (TDD) is now an established technique for delivering better software faster. TDD is based on a simple idea: Write tests for your code before you write the code itself. However, this "simple" idea takes skill and judgment to do well. Now there's a practical guide to TDD that takes you beyond the basic concepts. Drawing on a decade of experience build ...more
ebook, 384 pages
Published October 12th 2009 by Addison-Wesley Professional (first published October 1st 2009)
More Details... edit details

Friend Reviews

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

Reader Q&A

To ask other readers questions about Growing Object-Oriented Software, Guided by Tests, please sign up.

Be the first to ask a question about Growing Object-Oriented Software, Guided by Tests

Community Reviews

(showing 1-30)
filter  |  sort: default (?)  |  Rating Details
Alena Varkockova
Dec 28, 2013 Alena Varkockova rated it really liked it  ·  review of another edition
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
Yevgeniy Brikman
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
Amy Gilchrist Thorne
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
Sep 08, 2010 Tom rated it it was amazing  ·  review of another edition
Shelves: own, nonfiction, tech
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
May 12, 2012 Stephen rated it it was amazing  ·  review of another edition
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

David Lindelof
Sep 18, 2014 David Lindelof rated it it was amazing  ·  review of another edition
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
Rene Stein
Mar 22, 2011 Rene Stein rated it really liked it  ·  review of another edition
Nejlepší kniha o testování (Unit testy, Integrační testy, Akceptační testy), kterou jsem četl. Autoři-praktici precizně popisují svůj přístup k vývoji a testování aplikací a nevyhýbají se na konci knihy ani doporučením, jak psát složitější testy, které zohledňují existenci více nezávislých threadů v aplikaci, nebo jak si poradit s testy, které testují metody závislé na aktuálním datu a čase, a nechybí ani příklady testů, které musí ověřit výsledek volání asynchronní operace.

Ke knize bych měl jen
Bjoern Rochel
Nov 16, 2012 Bjoern Rochel rated it it was amazing  ·  review of another edition
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 Jeanne Boyarsky rated it really liked it  ·  review of another edition
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
May 12, 2011 Vladyslav rated it really liked it  ·  review of another edition
Shelves: own-paper-copy, box-3
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
Xavier Shay
Jan 27, 2011 Xavier Shay rated it really liked it  ·  review of another edition
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
Mar 30, 2013 James rated it it was amazing  ·  review of another edition
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.
Best TDD book and best OO book I ever read. Amazing.
Dec 06, 2013 Dustin rated it liked it  ·  review of another edition
While there was a lot to learn and take away you have to overlook the over architecting that took place in the code.
Feb 27, 2017 Anna rated it really liked it  ·  review of another edition
Dit boek was me door heel veel mensen aangeraden en ze hadden gelijk. Het heeft echt mijn visie op softwareontwikkeling veranderd. Aanrader voor iedereen die in een OO taal werkt.

Mijn enige verbeterpuntje zou zijn dat in de tekst zelf (het boek is verdeeld in een tekstgedeelte en een heel uitgebreid voorbeeld, wat een heel goed idee is) iets meer mini-voorbeeldjes toe te voegen om bv stellingen te illustreren. Dan hobbel je toch wat soepeler door de concepten heen.
Jean Tessier
Sep 27, 2011 Jean Tessier rated it really liked it  ·  review of another edition
Shelves: software
Came recommended by Kent Beck. The authors wrote jMock. This books explains how they approach writing tests.

Well worth the read, whether you're new to TDD or if you're a seasoned practitioner. Part I and II lay out how TDD works and the authors' philosophy with regard to writing software. Many other books describe TDD and the authors are candid when it comes to their personal practices. YMMV. Part III is a very comprehensive case study where they use the practices in anger, that is, trying to ac
Xing Shi
Jul 26, 2011 Xing Shi rated it really liked it  ·  review of another edition
TDD is hard

I finished Growing Object-Oriented Software Guided by Tests (GOOS) this afternoon. It’ a book that I sincerely hope I would have had the patience to read years ago. It answers one deceivingly simple question in software development that has bothered me for a long time: How to practice TDD (Test Driven Development)?

When I first heard about the Golden Rule of TDD – “Never write new functionality without a failing test”, I was quite skeptical about it. But after several years building so
Jul 09, 2010 Graham rated it really liked it  ·  review of another edition
Shelves: computer-books
Growing Object-Oriented Software shows the reader how TDD, done from the inception of a greenfield project, can have a dramatic effect on both the design and correctness of a piece of software. The book covers not only unit testing, but also integration, and end-to-end testing, demonstrating that TDD is effective at every level of granularity. In fact, the examples of integration testing are the strongest aspect of the book, and read like natural language while exercising multiple parts of the s ...more
Nov 02, 2016 Matt rated it it was amazing  ·  review of another edition
This book delivers. I highly recommend it to anyone developing OOP software that wants a clear and coherent picture of how to keep things clean and nimble.

The book is split into two sections: a section on principles and guidelines and a section that showcases these principles.

The first section gathers together ways of building software can respond to changes in the plan - both during the building or the maintenance stage. It ties in the philosophy of testing, especially TDD, with hexagonal arch
A book about Test-Driven Development (TDD), based on Java. It was fantastic to see this style of programming in action. Much of the book was devoted to an example program, which they wrote as they went along, so you saw all the mistakes and discoveries they made along the way. This was supposed to demonstrate how wonderful TDD is for the incremental growth of software, as it adapts to changing requirements. I was amazed to see how absolutely clean the resulting code was, and how tiny their chang ...more
David Rissato Cruz
I would give 3,5 out of 5. This book has some good complementary concepts that I read on other books in the same topic. However, it lies between a technical and conceptual book, and his writing style is sometimes confusing due to that, because he wanted to avoid technical explanations about technologies he choose, and unless you already know them, it created an extra layer of difficult in the text, taking you out of the main point. And I personally got really bored following the construction of ...more
Jul 13, 2016 Gary rated it it was amazing  ·  review of another edition
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
Matt Diephouse
While there were some valuable nuggets that stuck out to me while reading this book (e.g., the distinction between objects and values, the value of writing object internals functionally), much of the bulk of it was either common sense or not highly valuable to me.

Additionally, the use of Java, jUnit, and jMock made the contents not highly relevant to my current line of work writing Objective-C. It is useful to have some insight into the Java world and how testing has influenced it, but Objective
Feb 11, 2016 Balhau rated it really liked it  ·  review of another edition
This is really a must to read book. This is for software developers who want to solidify the knowledge they have on test driven development. The author is a renowned specialist in the field and a known contributor for the JMock library. The read is an easy and at the same time the concepts are well tackled and theory driven by examples and a use case to unify most of the aspects we need to deal on a real project. The book is java oriented but the concepts are applicable to any other language. Th ...more
Gleb Sevruk
Jun 27, 2013 Gleb Sevruk rated it really liked it  ·  review of another edition
Shelves: read-dev
It is quite hard to follow with the real code example. As for me that example and it's functions are easy and not worth that much pages. So I had to skip over code, because there are lot of concepts already explained in other books. The examples are not very exiting and there are others book on topic (by Mark Seemahn or Roy Osherove) providing more clean and easy to follow code. It could be because I'm not familiar with java.

If you stuck in a middle - just skip several pages. The end of the boo
Dmitriy Melnik
Sep 20, 2016 Dmitriy Melnik rated it really liked it  ·  review of another edition
The book gives a good explanation of TDD process. Especially insightful for me was the concept of acceptance testing. I started writing such tests in my project and it greatly increased the stability of the system and led me to produce more flexible design.

On the other side, I was often finding myself skipping tens of pages at once. They were pages dealing with the sample application development. It could happen because I already had a lot of experience with TDD and there were no valuable inform
Oct 25, 2016 Josh rated it it was amazing  ·  review of another edition
A lot of good design patterns and software design principles are explained pretty clearly in this book.

The examples are all in Java, but as a JavaScript/PHP/Python developer I was able to follow along enough to understand the concepts.

Didn't really read it cover-to-cover, but I don't think you're meant to. Once you have the concepts down, this is the kind of book you leave on your shelf as a reference guide for later.
Brian Yamabe
Jun 03, 2013 Brian Yamabe rated it really liked it  ·  review of another edition
Got a little more than half way through and found that the type of system modeled is way more complicated than I'm interested in. Foundationally, this gives a good argument for BDD and how to approach BDD. The scope of the example was overwhelming though it serves the prupose of not being a toy example, I couldn't get into it because it was too specific to the beast. 3.5/5

I might try to pick this up again if I want to dig deeper into architecting a large scale systems.
Apr 14, 2011 gargamelscat rated it really liked it  ·  review of another edition
Shelves: compsci, 2011
This review has been hidden because it contains spoilers. To view it, click here.
Said A
Sep 09, 2012 Said A rated it really liked it  ·  review of another edition
Shelves: programming
Basically the book about test driven development. If you are new to the concept of TDD, this book will help you get an idea what it is and the process of TDD'ing your next/current project. However, if you are not new to TDD/BDD, I think reading "xUnit Test Patterns: Refactoring Test Code" is a time best spent.

Read it if you're new to TDD, if not got get yourself a copy of "xUnit Test Patterns: Refactoring Test Code" book.
« previous 1 3 4 5 6 7 8 9 next »
There are no discussion topics on this book yet. Be the first to start one »
  • Refactoring to Patterns (Addison Wesley Signature Series)
  • xUnit Test Patterns: Refactoring Test Code
  • Test Driven Development: By Example
  • Domain-Driven Design: Tackling Complexity in the Heart of Software
  • Working Effectively with Legacy Code
  • Agile Software Development, Principles, Patterns, and Practices
  • Patterns of Enterprise Application Architecture
  • Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation
  • Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers)
  • The Art of Unit Testing: With Examples in .NET
  • Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions
  • The RSpec Book
  • Object-Oriented Software Construction (Book/CD-ROM)
  • Specification by Example
  • The Cucumber Book
  • Seven Languages in Seven Weeks
  • User Stories Applied: For Agile Software Development (Addison Wesley Signature Series)
  • Practical Object Oriented Design in Ruby

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 (Addison Wesley Signature Series)
  • Implementing Lean Software Development: From Concept to Cash
  • Leading Lean Software Development: Results Are Not the Point

Share This Book

“incremental development can be disconcerting for teams and management who aren’t used to it because it front-loads the stress in a project.” 1 likes
“But Sometimes Ask” 0 likes
More quotes…