Uncover surprises risks & potentially serious bugs with exploratory testing Rather than designing all tests in advance explorers design & execute small rapid experiments using what they learned from the last little experiment to inform the next Learn essential skills of a master explorer including how to analyze software to discover key points of vulnerability how to design experiments on the fly how to hone your observation skills & how to focus your efforts 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 & 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 & configurations Along the way you'll see how to incorporate analysis techniques like state modeling data modeling & 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 & techniques in a variety of contexts & 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 & practical advice about exploring your software to discover its capabilities limitations & risks