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
  • Android

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

Buy Used
+ $3.99 shipping
Used: Like New | Details
Sold by Bookadia-
Condition: Used: Like New
Comment: Fast shipping! Expedited orders will take 1-3 business days! Media mail may take up to 5 business days.
Trade in your item
Get a $11.79
Gift Card.
Have one to sell? Sell on Amazon
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

Quality Code: Software Testing Principles, Practices, and Patterns Paperback – 2013

4.1 out of 5 stars 8 customer reviews

See all 2 formats and editions Hide other formats and editions
New from Used from
"Please retry"
"Please retry"
$25.61 $25.58

The Amazon Book Review
The Amazon Book Review
Author interviews, book reviews, editors picks, and more. Read it now
click to open popover

Editorial Reviews

From the Author

As I've coached software engineering teams on testing practices I've found that often the obstacle is not whether they believe they should test or whether they understand the concepts of testing, but the concrete understanding of what testable code looks like and knowledge of the implementation patterns of how to bring code under test.

Looking around, I realized that no one had written squarely on this topic. There are lots of great books by the likes of Bob Martin, Michael Feathers, Lasse Koskela, Kent Beck, Steve Freeman and Nat Pryce, Martin Fowler, Joshua Kierevsky, and others that address approaches to testing, the importance of testing, and so forth. In the process they show techniques for bringing code under test, but it's usually secondary to the points being made. The only exception to this is Michael Feathers' "Working Effectively with Legacy Code" but it has a very specific focus that necessarily limits the techniques discussed.

Many of the examples of the book are in Java, although overall I use a dozen or so languages for examples. This is largely an artifact of the language I was most immersed in when the seed of the idea was planted. There are many examples from JavaScript, including one of the worked example chapters. With a few exceptions that I tried to point out, almost all of the techniques can be applied in most languages with only a little adaptation, so if Java and JavaScript are not your primary tools, you should still be able to leverage the techniques.

Happy testing!

About the Author

Stephen Vance has been a professional software developer, consultant, manager, mentor, and instructor since 1992. He has practiced and taught code-level, automated testing techniques since 1997. He has worked across a broad range of industries for companies ranging from start-ups to Fortune 100 corporations. He has spoken at software conferences throughout the United States and Europe. Stephen lives with his wife near Boston, Massachusetts.

New York Times best sellers
Browse the New York Times best sellers in popular categories like Fiction, Nonfiction, Picture Books and more. See more

Product Details

  • Paperback
  • Publisher: ADDISON WESLEY PUB CO INC; 1 edition (2013)
  • Language: English
  • ISBN-10: 0321832981
  • ISBN-13: 978-0321832986
  • Product Dimensions: 9.1 x 7.1 x 0.4 inches
  • Shipping Weight: 12.8 ounces
  • Average Customer Review: 4.1 out of 5 stars  See all reviews (8 customer reviews)
  • Amazon Best Sellers Rank: #840,980 in Books (See Top 100 in Books)

Customer Reviews

Top Customer Reviews

Format: Kindle Edition Verified Purchase
I am not really sure who this book is intended for.... It assumes you know the basics of testing so it's not for beginners, but there is very little information here for seasoned coders, though actually specifying the principles can be moderately helpful. From the description of the book I was really hoping for coverage of the full test "stack", unit, integration, performance etc, more specifically what domains you should cover and how you should create your testing strategies. Instead we get a bunch of useful, though pretty well-known unit test patterns. I guess if you have just started out writing tests and know the basics of the frameworks but not much else this book could be useful, but everyone else is probably better off with a more thorough treatment of the subject.
1 Comment 5 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
There are many books about software testing, but I will put Quality Code in the best that I have read. It presents a philosophy about software testing that has been mine in my software developer life: the programmer is the main person responsible for the quality of its code. Quality Code is a book that I will strongly recommended to every software developer that is convinced that code quality is his main responsibility and not something that will be eventually managed by a QA department elsewhere before delivery. This is a great book on how to grow code and quality together.
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
Format: Paperback
Having worked as a software developer, a QA manager, and an Agile development manager, I've often heard debate about whether or not developers should test their own code. Though certainly developers are expected to unit test, even in Agile environments, I've often seen the separation of roles between developers and testers. I've always been of the opinion that developers were quite capable of testing, and in fact, would ideally create automated tests to be run with each build and deployment.

One thing I really like about this book is that it teaches how to bake quality principals into the code and does not distinguish between a developer and a tester, but teaches these skills to the Agile team member. That being said, the reader should have coding skills in order to gain the benefits of the advice, and the book is more pertinent for the developer who wants to learn testing skills rather than the manual tester who wants to learn test automation skills.

The author does a great job of providing examples and patterns that will help the seasoned coder to thoroughly test and create a high quality application. In our modern world of continuous delivery, we must evaluate for test coverage and automation as a priority. This book will help the software development team learn the necessary skills to guarantee quality from the start.
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
I am definitely the target audience for this book - an experienced engineer who is sympathetic to Test-early and test-driven design. I am familiar with testing jargon such as "Sofware Developer in Test", "mocking", "seams", and such. But am also an engineer that works at a company that does not do significant testing, and as such when I try to use TDD concepts I find myself facing challenges such as determining what code to test first, and how to approach it.

If you fit that profile, this book is great. It discusses many mid-level concepts such as the nuts and bolts of how to take some specific systems and get them under tests. It talks in specifics about how to approach bringing legacy Javascript under test. It delves into more practical examples than many of the canonical texts in the field (such as "XUnit Test Patterns", "Refactoring", "Working Effectively with Legacy Code"), and so contains more "street smarts" than those books.

But I don't feel like this text is a good introduction to testing as a concept - it assumes a working knowledge of the field. It also won't serve as a good refernce to an expert test-driven development engineer. But if you're in the middle, and need a text to get you to a journeyman level - this is a fine place to look.
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