Wednesday, March 19, 2008


I get a lot of information from the Internet. Blogs, Google, articles, etc. are all great sources. Sometimes I need more theoretical or in depth coverage of the topic I'm interested in, though. For example, I might want to refresh my ideas on how to divide functional testing, or pattern recognition and consequent test categorization. That's when I find myself reaching for a book.

After an exhaustive search, I have concluded that there are approximately eleventy-million books about software testing.* Many of them are quite good, and some of them really don't offer anything new. But there are two testing books that I couldn't live without. These are two books that I really consider classics:

The Art of Software Testing was first published in 1979, so it's something of an antique in the computer world. It was the first seminal work on software testing and it has aged well. I think in part because it was first, it covers testing from a lot of different angles and really provides a good grounding on what testing is and isn't. This is a book that swings from test management, to graph analysis for coverage, to test bias and how to recognize and overcome it. The biggest lack in the book is that some of the practical applications are done differently now, and there are newer types of testing that the book doesn't cover (TDD being a prominent example). This is a book I turn to for help with testing strategies. Note that I haven't spent much time with the second edition, so I wax rhapsodic about the first edition only!

Testing Extreme Programming is at the opposite end of the spectrum. This is a very tactical book. It spends a lot of time on the things that The Art of Software Testing doesn't cover, like test automation, test-driven development, and the specifics of object-oriented test development. However, there's not a lot of higher-order testing, debugging techniques, or explanation about why or in what situations tests should be developed in certain ways. This is the book I turn to for developer-accessible explanations and for specifics of test automation techniques.

*Disclaimer: I didn't actually count, but we'll just all agree that there are a lot.

No comments:

Post a Comment