Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Channels ▼


Pragmatic Software Testing

Adam can be contacted at [email protected].

Pragmatic Software Testing: Becoming an Effective and Efficient Test Professional
Rex Black
Wiley, 2007
366 pps, $50.00
ISBN-10: 0470127902

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.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.