Programming Books C Java PHP Python Learn more Browse Programming Books
Growing Object-Oriented Software, Guided by Tests (Addiso... and over one million other books are available for Amazon Kindle. Learn more

Sorry, this item is not available in
Image not available for
Image not available

To view this video download Flash Player


Sign in to turn on 1-Click ordering
Sell Us Your Item
For a $16.48 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Start reading Growing Object-Oriented Software, Guided by Tests on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Growing Object-Oriented Software, Guided by Tests [Paperback]

by Steve Freeman, Nat Pryce
4.4 out of 5 stars  See all reviews (34 customer reviews)

Buy New
$40.44 & FREE Shipping. Details
In Stock.
Ships from and sold by Gift-wrap available.
In Stock.
Want it tomorrow, April 25? Choose One-Day Shipping at checkout. Details
Free Two-Day Shipping for College Students with Amazon Student


Amazon Price New from Used from
Kindle Edition $27.49  
Paperback $40.44  
Sell Us Your Books
Get up to 80% back when you sell us your books, even if you didn't buy them at Amazon. Learn more

Book Description

October 22, 2009 0321503627 978-0321503626 1

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 to understand the ideas in this book.”--Michael Feathers


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 building real-world systems, two TDD pioneers show how to let tests guide your development and “grow” software that is coherent, reliable, and maintainable.


Steve Freeman and Nat Pryce describe the processes they use, the design principles they strive to achieve, and some of the tools that help them get the job done. Through an extended worked example, you’ll learn how TDD works at multiple levels, using tests to drive the features and the object-oriented structure of the code, and using Mock Objects to discover and then describe relationships between objects. Along the way, the book systematically addresses challenges that development teams encounter with TDD--from integrating TDD into your processes to testing your most difficult features. Coverage includes


•   Implementing TDD effectively: getting started, and maintaining your momentum

    throughout the project

•   Creating cleaner, more expressive, more sustainable code

•   Using tests to stay relentlessly focused on sustaining quality

•   Understanding how TDD, Mock Objects, and Object-Oriented Design come together

    in the context of a real software development project

•   Using Mock Objects to guide object-oriented designs

•   Succeeding where TDD is difficult: managing complex test data, and testing persistence

    and concurrency


Frequently Bought Together

Growing Object-Oriented Software, Guided by Tests + Clean Code: A Handbook of Agile Software Craftsmanship + Refactoring: Improving the Design of Existing Code
Price for all three: $116.55

Buy the selected items together

Editorial Reviews

About the Author

Steve Freeman is an independent consultant specializing in Agile software development. A founder member of the London Extreme Tuesday Club, he was chair of the first XPDay and is a frequent organizer and presenter at international conferences. Steve has worked in a variety of organizations, from writing shrink-wrap software for IBM, to prototyping for major research laboratories. Steve has a Ph.D. from Cambridge University, and degrees in statistics and music. Steve is based in London, UK.


Nat Pryce has worked as a programmer, architect, trainer, and consultant in a variety of industries, including sports reportage, marketing communications, retail, telecoms, and finance. With a Ph.D. from Imperial College London, he has also worked on research projects and does occasional university teaching. An early adopter of Extreme Programming, he has written or contributed to several open source libraries that support Test Driven Development. He was one of the founding organizers of the London XPDay and regularly presents at international conferences. Nat is based in London, UK.


Freeman and Pryce were joint winners of the 2006 Agile Alliance Gordon Pask award.


Product Details

  • Paperback: 384 pages
  • Publisher: Addison-Wesley Professional; 1 edition (October 22, 2009)
  • Language: English
  • ISBN-10: 0321503627
  • ISBN-13: 978-0321503626
  • Product Dimensions: 9.1 x 6.9 x 0.9 inches
  • Shipping Weight: 1.4 pounds (View shipping rates and policies)
  • Average Customer Review: 4.4 out of 5 stars  See all reviews (34 customer reviews)
  • Amazon Best Sellers Rank: #39,326 in Books (See Top 100 in Books)

More About the Authors

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

Most Helpful Customer Reviews
61 of 63 people found the following review helpful
5.0 out of 5 stars Deep OO and TDD in one book November 25, 2009
There are many books about Test-Driven Development on the market, but this book is unique. It presents a style of TDD which originated in the London software development community. It's a style which pushes several key ideas to the extreme: "tell, don't ask" object design, fully end-to-end incremental development, and the deep synergy between testability and good design. Steve and Nat have done a stellar job refining and presenting these ideas. The text is lucid and precise. When you read this book you'll be exposed to far more than just another style of TDD, you'll be exposed to a depth of insight about emergent object oriented design which is both rare and extremely valuable.
Comment | 
Was this review helpful to you?
42 of 44 people found the following review helpful
5.0 out of 5 stars Excellent TDD book for actual practitioners January 13, 2010
Format:Paperback|Verified Purchase
This book has been in my Amazon pre-ordered list for quite a while and I was looking forward to this. I found the title alone already excellent. Steven and Nat (authors of jMock) are well known expert TDD practitioners, so I was looking forward to what they had to say. The book was better than I had expected.

The book consists of 5 parts. The first part of a very quick introduction to TDD and jMock. The second part discusses the tdd cycle in more detail. The third part (150 pages) is a very large example of growing a piece of software. The fourth part discusses topics on how to sustain TDD and the last part covers some advanced topics.

In this review, I'll skip part 1 as it was short and nothing special. Part two covers the TDD cycle and the link to evolutionary design. Steve and Nat have a design style that focuses almost purely on the interactions between classes which are most frequently tested using expectations on mock objects (which, as authors of jMock, they have lots of experience with). Most notable from part 2, for me, were the classifications of objects that they used, the strong focus on interaction and mocking (more than I usually have when test-driving) and their lack of focus on classes but focus on roles and responsibilities. Nat and Steve clarify their thinking exceptionally well which makes it all easy to understand.

Part 3 takes the largest part of the book, which is where they test-drive an AuctionSniper application. It is a small application, but large for a book example. The authors show how they gradually build up the application by adding one test at the time and how they gained insights during this process which made them adjust their design.
Read more ›
Comment | 
Was this review helpful to you?
21 of 23 people found the following review helpful
4.0 out of 5 stars Food for nurturing your TDD mastery December 17, 2009
In a way this book presents the essence of a decade of test-driven development practice. The authors bring together the various tools of uptodate TDD like mock objects, bdd-style naming and acceptance tests. Open the book on any chapter and you will most likely find useful and deep advice, even if you consider yourself already a TDD expert.

There's one catch, though, that made me lower the rating to 4 stars: The authors go for an extended example which covers the full TDD cycle; from a walking skeleton, to the first acceptance test, into many obvious and some non-obvious refactorings. As noble as this endeavour is, it didn't work for me as a reader. Coming back to the text - and the code - after a day or two I often got lost trying to grasp the subtle nuances; I just couldn't remember all the necessary details of previous chapters.

Nonetheless, it's an excellent book and I enjoyed it. Get a copy, read it and become a better TDD practitioner.
Was this review helpful to you?
13 of 14 people found the following review helpful
3.0 out of 5 stars This GREAT book deserves a better kindle version November 26, 2012
Format:Kindle Edition|Verified Purchase
This is a GREAT book... one of those you don't wanna stop reading. But the kindle version sux so bad that I gave up when I saw the first code samples...

A programming book with code samples that are almost impossible to read is a huge drawback. 70% of the value is lost in the kindle version.. I am sure that sooner or later this will be fixed but until then... stick to the printed version.
Was this review helpful to you?
7 of 7 people found the following review helpful
4.0 out of 5 stars 5 stars on the non-case study parts June 20, 2011
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 therefore covers Hamcrest matchers for both JUnit and JMock. I like the authors cover best practices, good design and clearly indicate what is a personal preference. I really liked part 4's emphasis on things that are hard to test at a higher level than "extract method."

The only thing that prevents me from giving full marks, is the case study. While I did read this part in one sitting, it was still hard to follow. There was a lot of information to keep in mind while trying to focus on the lessons of the example. I also think it was admirable for the authors to use a Swing example since Swing is harder to test. However, Swing is also less common for Java developers to use actively adding another block to understanding the software growing/testing aspects. And it is even harder for non-Java developers who are in the target audience for the book.

Except for the case study, I thought the book was amazing. And I'm sure the case study is a matter of taste.

Disclosure: I received a copy of this book from the publisher in exchange for writing this review on behalf of CodeRanch.
Was this review helpful to you?
Most Recent Customer Reviews
4.0 out of 5 stars skeleton people web of systems design objects heuristics bloated...
With the binary files alone offers a look into the indexes that have issues with parameter constraints as a Big Design Up Front (BDUF) Agile Development. Read more
Published 2 days ago by Derek Allan Elj
4.0 out of 5 stars Not an easy read
I have learned a lot about building testable code from this book but it is was not an easy read. Code is in focus which is good but me as a C# developer had same minor difficulties... Read more
Published 9 months ago by Kreso Jurisic
4.0 out of 5 stars Great book
Definitely a must read if you're looking for state-of-the-art test-first practices to develop an application. Read more
Published 9 months ago by Max33
2.0 out of 5 stars Who is this book for?
Seriously, how can people rate this book 5 stars?? It does not explain TDD in the proper way, and personally, I totally disagree with the vision of the writer to include... Read more
Published 13 months ago by Raffaele Garofalo
5.0 out of 5 stars A must read for all serious software professionals
After 30 years developing systems software, I learn somethign new every time I pick up this book.

Put this on your bookshelf. You will kep it forever!
Published 13 months ago by Frustrated
3.0 out of 5 stars Good content, poor presentation
The content of this book will help you to write better software. However, the book itself is a chore. Read more
Published 14 months ago by Kevin Berridge
4.0 out of 5 stars Really good
I have a friend that recommended me this book.
I'm applying it's concepts on the company I work and on my part-time developments
Published 14 months ago by Willian Mitsuo Kumatsu
5.0 out of 5 stars test your program, not your api
I spent the first part of my career doing computational work, primarily in FORTRAN and C, before jumping into traditional "application development" about 18 months ago. Read more
Published 14 months ago by Jeff Davis
5.0 out of 5 stars Dark arts of TDD explained
Growing Object Oriented Software, Guided by Tests, by Steve Freeman and Nat Pryce is a TDD book, but unlike any other on the market today. Read more
Published 15 months ago by Gojko
5.0 out of 5 stars good for learning TDD
I recommend this book for person who learn TDD. This book will teach you many best pracite on TDD. Try this.
Published 20 months ago by shishi
Search Customer Reviews
Only search this product's reviews

What Other Items Do Customers Buy After Viewing This Item?


There are no discussions about this product yet.
Be the first to discuss this product with the community.
Start a new discussion
First post:
Prompts for sign-in

Look for Similar Items by Category