ET Techniques and Heuristics
Exploratory testing is not unstructured — it employs a rich vocabulary of techniques and heuristics that guide the tester’s investigation. Experienced ET practitioners naturally apply the same underlying principles as formal test design techniques (equivalence partitioning, boundary values, combinatorial coverage) — they simply apply them during execution rather than in a separate design phase [1].
Whittaker’s Tourist Metaphor
James Whittaker’s tourist metaphor provides memorable, actionable guidance for testers. Each “tour” represents a specific testing goal with a distinct exploration strategy [2]:
The Five Districts
mindmap
root((Software<br>Under Test))
Business District
Guidebook Tour
Money Tour
Landmark Tour
Historical District
Bad Neighborhood Tour
Museum Tour
Entertainment District
Obsessive-Compulsive Tour
Couch Potato Tour
Tourist District
Collector's Tour
Supermodel Tour
Hotel District
All-Nighter Tour
TOGOF Tour<br>(Good Old Features)
| District | Focus | Example Tours |
|---|---|---|
| Business District | Features users rely on daily | Guidebook Tour, Money Tour, Landmark Tour |
| Historical District | Legacy code and old features | Bad Neighborhood Tour, Museum Tour |
| Entertainment District | Fun, unusual inputs | Obsessive-Compulsive Tour, Couch Potato Tour |
| Tourist District | First-time user experience | Collector’s Tour, Supermodel Tour |
| Hotel District | Background processes | All-Nighter Tour, TOGOF Tour (Tour Of Good Old Features — verify that existing features still work after changes) |
Selected Tours
| Tour | Strategy | What It Finds |
|---|---|---|
| Guidebook Tour | Follow the user manual exactly | Documentation-code mismatches |
| Money Tour | Test the features that sell the product | Critical feature defects |
| Antisocial Tour | Do everything the software isn’t designed for | Error handling gaps |
| Back Alley Tour | Visit the least popular features | Neglected code defects |
| Couch Potato Tour | Accept all defaults, change nothing | Default configuration issues |
| Obsessive-Compulsive Tour | Repeat the same action with slight variations | State accumulation bugs |
| All-Nighter Tour | Leave the application running overnight | Memory leaks, resource exhaustion |
| Saboteur Tour | Disrupt resources (network, disk, memory) | Resilience failures |
| Collector’s Tour | Try to collect every output the software can produce | Output validation gaps |
| Supermodel Tour | Focus only on the UI, ignore functionality | Visual and layout defects |
Hendrickson’s Heuristics
Elisabeth Hendrickson provides a complementary set of lightweight heuristics for test idea generation [3]:
Charter Template
Every ET session begins with a charter — a brief statement of intent:
Explore [target] using [resources] to discover [information]
Examples:
- Explore the checkout flow using boundary credit card numbers to discover input validation gaps
- Explore the admin dashboard using a slow network connection to discover timeout handling
Core Heuristics
| Heuristic | Technique | What It Tests |
|---|---|---|
| CRUD | Create, Read, Update, Delete every entity | Data lifecycle completeness |
| Goldilocks | Too big, too small, just right | Boundary conditions |
| Follow the Data | Trace data through the entire system | Data flow integrity |
| Interruptions | Cancel, back, timeout mid-operation | State management |
| Soap Opera | Extreme, dramatic user scenarios | Edge case combinations |
| Undo/Redo | Test all reversible operations | State reversal correctness |
The Nightmare Headline Game
A risk-identification technique: ask “What would be the worst headline if this software fails?” and then explore scenarios that could produce that headline [3]. This grounds exploration in business risk rather than technical coverage.
Dynamic Test Design
A key finding from observational studies: experienced testers doing ET naturally apply classical test design techniques, but dynamically during execution rather than in a separate design phase [1]:
| Formal Technique | ET Application |
|---|---|
| Equivalence partitioning | Tester intuitively groups similar inputs during exploration |
| Boundary value analysis | Tester probes edges of observed ranges |
| Combinatorial testing | Tester varies multiple parameters simultaneously |
| State transition testing | Tester explores sequences of actions |
| Error guessing | Tester applies domain knowledge to target likely failures |
This suggests ET and scripted testing share a common cognitive foundation; the difference lies in when and how techniques are deployed, not in the techniques themselves [1].
AI-Assisted Exploration
Early research explores tool support for ET practitioners [4]:
BotExpTest (Discord chatbot) provides:
- Charter management and time alerts
- Bug reporting templates
- Technique knowledge (suggests applicable heuristics)
- Active suggestions during sessions
In a pilot study with 6 professionals, the chatbot contributed to discovering 3 of 13 previously unknown bugs through its suggestions. Future directions include LLM integration for smarter, context-aware test idea generation [4].
AI-assisted ET is nascent but addresses two longstanding challenges: the high skill requirement for testers and the lack of tool support (75% of practitioners have no specific ET tools [5]).
Worked Example: Money Tour on a Shopping App
A concrete example of applying the Money Tour [2] to an e-commerce application:
flowchart TD
Start["Start: Money Tour<br>Focus on revenue-critical features"]
S1["1. Add items to cart<br>Try different quantities, variants"]
S2["2. Apply discount codes<br>Valid, expired, stacked, boundary amounts"]
S3["3. Checkout flow<br>Credit card, PayPal, gift card, split payment"]
S4["4. Order confirmation<br>Email, receipt, inventory update"]
S5["5. Refund/return<br>Partial refund, full refund, exchange"]
Start --> S1 --> S2 --> S3 --> S4 --> S5
S1 -.- N1["Found: quantity overflow<br>allows negative price"]
S3 -.- N2["Found: race condition<br>double-charge on timeout"]
S5 -.- N3["Found: refund exceeds<br>original payment"]
style Start fill:#fff3e0,stroke:#f57c00
style N1 fill:#ffcdd2,stroke:#d32f2f
style N2 fill:#ffcdd2,stroke:#d32f2f
style N3 fill:#ffcdd2,stroke:#d32f2f
The tester follows the money: every path where money changes hands gets explored. Unlike a scripted test that checks “can the user buy item X,” the Money Tour encourages creative variations at each step — stacking discount codes, splitting payments, interrupting checkout mid-transaction.
Choosing the Right Technique
| Situation | Recommended Approach |
|---|---|
| New feature, unfamiliar territory | Tourist metaphor tours [2] |
| Data-heavy application | CRUD + Follow the Data [3] |
| Risk-focused testing | Nightmare Headline Game [3] |
| Regression after changes | Antisocial + Back Alley tours [2] |
| Time-constrained session | Charter with specific heuristics |
| Performance concerns | All-Nighter + Saboteur tours [2] |
References
- J. Itkonen, M. V. Mäntylä, and C. Lassenius, “How do testers do it? An exploratory study on manual testing practices,” in International Symposium on Empirical Software Engineering and Measurement (ESEM), 2009. doi: 10.1109/ESEM.2009.5314240.
- J. A. Whittaker, Exploratory Software Testing: Tips, Tricks, Tours, and Techniques to Guide Test Design. Addison-Wesley, 2009.
- E. Hendrickson, Explore It!: Reduce Risk and Increase Confidence with Exploratory Testing. Pragmatic Bookshelf, 2013.
- R. Copche, Y. Duarte, V. Durelli, M. Eler, and A. Endo, “Can a Chatbot Support Exploratory Software Testing? Preliminary Results,” in International Conference on Enterprise Information Systems (ICEIS), 2024, pp. 159–166. doi: 10.5220/0012572400003690.
- D. Pfahl, H. Yin, M. V. Mäntylä, and J. Münch, “How is exploratory testing used? A state-of-the-practice survey,” in ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM), 2014, pp. 1–10. doi: 10.1145/2652524.2652531.
Disclaimer: AI is used for text summarization, polishing and explaining. Authors have verified all facts and claims. In case of an error, feel free to file an issue.