Skip to content
Back to skills

Exploratory Testing Techniques

ASecurity

This skill should be used when the user asks to "do some exploratory testing", "write a test charter", "explore this feature for bugs", "run a testing session", or needs an unscripted, human-judgment-driven approach to finding bugs in an ambiguous or newly-built feature that isn't well-specified enough for scripted automation yet. Use for structured, charter-driven manual investigation — not for writing automated Playwright/unit tests (see e2e-testing, test-driven-development).

  • 2 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added October 16, 2026
developmentgotestingapidocumentation

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 16, 2026

npx -y skills add shennawardana23/skillme --skill exploratory-testing-techniques --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Exploratory Testing Techniques?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Exploratory Testing Techniques
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/shennawardana23-exploratory-testing-techniques/badge)](https://www.skillsdirectory.com/skills/shennawardana23-exploratory-testing-techniques)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: exploratory-testing-techniques
description: This skill should be used when the user asks to "do some exploratory testing", "write a test charter", "explore this feature for bugs", "run a testing session", or needs an unscripted, human-judgment-driven approach to finding bugs in an ambiguous or newly-built feature that isn't well-specified enough for scripted automation yet. Use for structured, charter-driven manual investigation — not for writing automated Playwright/unit tests (see e2e-testing, test-driven-development).
license: Apache-2.0
metadata:
  version: "0.1.0"
---

# Exploratory Testing Techniques

Exploratory testing (ET), as defined by James Bach and Michael Bolton's
Rapid Software Testing methodology, is simultaneous learning, test design,
and test execution — the tester designs the next test based on what the
last one revealed, rather than following a pre-written script. It is a
disciplined skill, not "just clicking around": the discipline comes from
charters, time-boxing, and oracles, not from a script.

## Session-Based Test Management (SBTM)

Structure exploration so its value is traceable, per Jonathan Bach's
Session-Based Test Management:

1. **Write a charter** before the session starts:
   `Explore <area> with <resources/tools> to discover <information>.`
   Example: "Explore the discount-stacking checkout flow with expired and
   near-expiry promo codes to discover incorrect price calculations."
2. **Time-box the session** — 60-120 minutes is typical. Longer sessions
   lose focus; shorter ones don't give exploration room to follow leads.
3. **Explore and take notes continuously** — not just when you find a bug.
   Note what you tried, what you expected, what happened, and anything
   that felt off but wasn't clearly wrong yet.
4. **Log bugs immediately**, with repro steps, while the state is still in
   front of you — see `bug-triage-and-severity-classification` for what
   happens to the report next.
5. **Write a session report / debrief**: charter, session duration, % of
   time on-charter vs. opportunity testing (following an unplanned but
   promising lead), bugs found, issues/questions raised, areas still
   uncovered. A session without a report is testing debt — the value of
   ET is in what's traceable afterward, not just in the tester's memory.

## Oracles: how you judge "is this actually wrong"

Without a full spec, use Michael Bolton's HICCUPPS(F) heuristic to decide
whether an observed behavior is a bug:

- **H**istory — does it behave differently than it used to?
- **I**mage — does it embarrass the company/product's reputation?
- **C**omparable products — do similar products/features behave
  differently in a way that suggests this is wrong?
- **C**laims — does it contradict documentation, specs, or marketing
  claims?
- **U**ser expectations — would a reasonable user be surprised?
- **P**roduct — is it internally consistent with the rest of the product?
- **P**urpose — does it defeat the purpose the feature was built for?
- **S**tatutes — does it violate a law/regulation (e.g. accessibility,
  data privacy)?
- **F**amiliar problems — does it resemble a known bug pattern/class?

## Whittaker's Tours — concrete charter starting points

James Whittaker's "tours" (from *Exploratory Software Testing* and *How
Google Tests Software*) are named exploration angles to draw charters from
when you don't know where to start:

- **Guidebook Tour** — follow the documented/happy-path user journey
  exactly as a manual would describe it.
- **Money Tour** — exercise only the features that generate revenue or
  that the business cares most about (for a booking platform: the actual
  reservation and payment path).
- **Landmark Tour** — visit every major screen/feature once, breadth over
  depth, to map what exists.
- **FedEx Tour** — follow a piece of data through the entire system from
  entry to its final destination (e.g., trace a single reservation from
  booking-engine submission through to PMS record).
- **Back Alley Tour** — deliberately visit the least-used, least-polished
  corners of the product — old settings pages, rarely-touched admin
  screens.
- **Obsessive-Compulsive Tour** — repeat the same action many times, or in
  rapid succession, or with tiny variations, looking for state corruption.

Pick two or three tours relevant to the feature under test and turn each
into a charter rather than trying to run all of them.

## Gotchas

- **Undirected clicking is not exploratory testing.** ET without a charter
  and without notes is indistinguishable from random poking — it produces
  no traceable record of what was and wasn't covered, and can't be
  defended in a retro or audit.
- **A session report is the deliverable, not the bug count.** A
  zero-bug-found session with a clear report ("covered X, Y, Z, found
  nothing wrong") is valuable evidence of coverage; a session with bugs
  found but no report is not reproducible by anyone else.
- **Oracles prevent "looks fine to me" false negatives.** Without an
  explicit heuristic like HICCUPPS, testers tend to only flag things that
  crash or throw — HICCUPPS deliberately surfaces "technically works but
  violates user expectations" issues that scripted assertions miss.
- **Exploratory testing complements automation, it doesn't replace it.**
  Once ET reveals a concrete bug or a well-defined behavior, that behavior
  becomes a candidate for a permanent scripted regression test (see
  `test-driven-development` / `e2e-testing`) — ET's job is finding the
  unknown unknowns, not re-verifying the same known behavior every release.

## Real-world grounding

Session-Based Test Management was created by Jonathan Bach (published as
"Session-Based Test Management," 2000) as a way to make exploratory testing
manageable and reportable within James Bach and Michael Bolton's broader
Rapid Software Testing methodology. James Whittaker's tours heuristic
originates from his book *Exploratory Software Testing* (2009) and is
described in detail in *How Google Tests Software* (2012), documenting how
Google's own test teams used named tours to structure exploratory sessions
at scale.

Files in this skill

  • SKILL.md6.1 KB
  • evals/evals.json3.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.