Exploratory Software Testing: Tips, Tricks, Tours, and Techniques to Guide Test Design
In Exploratory Software Testing, renowned software testing expert James Whittaker reveals the real causes of today's most serious, well-hidden software bugs—and introduces powerful new "exploratory" techniques for finding and correcting them.
Drawing on nearly two decades of experience working at the cutting edge of testing with Google, Microsoft, and other top software organizations, Whittaker introduces innovative new processes for manual testing that are repeatable, prescriptive, teachable, and extremely effective. Whittaker defines both in-the-small techniques for individual testers and in-the-large techniques to supercharge test teams. He also introduces a hybrid strategy for injecting exploratory concepts into traditional scripted testing. You'll learn when to use each, and how to use them all successfully.

Review By: Danny Vinson
07/19/2010In his book, Dr. Whittaker sets out to describe a useful, evolved approach to the manual component of software evaluation. Others, such as Cem Kaner and James Bach, have laid the groundwork for a larger definition of exploratory testing as a way to bring some kind of structure to an often ill-defined testing approach. With this book, the intention doesn't seem to be to provide any genre-sweeping definition; instead, it’s to give people involved in manual and hybrid testing groups a powerful metaphor to provide more order and durability to the exploratory testing approach.
The heart of this book, aside from the very useful sections on testing from scenarios, is the idea of using different-defined perspectives—the “tours” in this book's subtitle—to apply creative extrapolation to scripted or scenario-based testing. A tour is described as moving through testing with a specific persona in mind, such as how a particular kind of tourist moves through London. How would a guidebook-led tourist move through town? Would he follow the guidebook section by section, never deviating from what's written? Following the scenarios or scripts exactly fits this approach. How, then, would that tourist change behavior if it's a rainy day and the major attractions are closed? Would he stay in the hotel and explore every hallway and back passage? What would a different kind of person, such as a saboteur, do in the same scenario?
Following the sections on how specific tours might behave and how those translate into software testing, Dr. Whittaker provides examples from the first teams to apply the tourism metaphor in production environments, which were written by members of those teams. These are great stories with wonderful insight on the limitations and advantages of this approach and how it worked with their projects. Also included in the appendices are excerpts from two of Dr. Whittaker's Web blogs.
This is an interesting and well-written book likely intended for those comfortable in the testing world. Novices might be a little unfamiliar with some basic aspects of testing presented in this book, but those with more experience can certainly find useful elements throughout. Since it isn't rooted in a specific technology and can be applied to many different kinds of software (or systems for that matter), I think it has the potential to be a useful part of one's testing toolbox for quite a long time. I highly recommend this book to anyone with a little testing experience under their belt. I'll certainly be making use of the tourism metaphor on my next project.
Review By: Noreen Dertinger
07/19/2010James Whittaker is a veteran software testing professional with experience teaching and working for companies like Microsoft and Google. Exploratory Software Testing is the author’s latest contribution to software testing literature. Drawing on nearly twenty years of experience in the testing field, Whittaker explains how to identify important areas to test and how to uncover bugs that might be missed by automated (or manual) testing. The central technique introduced in this book uses "tours" in which the software is decomposed into smaller pieces and testing is developed accordingly. Tours allow testers to organize their thinking and match the features of the software to appropriate test techniques. Whittaker likens the concept of testing tours to the layout of a tourist book one might refer to while visiting a foreign country.
Exploratory Software Testing is a concise guide filled with enough of the detail needed to help software testers and developers develop better test scenarios. Through a combination of tips and examples, Whittaker provides ideas on how to approach issues that may arise in software development. He also allows the reader room to customize the techniques to their own needs and environment. As an experienced tester, I can relate with some of the scenarios James identified.
This book—well-written and easy to follow—is a good reference for entry-level software professionals and experienced practitioners yet targeted to testers and developers. This book should be considered a valuable addition to any bookshelf. I will be sharing my copy of this book with my colleagues and will encourage them to apply the techniques to their testing practices. Yet software testing continues to evolve as a field, and I expect that this book will require updating within a few years, as is the case with many technical books.