Exploratory testing
Scripted tests only check what someone already thought to write down. The
bugs that reach users live in the gaps: the odd sequence, the pasted input,
the feature interaction nobody spec'd. Exploratory testing is deliberate
learning while testing, structured enough to be accountable and repeatable,
loose enough to chase a hunch the moment it appears.
Method
- Write a charter before you start. State the mission in one sentence:
"Explore checkout with expired and stacked coupons to find pricing
errors." The charter bounds the session and makes it reviewable later,
unlike aimless clicking.
- Timebox the session. Commit to a fixed block, typically 60 to 90
minutes, focused on that one charter. The clock forces prioritization and
keeps a session from sprawling into an unaccountable afternoon.
- Pick a tour to shape the exploration. Follow a theme: a money tour
touches every price and currency path, a data tour pushes values through
create-read-update-delete, an interruption tour kills the network or hits
back mid-flow. Tours turn wandering into coverage.
- Vary inputs deliberately. Attack boundaries and the unexpected: empty,
maximum length, negative, Unicode, emoji, a pasted spreadsheet cell, a
double-clicked submit, the browser back button after payment. Bugs cluster
where inputs were never anticipated.
- Take notes as you go. Record what you did, what you saw, and what you
want to revisit, tagged as bug, question, or idea. Session-based test
management calls this the session sheet; it is the evidence the session
happened and what it covered.
- Capture reproduction the instant you find a bug. Note exact steps,
inputs, and environment while they are fresh, with a screenshot or
recording. A bug you cannot reproduce is a rumor, and memory decays within
minutes of moving on.
- Debrief and convert findings. After the session, review notes with the
team, file the confirmed bugs, and turn each reproducible one into a
scripted regression test so it never returns unnoticed.
Signals
- Could someone read your charter and session notes and understand exactly
what was covered and what was skipped?
- Did the session produce reproducible bug reports, not just a vague "seemed
flaky"?
- Are the confirmed findings on their way to becoming automated regression
tests?
Boundaries
Exploratory testing finds unknown unknowns; it does not replace a regression
suite, which cheaply guards behavior you already understand. Feed its
discoveries into unit-test-design and bdd-scenarios. Its value depends on
tester judgment and domain knowledge, so it resists full automation by
design.
1---2name: exploratory-testing3description: Run structured unscripted testing with charters, tours, and timeboxed sessions to find bugs scripted tests never imagined. Use when probing a new or risky feature for problems no one thought to write a test for.4---56# Exploratory testing78Scripted tests only check what someone already thought to write down. The9bugs that reach users live in the gaps: the odd sequence, the pasted input,10the feature interaction nobody spec'd. Exploratory testing is deliberate11learning while testing, structured enough to be accountable and repeatable,12loose enough to chase a hunch the moment it appears.1314## Method15161. **Write a charter before you start.** State the mission in one sentence:17 "Explore checkout with expired and stacked coupons to find pricing18 errors." The charter bounds the session and makes it reviewable later,19 unlike aimless clicking.202. **Timebox the session.** Commit to a fixed block, typically 60 to 9021 minutes, focused on that one charter. The clock forces prioritization and22 keeps a session from sprawling into an unaccountable afternoon.233. **Pick a tour to shape the exploration.** Follow a theme: a money tour24 touches every price and currency path, a data tour pushes values through25 create-read-update-delete, an interruption tour kills the network or hits26 back mid-flow. Tours turn wandering into coverage.274. **Vary inputs deliberately.** Attack boundaries and the unexpected: empty,28 maximum length, negative, Unicode, emoji, a pasted spreadsheet cell, a29 double-clicked submit, the browser back button after payment. Bugs cluster30 where inputs were never anticipated.315. **Take notes as you go.** Record what you did, what you saw, and what you32 want to revisit, tagged as bug, question, or idea. Session-based test33 management calls this the session sheet; it is the evidence the session34 happened and what it covered.356. **Capture reproduction the instant you find a bug.** Note exact steps,36 inputs, and environment while they are fresh, with a screenshot or37 recording. A bug you cannot reproduce is a rumor, and memory decays within38 minutes of moving on.397. **Debrief and convert findings.** After the session, review notes with the40 team, file the confirmed bugs, and turn each reproducible one into a41 scripted regression test so it never returns unnoticed.4243## Signals4445- Could someone read your charter and session notes and understand exactly46 what was covered and what was skipped?47- Did the session produce reproducible bug reports, not just a vague "seemed48 flaky"?49- Are the confirmed findings on their way to becoming automated regression50 tests?5152## Boundaries5354Exploratory testing finds unknown unknowns; it does not replace a regression55suite, which cheaply guards behavior you already understand. Feed its56discoveries into unit-test-design and bdd-scenarios. Its value depends on57tester judgment and domain knowledge, so it resists full automation by58design.