Start reading Growing Object-Oriented Software, Guided by Tests (Addiso... on your Kindle in under a minute. Don't have a Kindle? Get your Kindle here or start reading now with a free Kindle Reading App.

Deliver to your Kindle or other device

 
 
 

Try it free

Sample the beginning of this book for free

Deliver to your Kindle or other device

Anybody can read Kindle books—even without a Kindle device—with the FREE Kindle app for smartphones, tablets and computers.
Growing Object-Oriented Software, Guided by Tests (Addison-Wesley Signature Series (Beck))
 
 

Growing Object-Oriented Software, Guided by Tests (Addison-Wesley Signature Series (Beck)) [Kindle Edition]

Steve Freeman , Nat Pryce
4.9 out of 5 stars  See all reviews (22 customer reviews)

Print List Price: £36.99
Kindle Price: £16.30 includes VAT* & free wireless delivery via Amazon Whispernet
You Save: £20.69 (56%)
* Unlike print books, digital books are subject to VAT.

Formats

Amazon Price New from Used from
Kindle Edition £16.30  
Paperback £29.59  
Kindle Daily Deal
Kindle Daily Deal: At least 60% off
Each day we unveil a new book deal at a specially discounted price--for that day only. Learn more about the Kindle Daily Deal or sign up for the Kindle Daily Deal Newsletter to receive free e-mail notifications about each day's deal.


Product Description

Product Description

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

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

 


Product details

  • Format: Kindle Edition
  • File Size: 7858 KB
  • Print Length: 384 pages
  • Simultaneous Device Usage: Up to 5 simultaneous devices, per publisher limits
  • Publisher: Addison-Wesley Professional; 1 edition (12 Oct 2009)
  • Sold by: Amazon Media EU S.à r.l.
  • Language: English
  • ASIN: B002TIOYVW
  • Text-to-Speech: Enabled
  • X-Ray:
  • Average Customer Review: 4.9 out of 5 stars  See all reviews (22 customer reviews)
  • Amazon Bestsellers Rank: #124,589 Paid in Kindle Store (See Top 100 Paid in Kindle Store)
  •  Would you like to give feedback on images?


More About the Authors

Discover books, learn about writers, and more.

What Other Items Do Customers Buy After Viewing This Item?


Customer Reviews

3 star
0
2 star
0
1 star
0
4.9 out of 5 stars
4.9 out of 5 stars
Most Helpful Customer Reviews
26 of 26 people found the following review helpful
5.0 out of 5 stars Finally an advanced TDD book 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?
8 of 8 people found the following review helpful
5.0 out of 5 stars An Excellent Coverage of TDD Principles 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?
5 of 5 people found the following review helpful
5.0 out of 5 stars An imperfect but must read book 25 Mar 2010
Format:Paperback|Verified Purchase
This book has changed the way I code. As someone that has been coding for 20 years and using TDD for 3 or 4 years that is as clear a recommendation as I can think of. I thought I understood TDD and the reasons for it but this book exposes the true beauty of the approach. There is some excellent advice in here that any developer using TDD should know. If you are using TDD (and why not by now) then read this book.

My only complaint with the book was in Part III which is a worked example. This is a large part of the book that uses a development example to demonstrate their approach to software development. As such the code goes through a lot of refactorings and this is where the problem lies. Too often they discuss a refactoring that is required without showing the code that they are considering refactoring. As the code has already gone through so many changes it is very difficult to keep track of what it currently looks like.
Comment | 
Was this review helpful to you?
3 of 3 people found the following review helpful
5.0 out of 5 stars Demonstrates Evolutionary Design 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?
3 of 3 people found the following review helpful
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?
Would you like to see more reviews about this item?
Were these reviews helpful?   Let us know
Most Recent Customer Reviews
4.0 out of 5 stars Very well written
Very well written, some very interesting concepts and examples, definitely worth a read! Only problem for me was that it was in Java and i m a C# guy but you cannot please... Read more
Published 5 months ago by dimos banis
5.0 out of 5 stars Defines the essence of TDD
This book clearly illustrates not only "What" TDD is all about but also "How" to go about doing it. This is done in the style of a tutorial type format where a fictitious Auction... Read more
Published 9 months ago by Martin Etherton
5.0 out of 5 stars Bible of being a great coder
This book shows the difference between a good coder, and a great coder. And the difference is tests. Read more
Published 11 months ago by Mr. C. Hoskin
5.0 out of 5 stars One of the few must reads in Computer Science
I've been a programmer for 18 years now, and there a few cornerstone books that changed my world view - this is one of them. Read more
Published 11 months ago by Alex Reis
5.0 out of 5 stars Book
This was a present for a clever son! I've no idea what this is about but he was very pleased with it - so I'm happy!
Published 13 months ago by V. E. Cairns
5.0 out of 5 stars Excellent TDD and design book
This is an excellent book, well written, and it gives a good insight into a method of doing TDD, and how to listen to and use tests to improve design. Read more
Published 21 months ago by Gareth
5.0 out of 5 stars Changed the way I think
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... Read more
Published on 8 April 2012 by David Allsopp
5.0 out of 5 stars Excellent
This is a very clear and well thought out book. The authors have a wealth of real programming experience behind them and present a series of techniques and ideas that should help... Read more
Published on 12 Jun 2011 by Ian Miller
5.0 out of 5 stars I'll cut straight to the chase: This is a great book!
I'll cut straight to the chase: This is a great book! In fact I'd put it second, behind Test Driven Development by Kent Beck, on my must read list for developers. Read more
Published on 31 May 2011 by Mr. Paul J. Grenyer
5.0 out of 5 stars Essential
I think this is the single most important contribution to software engineering that I have read in the last two years.
Published on 22 Mar 2011 by Wee Engineer
Search Customer Reviews
Only search this product's reviews

Popular Highlights

 (What's this?)
&quote;
Our heuristic is that we should be able to describe what an object does without using any conjunctions (“and,” “or”). &quote;
Highlighted by 109 Kindle users
&quote;
nothing forces us to understand a process better than trying to automate it. &quote;
Highlighted by 92 Kindle users
&quote;
Acceptance: Does the whole system work? Integration: Does our code work against code we can’t change? Unit: Do our objects do the right thing, are they convenient to work with? &quote;
Highlighted by 91 Kindle users

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 

Search Customer Discussions
Search all Amazon discussions
   


Look for similar items by category