brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
exploratory-testingRun structured exploratory testing sessions using test charters, timeboxing, and heuristics. Use when user says "exploratory testing", "charter-based testing", "explore the app", "unscripted testing", "session-based testing", "find unknown bugs", or needs to test an area without predefined scripts - even if they don't explicitly say "exploratory".
Independent GitHub snapshot · Automated classification · Original documentation governs
Exploratory testing is simultaneous learning, test design, and execution. Based on "Exploratory Software Testing" by Elisabeth Hendrickson and "Explore It!" (same author), this approach replaces rigid test scripts with structured investigation using charters, timeboxes, and heuristics.
The core insight: scripted tests only find bugs you already imagined. Exploratory testing finds the bugs you didn't anticipate - the ones that emerge from real usage patterns, unexpected interactions, and system behaviors that scripted coverage can never reach.
A charter defines the scope and mission of one exploratory session. Format:
Explore [area or feature]
Using [technique, tool, or approach]
To discover [information or risk type]
Examples:
One charter = one session. Keep scope narrow enough to complete in 60-90 minutes.
Sessions should be 60-90 minutes. Beyond 90 minutes, attention degrades and notes become inconsistent.
Structure your timebox:
Use a timer. When time is up, stop even if you're mid-investigation. Log what you found and write a follow-up charter for the remaining thread.
Heuristics are structured prompts that direct attention to known failure patterns. The HICCUPPS heuristics (based on Hendrickson and Cem Kaner) are a reliable starting set:
Apply at least 3 heuristics per session. Different heuristics reveal different bug classes.
Notes should capture three categories:
Example note format:
[Observation] Uploading a 4.9 MB file succeeds in 800ms on 3G emulation.
[Anomaly] Uploading a 5.1 MB file shows no error - just hangs indefinitely.
[Question] Is there a max file size limit enforced server-side? Not mentioned in UI.
Do not triage during the session. Log everything, evaluate afterward.
After the timebox ends, review your notes and classify each anomaly:
| Category | Description |
|---|---|
| Bug | Confirmed unexpected behavior - file for the team |
Write follow-up charters for every Risk item. These become inputs for future sessions.
Share a session note with the team after each session:
Charter: [charter text]
Duration: [actual minutes]
Tester: [your role]
Coverage: [what was explored]
Bugs found: [count and severity]
Risks identified: [count]
Follow-up charters: [count]
Session notes build a coverage record that shows where exploratory effort has been invested.
1. Exploring without a charter Bad: "I'll just click around and see what I find." Good: Write a charter before starting. Aimless exploration wastes time and leaves inconsistent coverage.
2. Ignoring the timebox Bad: Running an open-ended session for 3 hours. Good: 60-90 minutes per session. Longer sessions produce diminishing returns and poor note quality.
3. Triaging bugs during the session Bad: Stopping to file detailed bug reports mid-session. Good: Log anomalies briefly during the session, classify and file after the timebox ends.
4. Using only one heuristic Bad: Always testing with "what does the UI claim" and nothing else. Good: Apply at least 3 different heuristics per session to surface different bug classes.
5. No follow-up charters Bad: Session ends, risks are noted, nothing is scheduled to investigate them. Good: Every Risk item from debrief becomes a charter for the next session.
6. Treating exploratory testing as informal Bad: No notes, no debrief, no session report - "I tested it." Good: Structured notes, timebox discipline, and a session report make exploratory testing auditable and reproducible.