Exploratory Testing
When to Use
- Planning exploratory testing sessions
- Creating test charters for focused exploration
- Applying testing heuristics to discover issues
- Documenting findings and bugs systematically
- Supplementing scripted testing with exploration
- Testing new features without detailed specifications
- Learning about a system's behavior
When NOT to Use
- When comprehensive scripted test cases already exist and just need execution
- For regression testing that requires exact reproducibility
- When compliance requires documented test scripts upfront
- For performance or load testing (use specialized tools)
Test Charter Creation
A charter defines the mission for an exploratory testing session.
Charter Format
**Charter:** [Brief mission statement]
**Target:** [Area/feature to explore]
**Resources:** [Tools, data, environments needed]
**Time Box:** [Duration, typically 60-90 minutes]
**Explore:** [What to investigate]
**With:** [What resources/techniques to use]
**To discover:** [What information to find]
Charter Template (Explore-With-Discover)
**Explore** [target area]
**With** [resources, techniques, data]
**To discover** [information, risks, behaviors]
Example Charters
Feature Exploration
**Charter:** Investigate user authentication flow edge cases
**Explore** the login and password reset functionality
**With** boundary values, special characters, and concurrent sessions
**To discover** security vulnerabilities and error handling gaps
Integration Exploration
**Charter:** Test payment gateway integration resilience
**Explore** the checkout process with payment provider
**With** network interruptions, timeout scenarios, and invalid responses
**To discover** failure modes and recovery behavior
Usability Exploration
**Charter:** Evaluate mobile responsiveness of dashboard
**Explore** the analytics dashboard on various devices
**With** different screen sizes, orientations, and touch interactions
**To discover** layout issues and usability problems
Session-Based Test Management (SBTM)
Organize exploratory testing into focused, timeboxed sessions.
Session Structure
| Phase |
Duration |
Activities |
| Setup |
5-10 min |
Review charter, prepare environment |
| Exploration |
45-60 min |
Active testing, note-taking |
| Debrief |
10-15 min |
Document findings, update notes |
Session Sheet Template
## Session Report
**Session ID:** ET-[YYYY-MM-DD]-[number]
**Tester:** [Name]
**Date:** [Date]
**Duration:** [Actual time spent]
### Charter
[The charter for this session]
### Areas Covered
- [Area 1 explored]
- [Area 2 explored]
### Testing Notes
[Chronological notes during testing]
### Findings
| ID | Type | Severity | Description |
|----|------|----------|-------------|
| F1 | Bug | High | [Description] |
| F2 | Question | Medium | [Description] |
### Session Metrics
- **Charter vs Opportunity:** [% on charter vs % following opportunities]
- **Test Design & Execution:** [% designing vs % executing]
- **Bug Investigation:** [% spent investigating bugs]
### Follow-up
- [ ] [Action items]
- [ ] [New charter ideas]
Testing Heuristics
Mental models and mnemonics to guide exploration.
SFDPOT (San Francisco Depot)
Quality characteristics to explore:
| Heuristic |
Questions to Ask |
| Structure |
What is it made of? Components, code, files, databases? |
| Function |
What does it do? Features, operations, user workflows? |
| Data |
What data does it process? Inputs, outputs, transformations? |
| Platform |
What does it depend on? OS, browser, hardware, network? |
| Operations |
How will it be used? User scenarios, deployment, maintenance? |
| Time |
How does time affect it? Timeouts, scheduling, performance over time? |
FEW HICCUPS
Input testing heuristics:
| Heuristic |
Test Ideas |
| Format |
Different formats (JSON, XML, CSV) |
| Empty |
Null, empty string, zero, blank |
| Whitespace |
Spaces, tabs, newlines, leading/trailing |
| Huge |
Maximum values, large files, long strings |
| Invalid |
Wrong types, malformed data, out of range |
| Correct |
Valid, expected, happy path |
| Changed |
Modified mid-operation, concurrent updates |
| Unique |
Special characters, Unicode, emojis |
| Paired |
Start/end, open/close, parent/child |
| Sequence |
Order dependencies, repetition, timing |
CRUD Operations
For data-centric testing:
| Operation |
Test Considerations |
| Create |
Valid/invalid creation, duplicates, required fields |
| Read |
Exists/not exists, permissions, filtering |
| Update |
Partial updates, concurrent edits, validation |
| Delete |
Cascade effects, soft vs hard delete, recovery |
Goldilocks Heuristic
Test with values that are:
- Too small - Minimum, zero, negative, empty
- Just right - Typical, expected values
- Too large - Maximum, overflow, boundary+1
FAILURE Heuristic
Look for failures in:
| Area |
Examples |
| Functionality |
Features not working as expected |
| Accessibility |
Usability issues, screen reader problems |
| Internationalization |
Language, locale, character encoding |
| Localization |
Date formats, currencies, translations |
| Usability |
Confusing UI, poor error messages |
| Reliability |
Crashes, data loss, inconsistent behavior |
| Efficiency |
Slow performance, resource consumption |
Touring Heuristics
Explore the application like a tourist:
| Tour |
Focus |
| Guidebook Tour |
Follow the documentation/help |
| Money Tour |
Test the features customers pay for |
| Landmark Tour |
Navigate between major features |
| Intellectual Tour |
Test the most complex features |
| FedEx Tour |
Follow data through the system |
| Garbage Collector Tour |
Find the least-used features |
| Bad Neighborhood Tour |
Focus on historically buggy areas |
| Antisocial Tour |
Do the opposite of intended use |
| Obsessive-Compulsive Tour |
Repeat actions, enter same data twice |
Finding Documentation
Finding Classification
| Type |
Description |
| Bug |
Defect that needs fixing |
| Question |
Needs clarification from stakeholders |
| Observation |
Interesting behavior, may or may not be a problem |
| Enhancement |
Improvement suggestion |
| Risk |
Potential problem area needing attention |
Bug Report Template
## Bug Report
**ID:** BUG-[number]
**Title:** [Short descriptive title]
**Severity:** [Critical/High/Medium/Low]
**Found During:** Session [ET-YYYY-MM-DD-number]
### Summary
[One paragraph description]
### Steps to Reproduce
1. [Step 1]
2. [Step 2]
3. [Step 3]
### Expected Result
[What should happen]
### Actual Result
[What actually happened]
### Environment
- OS: [Operating system]
- Browser: [Browser and version]
- App Version: [Version number]
### Evidence
- Screenshots: [Links]
- Logs: [Relevant log entries]
- Video: [Link if applicable]
### Notes
[Additional context, workarounds, related issues]
Severity Guidelines
| Level |
Criteria |
Examples |
| Critical |
System unusable, data loss, security breach |
Crash, data corruption, auth bypass |
| High |
Major feature broken, no workaround |
Cannot complete core workflow |
| Medium |
Feature impaired, workaround exists |
Minor functionality issues |
| Low |
Cosmetic, minor inconvenience |
Typos, alignment issues |
Session Debrief Questions
After each session, answer:
- What did you test? - Summarize areas covered
- What did you find? - List bugs, questions, observations
- What didn't you test? - Identify gaps and risks
- What puzzled you? - Note confusion or uncertainty
- What would you do next? - Suggest follow-up sessions
Output Format
When facilitating exploratory testing, provide:
## Exploratory Testing Plan
### Context
[What we're testing and why]
### Charters
#### Charter 1: [Title]
**Explore** [target]
**With** [resources]
**To discover** [information]
**Suggested Heuristics:** [SFDPOT, FEW HICCUPS, etc.]
**Time Box:** [Duration]
### Recommended Approach
1. [Step 1]
2. [Step 2]
3. [Step 3]
### Session Sheet
[Template for documenting the session]
### Heuristics Reference
[Relevant heuristics for this exploration]
Best Practices
- Stay focused but flexible - Follow the charter, but investigate interesting findings
- Take detailed notes - Document everything during the session
- Use varied heuristics - Combine multiple approaches for better coverage
- Debrief immediately - Document findings while memory is fresh
- Share knowledge - Pair with others, share interesting discoveries
- Track coverage - Note what was and wasn't tested
- Timebox strictly - Respect session boundaries, create new charters for tangents
- Balance charter vs opportunity - Aim for 80% charter, 20% opportunities
1---2name: exploratory-testing3description: Guide exploratory testing sessions including charter creation, session-based testing, heuristics application, and finding documentation. Use when planning exploratory testing, conducting test sessions, or documenting discoveries.4---56# Exploratory Testing78## When to Use910- Planning exploratory testing sessions11- Creating test charters for focused exploration12- Applying testing heuristics to discover issues13- Documenting findings and bugs systematically14- Supplementing scripted testing with exploration15- Testing new features without detailed specifications16- Learning about a system's behavior1718## When NOT to Use1920- When comprehensive scripted test cases already exist and just need execution21- For regression testing that requires exact reproducibility22- When compliance requires documented test scripts upfront23- For performance or load testing (use specialized tools)2425## Test Charter Creation2627A charter defines the mission for an exploratory testing session.2829### Charter Format3031```markdown32**Charter:** [Brief mission statement]3334**Target:** [Area/feature to explore]35**Resources:** [Tools, data, environments needed]36**Time Box:** [Duration, typically 60-90 minutes]3738**Explore:** [What to investigate]39**With:** [What resources/techniques to use]40**To discover:** [What information to find]41```4243### Charter Template (Explore-With-Discover)4445```markdown46**Explore** [target area]47**With** [resources, techniques, data]48**To discover** [information, risks, behaviors]49```5051### Example Charters5253#### Feature Exploration5455```markdown56**Charter:** Investigate user authentication flow edge cases5758**Explore** the login and password reset functionality59**With** boundary values, special characters, and concurrent sessions60**To discover** security vulnerabilities and error handling gaps61```6263#### Integration Exploration6465```markdown66**Charter:** Test payment gateway integration resilience6768**Explore** the checkout process with payment provider69**With** network interruptions, timeout scenarios, and invalid responses70**To discover** failure modes and recovery behavior71```7273#### Usability Exploration7475```markdown76**Charter:** Evaluate mobile responsiveness of dashboard7778**Explore** the analytics dashboard on various devices79**With** different screen sizes, orientations, and touch interactions80**To discover** layout issues and usability problems81```8283## Session-Based Test Management (SBTM)8485Organize exploratory testing into focused, timeboxed sessions.8687### Session Structure8889| Phase | Duration | Activities |90|-------|----------|------------|91| **Setup** | 5-10 min | Review charter, prepare environment |92| **Exploration** | 45-60 min | Active testing, note-taking |93| **Debrief** | 10-15 min | Document findings, update notes |9495### Session Sheet Template9697```markdown98## Session Report99100**Session ID:** ET-[YYYY-MM-DD]-[number]101**Tester:** [Name]102**Date:** [Date]103**Duration:** [Actual time spent]104105### Charter106[The charter for this session]107108### Areas Covered109- [Area 1 explored]110- [Area 2 explored]111112### Testing Notes113[Chronological notes during testing]114115### Findings116| ID | Type | Severity | Description |117|----|------|----------|-------------|118| F1 | Bug | High | [Description] |119| F2 | Question | Medium | [Description] |120121### Session Metrics122- **Charter vs Opportunity:** [% on charter vs % following opportunities]123- **Test Design & Execution:** [% designing vs % executing]124- **Bug Investigation:** [% spent investigating bugs]125126### Follow-up127- [ ] [Action items]128- [ ] [New charter ideas]129```130131## Testing Heuristics132133Mental models and mnemonics to guide exploration.134135### SFDPOT (San Francisco Depot)136137Quality characteristics to explore:138139| Heuristic | Questions to Ask |140|-----------|------------------|141| **S**tructure | What is it made of? Components, code, files, databases? |142| **F**unction | What does it do? Features, operations, user workflows? |143| **D**ata | What data does it process? Inputs, outputs, transformations? |144| **P**latform | What does it depend on? OS, browser, hardware, network? |145| **O**perations | How will it be used? User scenarios, deployment, maintenance? |146| **T**ime | How does time affect it? Timeouts, scheduling, performance over time? |147148### FEW HICCUPS149150Input testing heuristics:151152| Heuristic | Test Ideas |153|-----------|-----------|154| **F**ormat | Different formats (JSON, XML, CSV) |155| **E**mpty | Null, empty string, zero, blank |156| **W**hitespace | Spaces, tabs, newlines, leading/trailing |157| **H**uge | Maximum values, large files, long strings |158| **I**nvalid | Wrong types, malformed data, out of range |159| **C**orrect | Valid, expected, happy path |160| **C**hanged | Modified mid-operation, concurrent updates |161| **U**nique | Special characters, Unicode, emojis |162| **P**aired | Start/end, open/close, parent/child |163| **S**equence | Order dependencies, repetition, timing |164165### CRUD Operations166167For data-centric testing:168169| Operation | Test Considerations |170|-----------|-------------------|171| **C**reate | Valid/invalid creation, duplicates, required fields |172| **R**ead | Exists/not exists, permissions, filtering |173| **U**pdate | Partial updates, concurrent edits, validation |174| **D**elete | Cascade effects, soft vs hard delete, recovery |175176### Goldilocks Heuristic177178Test with values that are:179180- **Too small** - Minimum, zero, negative, empty181- **Just right** - Typical, expected values182- **Too large** - Maximum, overflow, boundary+1183184### FAILURE Heuristic185186Look for failures in:187188| Area | Examples |189|------|----------|190| **F**unctionality | Features not working as expected |191| **A**ccessibility | Usability issues, screen reader problems |192| **I**nternationalization | Language, locale, character encoding |193| **L**ocalization | Date formats, currencies, translations |194| **U**sability | Confusing UI, poor error messages |195| **R**eliability | Crashes, data loss, inconsistent behavior |196| **E**fficiency | Slow performance, resource consumption |197198### Touring Heuristics199200Explore the application like a tourist:201202| Tour | Focus |203|------|-------|204| **Guidebook Tour** | Follow the documentation/help |205| **Money Tour** | Test the features customers pay for |206| **Landmark Tour** | Navigate between major features |207| **Intellectual Tour** | Test the most complex features |208| **FedEx Tour** | Follow data through the system |209| **Garbage Collector Tour** | Find the least-used features |210| **Bad Neighborhood Tour** | Focus on historically buggy areas |211| **Antisocial Tour** | Do the opposite of intended use |212| **Obsessive-Compulsive Tour** | Repeat actions, enter same data twice |213214## Finding Documentation215216### Finding Classification217218| Type | Description |219|------|-------------|220| **Bug** | Defect that needs fixing |221| **Question** | Needs clarification from stakeholders |222| **Observation** | Interesting behavior, may or may not be a problem |223| **Enhancement** | Improvement suggestion |224| **Risk** | Potential problem area needing attention |225226### Bug Report Template227228```markdown229## Bug Report230231**ID:** BUG-[number]232**Title:** [Short descriptive title]233**Severity:** [Critical/High/Medium/Low]234**Found During:** Session [ET-YYYY-MM-DD-number]235236### Summary237[One paragraph description]238239### Steps to Reproduce2401. [Step 1]2412. [Step 2]2423. [Step 3]243244### Expected Result245[What should happen]246247### Actual Result248[What actually happened]249250### Environment251- OS: [Operating system]252- Browser: [Browser and version]253- App Version: [Version number]254255### Evidence256- Screenshots: [Links]257- Logs: [Relevant log entries]258- Video: [Link if applicable]259260### Notes261[Additional context, workarounds, related issues]262```263264### Severity Guidelines265266| Level | Criteria | Examples |267|-------|----------|----------|268| **Critical** | System unusable, data loss, security breach | Crash, data corruption, auth bypass |269| **High** | Major feature broken, no workaround | Cannot complete core workflow |270| **Medium** | Feature impaired, workaround exists | Minor functionality issues |271| **Low** | Cosmetic, minor inconvenience | Typos, alignment issues |272273## Session Debrief Questions274275After each session, answer:2762771. **What did you test?** - Summarize areas covered2782. **What did you find?** - List bugs, questions, observations2793. **What didn't you test?** - Identify gaps and risks2804. **What puzzled you?** - Note confusion or uncertainty2815. **What would you do next?** - Suggest follow-up sessions282283## Output Format284285When facilitating exploratory testing, provide:286287```markdown288## Exploratory Testing Plan289290### Context291[What we're testing and why]292293### Charters294295#### Charter 1: [Title]296**Explore** [target]297**With** [resources]298**To discover** [information]299300**Suggested Heuristics:** [SFDPOT, FEW HICCUPS, etc.]301**Time Box:** [Duration]302303### Recommended Approach3041. [Step 1]3052. [Step 2]3063. [Step 3]307308### Session Sheet309[Template for documenting the session]310311### Heuristics Reference312[Relevant heuristics for this exploration]313```314315## Best Practices3163171. **Stay focused but flexible** - Follow the charter, but investigate interesting findings3182. **Take detailed notes** - Document everything during the session3193. **Use varied heuristics** - Combine multiple approaches for better coverage3204. **Debrief immediately** - Document findings while memory is fresh3215. **Share knowledge** - Pair with others, share interesting discoveries3226. **Track coverage** - Note what was and wasn't tested3237. **Timebox strictly** - Respect session boundaries, create new charters for tangents3248. **Balance charter vs opportunity** - Aim for 80% charter, 20% opportunities