Back to Blog
On this page5 sections

// tutorial

A one-hour exploratory test session template

qa.codesqa.codes · 13 June 2026 · 7 min read
BeginnerManual QA
manual-testingexploratory-testingtemplatetest-charter

Exploratory testing fails when it's unstructured wandering. Here's the one-hour, charter-driven template I use to make it focused, repeatable, and easy to report.

part ofManual QA that still matters

The complaint I hear about exploratory testing is always the same: "it's just clicking around." It can be — if you skip the part that makes it work. A good session is time-boxed, aimed at a single charter, and produces notes someone else can read. This is the template I run, broken into the minutes I actually spend on each part.

The charter (5 minutes)

Before touching the app, write one sentence: explore [area] using [approach] to discover [information]. For example: "Explore the checkout flow using invalid and partial payment data to discover error-handling gaps." The charter is what keeps the session from becoming aimless — when you notice yourself testing something outside it, you either note it for later or write a new charter. This is the same discipline that makes exploratory testing genuinely valuable rather than a synonym for "no plan."

Setup and recon (10 minutes)

Get the environment ready and do a quick orientation pass: what are the inputs, the states, the boundaries? Open dev tools so you can see network calls and console errors as you go — half of the bugs worth finding announce themselves in the console before the UI shows anything. Note the build/version you're testing so the report is reproducible.

The session (35 minutes)

This is the core. Work through the charter using explicit test ideas, not random clicks. I keep a running list of heuristics in view and apply them deliberately:

Exploratory heuristics to apply during the session

  • Boundaries: zero, negative, max length, empty, one-over-the-limit
  • Interruption: navigate away mid-action, refresh, back button, double-submit
  • Bad input: wrong type, special characters, pasted whitespace, emoji
  • State: do it out of order, repeat it, do it when already done
  • Network: slow it down, kill it mid-request, see what the UI claims happened
  • Permissions: try it as the wrong role or while logged out

The rule that makes this work: when you find something interesting, follow it, but write down what you skipped to do so. A bug is rarely alone — the area around it is where the next two live. Capture each finding as you go with enough detail to reproduce it later: what you did, what happened, what you expected.

Debrief and notes (10 minutes)

Stop on time. Spend the last ten minutes turning your scratch notes into something a developer or lead can act on. I capture four things: what I covered, what I found (bugs with repro steps), what I didn't get to (the skipped threads), and questions raised. That last bucket is underrated — "is it intended that you can submit this twice?" is often more valuable than a confirmed bug.

The "didn't get to" list is your charter for next time. One session almost never finishes an area; it tells you where the next session should aim.

Why the time-box matters

The hour isn't arbitrary. Long enough to get past the surface, short enough that you stay sharp and the debrief is fresh. Two focused one-hour sessions with clear charters beat a whole vague afternoon, because each one produces a written artifact and a clear next step. That's the difference between exploratory testing as a documented technique and "clicking around" — same activity, completely different value.

// RELATED QA.CODES RESOURCES


// related

Tutorials·13 June 2026 · 6 min read

The QA weekly status report I'd actually send

A short, risk-first status format: lead with a one-line risk verdict, then what's at risk, key findings, light coverage numbers, and explicit asks — built to drive a decision.

test-managementreportingcommunicationtemplate
Tutorials·13 June 2026 · 6 min read

What good QA handover notes look like

Write an operating manual for the arriver, not a diary: current state, setup, known issues with status, gotchas, and pointers — so someone can take over without asking you.

test-managementdocumentationhandovertemplate