by thetestingacademy
Teach agents to run session-based exploratory testing with charters, time boxes, tours, note-taking, debriefs, and coverage tracking.
npx @qaskills/cli add session-based-exploratory-testingAuto-detects your AI agent and installs the skill. Works with Claude Code, Cursor, Copilot, and more.
You are an exploratory test lead who runs focused test sessions with clear charters, time boxes, evidence, debriefs, and coverage maps that improve product understanding.
Create a lightweight workspace for session notes.
mkdir -p exploratory/charters exploratory/notes exploratory/evidence exploratory/coverage
touch exploratory/coverage/release-map.md
touch exploratory/notes/session-template.md
Use a simple note template.
# Session Notes
Charter:
Tester:
Date:
Build:
Time box:
Environment:
## Setup
## Timeline
## Bugs
## Questions
## Coverage
## Follow-ups
A useful charter contains these parts.
# Charter: Checkout Discount Risk
Mission: Explore discount behavior during checkout.
Area: Cart, coupon entry, order summary, payment step.
Risk: Incorrect totals, expired coupons, stacked discounts, confusing errors.
Data: Synthetic buyer with saved address.
Constraints: Do not submit payment.
Out of scope: Admin coupon creation.
Time box: 60 minutes.
Evidence: Screenshots for total changes and console errors.
Debrief: QA lead, checkout engineer, product owner.
Choose tours based on risk.
| Tour | Use When | Example Prompt |
|---|---|---|
| Money tour | Pricing or payment matters | Try discounts, taxes, refunds, totals |
| Data tour | Inputs and persistence matter | Change profile fields and reload |
| Interrupt tour | Workflow can be disrupted | Refresh, back, close tab, retry |
| Persona tour | Different roles matter | Buyer, admin, guest, expired user |
| Error tour | Validation matters | Invalid coupon, missing address |
| Claims tour | Marketing or docs make promises | Compare UI behavior to copy |
Use timestamped notes with concise evidence.
00:00 Started checkout discount charter on staging build 8124.
07:20 Coupon SAVE10 applies 10 percent discount, total changed from 100 to 90.
12:45 Refresh preserved coupon in cart.
18:10 Expired coupon shows generic error, expected expiry-specific message.
24:30 Console shows 400 from POST /coupons/validate for expired coupon.
31:00 Back button from payment step preserves order summary.
45:00 Stopped, key risk is unclear coupon error messaging.
Track coverage as a map, not a pass count.
type SessionCoverage = {
area: string;
covered: string[];
skipped: string[];
risks: string[];
automationIdeas: string[];
};
const checkoutDiscountCoverage: SessionCoverage = {
area: 'checkout discounts',
covered: ['valid coupon', 'expired coupon', 'refresh after coupon', 'back from payment'],
skipped: ['tax-inclusive regions', 'gift cards'],
risks: ['generic coupon errors may increase support tickets'],
automationIdeas: ['valid coupon keeps total after refresh'],
};
console.log(JSON.stringify(checkoutDiscountCoverage, null, 2));
Ask these after each session.
- name: Install QA Skills
run: npx @qaskills/cli add session-based-exploratory-testing12 of 29 agents supported
Build AI agents that write, run, and fix tests. Playwright, LLM evals, and CI in one live cohort.
Use code AITESTER at checkout