# Exploratory Testing Walkthrough — Learn by Doing

## Before We Begin

**Diagnostic Question:** What's the difference between "running tests" and "exploratory testing"? When would you choose one over the other?

**Checkpoint:** You recognize that scripted tests verify known behavior, while exploratory testing discovers what you don't yet know. Both matter; they serve different purposes.

---

## Step 1: Write a Test Charter

<!-- hint:list style="checklist" -->

You're about to explore a new "Export to CSV" feature. The feature lets users export a filtered list of orders.

**Task:** Write a test charter for this feature using the format: "Explore [target] with [resources] to discover [information]."

**Question:** What makes a charter too narrow vs too broad? How would you know when you're "done" with this charter?

**Checkpoint:** User writes a charter like "Explore the Export to CSV feature with various filter combinations to discover data accuracy and format issues." They understand narrow = prescriptive; broad = vague. Done when time box ends or key areas covered.

---

## Step 2: Use SFDPOT to Generate Charters

<!-- hint:card type="concept" title="SFDPOT" -->

Pick a feature you know: e.g., a login form, a search bar, or a settings page.

**Task:** For each letter of SFDPOT, write one charter idea. You don't have to execute them—just generate possibilities. (Example for F: "Explore the Function of the login form with invalid credentials to discover error messages.")

**Question:** Which SFDPOT areas do you usually skip when testing? Why might that hide bugs?

**Checkpoint:** User produces 6 charter ideas. They reflect on often-skipped areas (often Platform, Time, Operations) and recognize these can hide real issues.

---

## Step 3: Conduct a Mini Session

<!-- hint:buttons type="single" prompt="How did having a charter change your exploration?" options="Focused my attention,Made it rigid,No difference" -->

Pick any web app or tool you can access (e.g., a todo app, a calculator). Set a 10-minute timer.

**Task:** Run a mini exploratory session. Charter: "Explore [pick one area] with [a constraint] to discover [something]." Take notes as you go: what you tried, what you saw, any bugs or questions.

**Question:** How did having a charter change your exploration compared to "just clicking around"?

**Checkpoint:** User completes a short session with notes. They notice the charter focused their attention; they found at least one observation (bug or quirk) they might have missed without structure.

---

## Step 4: Write a Bug Report

Suppose during exploration you found: When you paste a long URL into a "Share link" field, the Save button does nothing and no error appears.

**Task:** Write a bug report with: title, steps to reproduce, expected vs actual, and environment. Aim for clarity so a developer can reproduce it without talking to you.

**Question:** What's the risk of writing "sometimes it doesn't work" without clear steps?

**Checkpoint:** User writes numbered steps, clear expected/actual, and environment. They understand vague reports waste time and block fixes.

---

## Step 5: Plan a Debrief

You've just finished a 90-minute session on a checkout flow. You found 2 bugs and noticed the "Apply coupon" field behaves oddly with special characters.

**Task:** Outline what you'd cover in a 10-minute debrief. What would you tell the team? What would you ask for?

**Question:** Why is a debrief valuable even if you've already filed bug reports?

**Checkpoint:** User lists: bugs found, risks (coupon field), coverage (what was/wasn't tested), suggested next charters, blockers. They see debrief adds context, priorities, and ideas for follow-up that raw bug reports don't.

---

## Step 6: Combine Exploratory with Automation

<!-- hint:diagram mermaid-type="flowchart" topic="exploratory and automation workflow" -->

Your team has good e2e coverage for happy paths. A new "Bulk actions" feature was just added.

**Task:** Propose how exploratory and automated testing could work together. When would you run exploratory? What charters might fill gaps that automation won't cover?

**Question:** What kinds of bugs does automation typically miss that exploratory can find?

**Checkpoint:** User suggests: exploratory first on new feature to find risks, then automate critical paths. Automation misses UX quirks, odd input combinations, cross-browser issues, performance under load—exploratory can target those with charters.
