Pragmatic Software Testing: Becoming an Effective and Efficient Test Professional
366 pps, $50.00
There are a number of philosophies that drive testers these days. Do you test based upon a catalog of risks, automated everything in unit tests, employ a model? In the risk-based camp, few are authors are more influential or prolific as Rex Black. In his new book, Pragmatic Software Testing: Becoming an Effective and Efficient Test Professional, Black explains his approach to risk-based testing and the techniques needed to accomplish it.
Pragmatic Software Testing can be broken into two parts; Strategy and Execution. The first part includes sections on "Goals, Strategies, and Tactics" and "Risk-Based Testing". Included in the Risk-Based Testing section is an introduction a possible catalog of risks to your product and briefly describes then. Included in this list are such things as Data Quality, Localization, Security and Documentation in addition to Functionality. Each topic has both an explanation of the risk and a couple examples. Given the introductory nature of the book, the breadth of coverage makes up for lack of depth as some topic are worthy of their own book. These risks are followed up with a method to weight these risks appropriately in their project's context. For new testers who do not yet have the trained intuition to do this assessment automatically, this will be of great use.
The remainder of the book contains discusses "Static Testing", "Behavioral Testing" and "Structural Testing". By far, the largest of these three sections is Behavioral Testing and covers equivalence classing, use cases, decision tables, state transition diagrams, domain testing and orthogonal arrays. Given the current politics of the testing community, it was refreshing to see the chapter on reactive testing (a.k.a. "exploratory testing").
A common pattern in introductory testing books is to introduce a product and apply the showcased techniques against it. This book continues this pattern with each chapter in the Static, Behavioral and Structural Testing sections being mirrored with an exercise chapter about an Internet kiosk product, complete with space to put your answers and a solution by the author. My one complained about the exercises is that too often the page layout is such that you see the solution right under the exercise setup. I would have put it on a different page to prevent readers from being accidentally influenced by it.
Risk-based testing is a common methodology, especially with people new to testing as there is an easy line drawn between risk mitigation and testing. I think the array of the techniques presented and the quality of their descriptions makes Pragmatic Software Testing an important addition to the bookshelves of new testers. The inclusion of Reactive Testing and other advanced concepts makes it a worthwhile addition to those with more experience too.