Growing Object-Oriented Software, Guided by Tests and over one million other books are available for Amazon Kindle. Learn more



or
Sign in to turn on 1-Click ordering
Sell Us Your Item
For a $16.00 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.
Sorry, this item is not available in
Image not available for
Color:
Image not available

To view this video download Flash Player

 

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

Steve Freeman , Nat Pryce
4.5 out of 5 stars  See all reviews (31 customer reviews)

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

Formats

Amazon Price New from Used from
Kindle Edition $25.07  
Paperback $39.77  
Sell Back Your Copy for $16.00
No matter where you bought them, get up to 70% back when you sell your books at Amazon.com.
Used Price$28.90
Trade-in Price$16.00
Price after
Trade-in
$12.90

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: $122.43

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: 6.6 x 0.9 x 8.5 inches
  • Shipping Weight: 1.4 pounds (View shipping rates and policies)
  • Average Customer Review: 4.5 out of 5 stars  See all reviews (31 customer reviews)
  • Amazon Best Sellers Rank: #127,978 in Books (See Top 100 in Books)

More About the Authors

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

Customer Reviews

The first part of a very quick introduction to TDD and jMock. Bas Vodde  |  5 reviewers made a similar statement
Very valuable insights, presented with great clarity and lucidity. Dron  |  7 reviewers made a similar statement
Most Helpful Customer Reviews
56 of 58 people found the following review helpful
5.0 out of 5 stars Deep OO and TDD in one book November 25, 2009
Format:Paperback
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?
41 of 42 people found the following review helpful
5.0 out of 5 stars Excellent TDD book for actual practitioners January 13, 2010
Format:Paperback|Amazon 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. I had mixed feelings about this part as a book didn't seem like the best medium for doing this, but still I appreciate the insights they had and also their attempt to make it as close to "real world" as possible.

Writing tests is one thing, maintaining them in another. Part 4 discusses how to make the tests maintainable and the tdd cycle sustainable. Personally, I found this part very insightful and the authors discipline exemplar. The authors start of with different test smells and what to do about it. They then discuss readability of the tests and of the error messages and spend some time of test object creation. Most notable from that part (for me) was their focus on using builders for creating test data, rather than object mothers.

The final part covers three (or actually two!) advanced topics. First is testing persistence where most interesting was how the authors seemed to prefer to "go all the way" whereas the common advise (for test speed) is to rollback and mock more. (this was actually a common theme in their book). The last two chapters deal with multi-threading and async code. I was unclear why these were separated in two chapters and they they were in this particular order. The content was excellent though, except that I missed some typical design guidelines related to multi-threading design. It almost felt they were in a hurry to write the last two chapters...

Anyways, in conclusion, this will definitively be one of my favorite (if not the favorite) TDD books and general design books. Steven and Nat did a wonderful job on this one. Though the book is not perfect, I enjoyed it thoroughly. A definite recommendation for anyone interested in modern design and TDD.
Comment | 
Was this review helpful to you?
20 of 22 people found the following review helpful
4.0 out of 5 stars Food for nurturing your TDD mastery December 17, 2009
Format:Paperback
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?
Most Recent Customer Reviews
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 2 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 2 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 2 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 2 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 2 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 4 months ago by Gojko
3.0 out of 5 stars This GREAT book deserves a better kindle version
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... Read more
Published 5 months ago by Bigodines
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 8 months ago by shishi
4.0 out of 5 stars The book is great, but I don't recommend the kindle edition
The code examples are quite hard to read on the kindle edition. I'd recommend you to buy the paperback version, if you can wait :)
Published 9 months ago by José Ricardo
5.0 out of 5 stars Excellent!
This book is thin but extremely consistent, with a lot of powerful information for who those want to grow your know-how with developing and tests.
Published 9 months ago by Pimenta
Search Customer Reviews
Only search this product's reviews


Forums

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



So You'd Like to...


Create a guide


Look for Similar Items by Category