• RRP: £36.99
  • You Save: £9.24 (25%)
FREE Delivery in the UK.
In stock.
Dispatched from and sold by Amazon. Gift-wrap available.
Growing Object-Oriented S... has been added to your Basket
+ £2.80 UK delivery
Used: Like New | Details
Sold by Wordery
Condition: Used: Like New
Comment: This fine as new copy should be with you within 6-9 working days via Royal Mail.
Have one to sell?
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See all 3 images

Growing Object-Oriented Software, Guided by Tests (Beck Signature) Paperback – 12 Oct 2009

4.9 out of 5 stars 24 customer reviews

See all formats and editions Hide other formats and editions
Amazon Price
New from Used from
Kindle Edition
"Please retry"
"Please retry"
£22.82 £22.99
Note: This item is eligible for click and collect. Details
Pick up your parcel at a time and place that suits you.
  • Choose from over 13,000 locations across the UK
  • Prime members get unlimited deliveries at no additional cost
How to order to an Amazon Pickup Location?
  1. Find your preferred location and add it to your address book
  2. Dispatch to this address when you check out
Learn more
£27.75 FREE Delivery in the UK. In stock. Dispatched from and sold by Amazon. Gift-wrap available.
click to open popover

Special Offers and Product Promotions

Frequently Bought Together

  • Growing Object-Oriented Software, Guided by Tests (Beck Signature)
  • +
  • Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin)
  • +
  • Refactoring: Improving the Design of Existing Code (Object Technology Series)
Total price: £75.68
Buy the selected items together

Enter your mobile number below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
Getting the download link through email is temporarily not available. Please check back later.

  • Apple
  • Android
  • Windows Phone

To get the free app, enter your mobile phone number.

Product details

Product Description

From the Back Cover

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


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.


Customer Reviews

4.9 out of 5 stars
5 star
4 star
3 star
2 star
1 star
See all 24 customer reviews
Share your thoughts with other customers

Top Customer Reviews

Format: Paperback
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. First of all, the book deals mostly with advanced unit testing topics, such as designing tests for readability and mocking, and addresses many common stumbling points that people experience with unit testing a few years after they started their journey, such as applying unit testing in multi-threaded and asynchronous environments. Second, it explains and demonstrates in practice the dynamics of designing software through TDD, which is still a dark art for many programmers. And third, it gives the reader insight into Freeman's and Pryce's brains, which is why this book is a must-read for anyone serious about unit testing, even to people that have been doing it in the last century.

Given the authors' backgrounds, it's not surprising that this book has a lot to say about using mock object libraries. Mock objects are arguably the most misunderstood and misused concept in software development today, so this book should be a valuable resource for most software development teams. In the part dealing with mock objects you will find strategies for using them successfully for software design, guidelines what to mock and what not to mock and lots of examples how all that looks in code.

The book isn't written in the usual imperative way ("you should use this because of...") but reads much more as an experience report ("we use this because of"). This might be unusual at first but I really like it, as it puts the things into a much more different perspective. Many of the topics addressed by this book are quite controversial and the authors have wisely chosen the voice to avoid any notion of preaching.
Read more ›
Comment 29 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Paperback Verified Purchase
Some of the other reviewers are referring to this book as 'advanced'. I think it's advanced if you're relatively new to TDD. It would certainly help if you're a competent developer (which is probably why you're looking at TDD anyway), but it's 'advanced' if you want to change the way that you develop software.

It's a good read and I found quite a few "aha" paragraphs (my copy's now punctuated with permanently folded corners/post it notes).

It's nicely written without sounding arrogant. I think it's quite a hard topic to cover without getting bogged down in the minutiae of whys and wherefores of decisions, which it covers at exactly the right level

My only criticism is that I found it wee bit annoying the way it referred to the latter worked example when introducing an aspect of TDD, forcing me to skip back and forth a bit - but I think that's just a personal book reading preference.

I'm not sure how much an experienced TDD practioner would gain from it (except to see some of your own thoughts mirrored in black and white), but would very much recommend it to those new or getting started with TDD, wishing to `do it right'

Although the code samples are in Java it is applicable to other languages, such as C#, as the concepts are language independent
Comment 9 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Paperback Verified Purchase
This book fundamentally changed my understanding of TDD.

It is the first clear, detailed description I have seen of how test-driven development (TTD) not just improves the quality of code, but can and should be used as a driver to change the actual design of the code. In other words, why you don't merely write less buggy code with TDD, but fundamentally different (and better) code.

The book describes how to kick off a new project with a "walking skeleton" - a minimal end-to-end feature that exercises the entire automated build-deploy-test infrastructure that you will need for the rest of the project.

It describes how end-to-end acceptance tests differ from unit tests and integration tests, and how the three types fit together.

Much of the book is an extended worked example, including asynchronous networking and UI code. This level of detail requires effort to read, but prevents the authors from hiding behind any form of hand-waving, and is well worth the effort - I am currently re-reading all the way through.

If you aspire to test-first programming then you need this book. If you don't aspire to test-first programming then you should read this book.
Comment One person found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Paperback
This book is excellent, showing you not only how to do great TDD, but also how to do great design.
I would recommend it to all programmers out there who can read Java.
(The one caveat is that the book is all in Java, and so if you find reading Java hard you won't get as much out of the book.)

Steve and Nat walk you though a non-trivial example over many chapters which allows you to see how they think and how they write code.
Of course they use evolutionary design. So if you haven't got much experience with evolutionary design this book will show you how it works in practice.

TDD has improved and evolved over the years, making many of the earlier books on TDD seem outdated.

This books is full of personality and show how Steve and Nat approach TDD today.

I liked the state transition diagrams they used to visualise the system, and show which bits have been tested, and which bit is currently being worked on.
Comment 4 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse

Most Recent Customer Reviews