Software is full of surprises. No matter how careful or skilled you are, when you create software it can behave differently than you intended. Exploratory testing mitigates those risks.
Part 1 introduces the core, essential skills of a master explorer. You’ll learn to craft charters to guide your exploration, to observe what’s really happening (hint: it’s harder than it sounds), to identify interesting variations, and to determine what expected behavior should be when exercising software in unexpected ways.
Part 2 builds on that foundation. You’ll learn how to explore by varying interactions, sequences, data, timing, and configurations. Along the way you’ll see how to incorporate analysis techniques like state modeling, data modeling, and defining context diagrams into your explorer’s arsenal.
Part 3 brings the techniques back into the context of a software project. You’ll apply the skills and techniques in a variety of contexts and integrate exploration into the development cycle from the very beginning.
You can apply the techniques in this book to any kind of software. Whether you work on embedded systems, Web applications, desktop applications, APIs, or something else, you’ll find this book contains a wealth of concrete and practical advice about exploring your software to discover its capabilities, limitations, and risks.