Exploratory Software Testing Book Review
Testing software requires a tenacious, methodical attitude toward looking for proverbial needles in binary haystacks. Test designers enjoy their craft by discovering bugs the same way a disciplined hunter identifies tracks of their targets. Books on the subject typically focus on the engineering aspects of testing, but Exploratory Software Testing provides a unique perspective on skillful software quality assurance. Read on for more.
I have read many books on software testing and quality assurance, though most of these focused on specific technologies and strict adherence to process. Author James Whittaker takes a refreshing essay-style approach to test design and execution. Rather than provide NUnit, JUnit or Rspec code listings, the author opted for a deeper discussion of what constitutes a winning software testing practice. These essays cover the spectrum from establishing the case for exploratory software testing to the future of testing in general. Mostly written while the author was a Microsoft employee, references to Microsoft products are made to stress a point. Now on the Google payroll, there are also a few brief references to Google (although these are from an outsider's perspective, as the comments were made before he was employed by the company).
The first chapter, a brief ten pages, establishes the case for software quality followed by another ten page chapter on the case for manual testing. These chapters establish the already known state of software testing, from the ideal theoretical objectives to the real-world headaches and frustrations associated with it. The next two chapters on exploratory software testing in the small and large are where the book gets into the heart of the matter. Suggestions on testing user input, state, code paths and taking software "tours". Tours decompose software into its essential parts and segment the tests around its "districts". The book describes several of these district tour metaphors, ranging from the 'historical' to 'entertainment' districts. While the metaphors are a bit stretched for my imagination, the district idea does help compartmentalize the specific mindsets required to seek out problems associated with software design. Chapter 5 on hybrid exploratory testing techniques at the heart of the book explains the author's methodology, applying the district tours concept to the testing process. Tour types span from 'Money' and 'Obsessive-Compulsive' to 'Back Alley' and 'Rained-Out'. The next chapter puts these concepts into practice by applying them to real-world (again, Microsoft-centric) application scenarios that include Windows Mobile Devices and the Windows Media Player. Chapter 7 include the '5 pain points of software testing' (aimlessness, repetitiveness, transiency, monotony and memorylessness). The final chapter posits the future of software testing with some obvious and not-so-obvious conclusions. Three appendixes are predominantly reprints of the author's past blog posts the help reiterate the testing ideas presented in the book.
Each chapter concludes with thought-provoking exercises that challenge readers to think about their software quality experiences and consider incorporating the author's advice to rethink the outcomes.
The author's cordial writing style, friendly metaphors and infectious passion for the software testing profession add a great deal to the book's value. Developers and testers alike will be nodding their heads, affirming the valuable assertions made in each chapter. The only strike against the book is its nearly $40 cover price. Once the blog reprint appendixes are subtracted from the page count, that's just under 150 pages. I acknowledge that the publisher has to offset the smaller audience to justify the production costs, but this will scare off the audience who would benefit from the book's advice the most. Price notwithstanding, software testers and developers alike should at the very least consider obtaining this book for the refined pearls of wisdom Mr. Whittaker has to offer.

Title: Exploratory Software Testing: Tips, Tricks, Tours, And Techniques To Guide Test Design
Authors: James A. Whittaker
Publisher: Addison-Wesley
ISBN: 978-0-321-63641-6
Pages: 256
Price: $39.99 US

