Shop now Shop now Shop Black Friday Deals Refreshed in Fashion Shop now Cloud Drive Photos Shop now Learn More Shop now DIYED Shop now Shop Fire Shop Kindle Paperwhite Listen in Prime Shop Now Shop now
Growing Object-Oriented Software, Guided by Tests (Addiso... and over 2 million other books are available for Amazon Kindle . Learn more
  • RRP: £36.99
  • You Save: £10.36 (28%)
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
Condition: Used: Like New
Comment: 100% Money Back Guarantee. Brand New, Perfect Condition, FAST SHIPPING TO UK 4-14 business days, all other destinations please allow 8-18 business days for delivery. Over 1,000,000 customers served.
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

22 customer reviews

See all formats and editions Hide other formats and editions
Amazon Price
New from Used from
Kindle Edition
"Please retry"
"Please retry"
£21.18 £21.34
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

Black Friday Refreshed in Books
Visit our Deals in Books store to discover Amazon's greatest ever deals. Shop now
£26.63 FREE Delivery in the UK. In stock. Dispatched from and sold by Amazon. Gift-wrap available.

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: £87.13
Buy the selected items together

Enter your mobile number or email address 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.

  • Apple
  • Android
  • Windows Phone

To get the free app, enter your e-mail address or mobile phone number.

Product details

More About the Authors

Discover books, learn about writers, and more.

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.


Inside This Book

(Learn More)
Browse Sample Pages
Front Cover | Copyright | Table of Contents | Excerpt | Index
Search inside this book:

Customer Reviews

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

Most Helpful Customer Reviews

28 of 28 people found the following review helpful By Gojko Adzic on 20 Nov. 2009
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 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
9 of 9 people found the following review helpful By Jason Hales on 4 Dec. 2009
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 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
4 of 4 people found the following review helpful By Liz Sedley on 15 Jan. 2010
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 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
3 of 3 people found the following review helpful By jhk on 21 Nov. 2009
Format: Paperback
As other reviewers have mentioned, this is an advanced book. It covers TDD methodology and programming concepts in great depth. The book explains in detail what should a good test achieve and shows you many techniques that could help improving your tests. Moreover, it emphasises the importance of code quality not only in production code, but also in tests.

This book doesn't read like a boring text book. Reading the book feels like going through Steve and Nat's secret notebook, containing their valuable experiences and lessons learnt.

Although the code examples in this book is Java, I find most concepts are very applicable to other languages if you do TDD. Beginners may find this book too high level, but I think it's a must read for TDD practitioners who want to further improve their art.
Comment 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
4 of 4 people found the following review helpful By I. R. Moore on 9 Dec. 2009
Format: Paperback
This is the best book on TDD that I've read. It's more than just about testing though - it's about object oriented design. It's very well written - clear without being verbose. It's suitable for all levels of experience of TDD. Unlike other books on TDD I've read, there is plenty in this book even for people who have done plenty of TDD before.
Comment 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