| |
| |
Foreword | |
| |
| |
Acknowledgments | |
| |
| |
Preface | |
| |
| |
| |
Establishing Foundations | |
| |
| |
| |
On Testing and Exploration | |
| |
| |
| |
Two Sides of Testing | |
| |
| |
| |
Essential Elements of Exploratory Testing | |
| |
| |
| |
Working in Time-Boxed Sessions | |
| |
| |
| |
Practice Sessions | |
| |
| |
| |
Charter Your Explorations | |
| |
| |
| |
Chartering the Expedition | |
| |
| |
| |
A Simple Charter Template | |
| |
| |
| |
Good Charters | |
| |
| |
| |
Generating Charters | |
| |
| |
| |
The Nightmare Headline Game | |
| |
| |
| |
Planning Charters | |
| |
| |
| |
Practice Sessions | |
| |
| |
| |
Observe the Details | |
| |
| |
| |
But Did You See the Moonwalking Bear? | |
| |
| |
| |
Digging Deeper | |
| |
| |
| |
Testability and Making the Invisible Visible | |
| |
| |
| |
Consoles and Logs | |
| |
| |
| |
Practice Sessions | |
| |
| |
| |
Find Interesting Variations | |
| |
| |
| |
Variables Are Things That Vary | |
| |
| |
| |
Subtle Variables, Big Disasters | |
| |
| |
| |
Identifying Variables | |
| |
| |
| |
Variables! They're Everywhere! | |
| |
| |
| |
Practice Sessions | |
| |
| |
| |
Evaluate Results | |
| |
| |
| |
Never and Always | |
| |
| |
| |
Alternative Resources | |
| |
| |
| |
Approximations | |
| |
| |
| |
Practice Sessions | |
| |
| |
| |
Adding Dimensions | |
| |
| |
| |
Vary Sequences and Interactions | |
| |
| |
| |
Nouns and Verbs | |
| |
| |
| |
Random Navigation | |
| |
| |
| |
Personas | |
| |
| |
| |
Practice Sessions | |
| |
| |
| |
Explore Entities and Their Relationships | |
| |
| |
| |
Recognizing Entities, Attributes, and Dependencies | |
| |
| |
| |
CRUD: Create, Read, Update, Delete | |
| |
| |
| |
Following the Data | |
| |
| |
| |
Practice Sessions | |
| |
| |
| |
Discover States and Transitions | |
| |
| |
| |
Recognizing States and Events | |
| |
| |
| |
Diagramming a State Model | |
| |
| |
| |
Exploring with State Models | |
| |
| |
| |
Changing the Representation: State Tables | |
| |
| |
| |
Practice Sessions | |
| |
| |
| |
Explore the Ecosystem | |
| |
| |
| |
Diagramming the Ecosystem | |
| |
| |
| |
Trust Boundaries | |
| |
| |
| |
What If? | |
| |
| |
| |
Follow the Data | |
| |
| |
| |
Practice Sessions | |
| |
| |
| |
Putting it in Context | |
| |
| |
| |
Explore When There Is No User Interface | |
| |
| |
| |
Exploring an API | |
| |
| |
| |
Exploring a Programming Language | |
| |
| |
| |
Exploring a Web Service | |
| |
| |
| |
Characterizing Bugs | |
| |
| |
| |
Practice Sessions | |
| |
| |
| |
Explore an Existing System | |
| |
| |
| |
Starting with a Recon Session | |
| |
| |
| |
Sharing Observations | |
| |
| |
| |
Interviewing Stakeholders to Gather Questions | |
| |
| |
| |
Selecting Techniques | |
| |
| |
| |
Recording Your Findings | |
| |
| |
| |
What About the Dreaded Unreproducible Bugs? | |
| |
| |
| |
Practice Sessions | |
| |
| |
| |
Explore Requirements | |
| |
| |
| |
Getting into the Requirements Meeting | |
| |
| |
| |
In the Requirements Meeting | |
| |
| |
| |
Charter During Requirements Discussions | |
| |
| |
| |
Active Reading | |
| |
| |
| |
Practice Sessions | |
| |
| |
| |
Integrate Exploration Throughout | |
| |
| |
| |
Exploring as Part of Your Test Strategy | |
| |
| |
| |
Paired Exploration | |
| |
| |
| |
Discovering Systemic Sources of Problems | |
| |
| |
| |
Estimating Exploration | |
| |
| |
| |
How to Tell When You Have Explored Enough | |
| |
| |
| |
Debriefing Stakeholders | |
| |
| |
| |
Capturing Useful Nuggets of Wisdom | |
| |
| |
| |
Practice Sessions | |
| |
| |
| |
Interviewing for Exploratory Testing Skills | |
| |
| |
| |
Paired Exploratory Testing as Part of an Interview | |
| |
| |
| |
Assessing the Candidates | |
| |
| |
| |
Test Heuristics Cheat Sheet | |
| |
| |
| |
General Heuristics | |
| |
| |
| |
Web Heuristics | |
| |
| |
Bibliography | |
| |
| |
Index | |