Quality Code Software Testing Principles, Practices, and Patterns

  • ISBN13:


  • ISBN10:


  • Edition: 1st
  • Format: Paperback
  • Copyright: 2013-12-04
  • Publisher: Addison-Wesley Professional
  • Purchase Benefits
  • Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $44.99 Save up to $1.80
  • eBook
    Add to Cart


Supplemental Materials

What is included with this book?

  • The eBook copy of this book is not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.


Test-driven, test-first, and test-early development practices are helping thousands of software development organizations improve their software. Now, in Quality Code: Software Testing Principles, Practices, and Patterns, Stephen Vance builds on all that’s been learned about test-driven development, helping you achieve unprecedented levels of first-time quality. Using real-world code examples, this guide introduces patterns, principles, and more than two dozen detailed techniques for testing any software system more fully, effectively, and painlessly. Vance presents a conceptual framework to help you focus your efforts and design recommendations for improving testability across the software lifecycle, and also provides hands-on guidance to simplify testing of the full spectrum of code constructs. You’ll learn how to choose the best testing techniques for every situation, from the most common scenarios to threading. Two complete case studies put it all together, walking you through testing a brand-new Java application and an untested “legacy” JavaScript jQuery plugin. Whether you’re developing cutting-edge code for a new start-up, or maintaining an unruly old system, this guide will help you deliver exactly what you need: quality code.


• Simplify unit testing of all your code—and improve integration and system testing

• Delineate intent and implementation to promote more reliable and scalable testing

• Overcome confusion and misunderstandings about the mechanics of writing tests

• Test “side effects,” behavioral characteristics, and contextual constraints

• Understand subtle interactions between design and testability—and make them work for, not against, you

• Discover core principles that guide your key testing decisions

• Explore testing getters/setters, string handling, encapsulation, override variations, visibility, singleton patterns, error conditions, and more

• Reproduce and test complex race conditions deterministically


Author Biography

Stephen Vance has been a professional software developer, consultant, manager, mentor and instructor since 1992. He has practiced and taught testing techniques since 1997. He has worked across a broad range of industries for companies ranging from startups to Fortune 100. He has spoken at several conferences in the United States and Europe. Stephen lives with his wife near Boston, MA.

Table of Contents

1. Engineering, Craftsmanship, and First-time Quality


Part I: Principles and Practices of Testing

2. Where Do I Start?

3. Looking at Code

4. Good Design and Design for Testability

5. Principles


Part II: Testing and Testability Patterns

6. The Basics

7. String Handling

8. Encapsulation and Override Variations

9. Adjusting Visibility

10. Testing Pattern Implementations

11. Error Condition Verification

12. Using Existing Facilities

13. Parallelism


Part III: Worked Examples

Rewards Program

Write a Review