Skip to content
Bugwise
Menu
Tutorials

Exploratory Testing

Learn to explore an app like a professional tester, with charters, time-boxed sessions, heuristics and tours, good notes and a clear debrief, then run a real session on a buggy parking app.

beginner Mobile & web
Short on time? Switch to the quick version.

It’s Thursday morning. A new build of ParkEasy, a street-parking app, has just landed on TestFlight. Your lead writes: “The new payment flow goes to the stores on Monday. The test cases all pass, but I don’t trust it yet. Can you spend 90 minutes exploring it and debrief me at 4?”

No script. No list of steps. Just you, the app and 90 minutes. Some testers love this moment, others freeze. This lesson gives you a method, so you’ll be in the first group.

What exploratory testing is

exploratory testingExploratory testingLearning, designing and running tests at the same time, guided by curiosity and a goal.Open in glossary → means learning about the app, designing tests and running them at the same time. Each thing you try teaches you something, and what you learn decides what you try next.

It’s not random clicking. Random clicking has no goal, no notes and nothing to report. Exploration has a mission (a charterTest charterThe goal and scope of an exploratory testing session, written before it starts.Open in glossary →), a time limit and a debrief.

The essentials

Exploratory vs ad-hoc vs scripted

Exploratory

“For 60 minutes, explore checkout with boundary amounts and double taps to discover how payments can go wrong.” Notes taken, findings reported.

Random clicking

“I tapped around for a while. Looks fine.” No goal, no notes, no idea what was covered.

Charters: your mission in one sentence

A popular formula:

Explore <target> with <resources> to discover <information>.

For example: Explore the parking payment flow with boundary durations and repeated taps to discover how ParkEasy handles money.

A session in three steps

  1. Charter and time box. Pick one charter and a fixed time, often 60 to 90 minutes.
  2. Explore and take notes. Write down what you tested, bugs, questions and ideas, with rough times.
  3. Debrief. Tell your lead what you covered, what you found, what blocked you and what’s left.

Heuristics: ideas for what to try

  • Goldilocks: too small, too big, just right (0, 1, the maximum, more than the maximum, very long text).
  • Interruptions: a call, lock screen, rotation, switching apps.
  • Back button tour: press Back on every screen, especially after something is saved or paid.
  • Empty states: open every screen before you have any data.
  • Money tour: follow the features people pay for, and tap the important buttons twice.

What to note

NoteExample
What you tested“Duration stepper, all values 0 to 4 h”
Bugs“Double tap on Pay charged €3.00 twice”
Questions“Is 4 h the max in every zone?”
Ideas“Next session: no network during payment”

Switch to Detailed for session-based test management, more tours, pairing, how exploratory fits with scripted tests, and how to report your session.

What it is and what it isn’t

Every tester explores a little. The difference is whether you do it deliberately. Here’s how three common ways of testing compare:

Scripted testingExploratory testingAd-hoc testingAd hoc testingInformal testing with no plan or documentation, trying things to see what breaks.Open in glossary →
PlanWritten test casesTest caseA written set of steps, data and an expected result used to check one specific behavior.Open in glossary →A charter and a time boxNone
DesignBefore runningWhile runningNot really
NotesPass/fail per caseCoverage, bugs, questions, ideasRarely
Best atRepeatable checks, known rulesFinding the unknownA quick look

When exploratory testing shines

It’s less suitable as your only approach for rules that must be re-checked identically on every release (like “an account locks after 5 failed sign-ins”), for compliance evidence, or for things a machine checks better (thousands of users at once).

Charters

A test charterTest charterThe goal and scope of an exploratory testing session, written before it starts.Open in glossary → is the mission for one session. It keeps you focused without telling you every step. The most widely used template comes from Elisabeth Hendrickson’s book Explore It!:

Explore <target> with <resources> to discover <information>.

PartQuestionExample
TargetWhere will you explore?the parking payment flow
ResourcesWith what tools, data, conditions or heuristics?boundary durations and repeated taps
InformationWhat do you want to learn?how ParkEasy handles money

Focused charter

Explore order tracking with airplane mode and a slow 3G connection to discover how status updates recover after losing signal.

Too broad, too vague

Explore the app with a phone to discover bugs.

A good charter is big enough for a whole session and small enough to finish. If you’re done in 10 minutes, it was too narrow. If you’d need a week, split it. Try building a few:

Charter builder

Combine the three parts and see how strong your charter is.

Explore the checkout tip selector with a slow 3G connection and airplane mode to discover how the status updates recover after losing signal.

  • Target: A clear, small area you can cover well in one session.
  • Resources: Concrete conditions that change behavior. They tell you what to vary.
  • Information: Specific information the team needs.

Strong charter: focused, with a clear way to explore and a clear goal.

Session-based test management

Exploration is easy to start and hard to account for. “I tested for three days” tells your lead nothing. Session-based test management (SBTM), created by Jonathan and James Bach, fixes that by cutting exploration into measurable chunks.

  1. One charter per session. You can note other ideas, but you don’t chase them now. They become future charters.
  2. A time box. Sessions are uninterrupted, typically 60 to 120 minutes, with 90 a popular default. Turn off chat. Short sessions (around 45 minutes) are fine for small charters.
  3. A session sheet. Charter, tester, start time, duration, the areas covered, bugs, issues (things that blocked or slowed you) and notes.
  4. A rough time split. Roughly how much time went into actually testing, investigating bugs and setting up (installing builds, creating test data). If setup takes 70%, that’s a problem worth raising.
  5. A debrief. A short conversation with your lead, right after the session, while it’s fresh.

The debrief: PROOF

A classic debrief checklist from SBTM is PROOF:

LetterAsk yourselfParkEasy example
PastWhat happened during the session?Explored payment with all durations and repeated taps
ResultsWhat did I find?3 bugs: €0 parking, double charge on double tap, Back after paying shows Pay again
ObstaclesWhat got in the way?Wallet ran empty, needed a reset
OutlookWhat still needs doing?Payment with no network; zones with a 2-hour maximum
FeelingsHow do I feel about this area?Nervous about payments; would not ship Monday as is

“Feelings” may sound soft, but a tester’s gut feeling about risk is real information. Say it, and back it with what you saw.

Heuristics and tours

A heuristic is a rule of thumb: a quick way to come up with ideas that are often useful but not guaranteed. Experienced testers carry dozens in their head. Here are the ones beginners get the most out of.

SFDIPOT: a map of what to look at

Part of James Bach’s Heuristic Test Strategy Model, often remembered as “San Francisco Depot”. Each letter is a different angle on the same app:

LetterLook atParkEasy idea
StructureWhat it’s made ofApp, wallet service, map, push notifications
FunctionWhat it doesStart, extend and stop parking
DataWhat it processesZone codes, plates, durations, money
InterfacesHow it connectsPayment API, the OS share sheet, other apps
PlatformWhat it depends oniOS and Android versions, location services
OperationsHow people really use itIn the rain, one-handed, in a hurry
TimeWhen things happenSession expires at midnight, time zonesTime zoneThe local time of a region. Bugs appear when apps mix up the user's time zone with the server's.Open in glossary →, slow networks

Quick heuristics and tours

A tour is a themed walk through the app, popularised by James Whittaker. Each one gives your session a theme:

Heuristic or tourWhat you do
CRUDCreate, Read, Update, Delete every kind of data. Then read it again from other screens.
GoldilocksToo small, too big, just right: 0, 1, the max, max + 1, empty, 500 characters, emoji. Classic boundary value analysisBoundary value analysisTesting values at and just around the edges of valid ranges, where bugs love to hide.Open in glossary → and edge casesEdge caseAn unusual situation at the extreme of what the software should handle.Open in glossary →.
InterruptionsCalls, notifications, lock screen, rotationOrientationWhether the device is held upright (portrait) or sideways (landscape).Open in glossary →, app switching, low battery mode. See interruptionInterruptionAnything that takes the user away from the app mid-task: a call, an alarm, a notification, low battery.Open in glossary → and Interruptions.
Back button tourPress Back (system and in-app) on every screen, especially after saving, paying or deleting.
Money tourFollow the features customers pay for or that sell the app. Bugs there cost the most.
Empty and fullEvery screen with no data (empty stateEmpty stateThe screen a user sees when there is no content yet, like an empty cart or no search results.Open in glossary →) and with lots of data.
Double tapTap important buttons twice, fast. Looks for a double submitDouble submitA bug where an action runs twice because the user tapped or clicked twice quickly.Open in glossary →.
Long textLong names, long translations, large system font. Watch for truncationTruncationText that gets cut off because it doesn't fit its space.Open in glossary → and overflow.
NetworkAirplane mode, slow 3G, switching Wi-Fi to mobile data mid-action. See Network Conditions.

You don’t need all of them in one session. Pick two or three that match your charter. Experienced testers combine heuristics with error guessingError guessingChoosing tests based on experience of typical mistakes developers make.Open in glossary →: “This kind of feature usually breaks here.”

Taking notes

Notes turn an exploration into evidence. Keep them short, timestamped and in four buckets:

  • Tested: what you covered and how (“Duration: 0, 15, 60, 240, tapped + at 240”).
  • Bugs: what went wrong, enough to reproduce later.
  • Questions: things you’re unsure are bugs (“Should Back after paying go to Sessions?”).
  • Ideas: things to try in a future session (“Payment with no network”).
SESSION: ParkEasy payment, 90 min, Thu 10:00
CHARTER: Explore the parking payment flow with boundary durations and
         repeated taps to discover how ParkEasy handles money.

10:04 TESTED  Duration stepper: 15 min up to 4 h, + disabled at 4 h. OK.
10:09 BUG     - goes down to 0 min, Continue works, "Pay €0.00" accepted.
10:15 QUESTION Is 4 h the maximum in every zone, or does it depend on the sign?
10:21 BUG     Double tap on Pay: wallet −€6.00, two identical sessions.
10:33 IDEA    Next session: pay in airplane mode, kill app during "Paying…".
10:40 TESTED  Back from Confirm returns to the form, values kept. OK.
10:41 BUG     Back after "You're parked" shows Pay again. Paid twice.

Pairing

Exploring in pairs often finds more than two people alone. One person drives (uses the device), the other navigates (watches, takes notes, suggests “now try rotating”). Swap every 20 minutes or so.

  • Tester + tester: great for learning heuristics from each other.
  • Tester + developer: the developer sees how real users break things and often knows exactly where the weak spots are.
  • Tester + product owner or designer: quick answers to “Is this a bug or intended?”

How exploratory fits with scripted testing

They’re partners, not rivals. Scripted tests protect what you already know; exploration discovers what you don’t.

  1. Explore a new feature to learn it and find the first bugs.
  2. Turn the important findings into test cases (for example “Pay is disabled while paying”) and add them to the regression suite.
  3. Run the scripted cases on every release, by hand or automated.
  4. Keep exploring around changes and risky areas, because the scripts will never cover everything.

Many teams run their scripted checks first (a quick smoke testSmoke testingA quick check of the most important features to decide if a build is stable enough to test further.Open in glossary → to make sure the build is alive) and spend the rest of the time on charters.

Reporting what you found

Your lead doesn’t want a diary. They want to decide something. A good session report answers:

  • What did you cover, and what didn’t you? (Coverage is as important as bugs.)
  • What did you find? Bugs with links to their reports, sorted by importance.
  • What questions need answers? Who should answer them?
  • What’s your recommendation? “I’d ship” or “I wouldn’t ship Monday, because…”
  • What’s next? Follow-up charters for the gaps.

Useful debrief

“Covered the full payment flow and all durations. 3 bugs, two of them charge customers twice (BUG-412, BUG-413). Didn’t cover offline payment yet. I’d hold the release until 412 and 413 are fixed, and I’d like one more session on offline payment.”

Diary

“I tested ParkEasy all morning. Found some stuff. Seems mostly OK.”

Common mistakes

Practice: your first exploratory session

Time to explore for real. ParkEasy has six hidden bugs that the happy path never shows. Pick a charter, start the 10-minute time box, use the app and the device buttons (System back, Rotate) and write notes as you go. When you end the session, the debrief shows which bugs you triggered, which you missed, and generates your session report.

Exploratory session: ParkEasy

A street-parking app with 6 hidden bugs. Pick a charter, explore, take notes, debrief.

10:00
9:41

Park

€25.00

The code is on the parking sign.

Vehicle

Duration

1 h 00 min

Until 10:41

Max 4 h · €0.75 per 15 min

My carTotal€3.00

Pick a charter and press Start to unlock the app.

1. Pick your charter

2. You get a 10-minute time box. Real sessions usually run 60 to 120 minutes; this one is a short practice round. Use the device buttons under the phone too.

Before you start a session

Exploratory session checklist

0 of 10 checked

Check your understanding

Quick quiz

0/6 answered · 0 correct

  1. 1.What best describes exploratory testing?

  2. 2.Which charter is the strongest?

  3. 3.You're exploring payments and notice the profile photo upload looks broken. What should you do?

  4. 4.The Goldilocks heuristic means trying values that are…

  5. 5.What does the debrief after a session mainly give your lead?

  6. 6.How do exploratory and scripted testing relate?

Key takeaways

  • Exploratory testing is learning, designing and running tests at the same time. It’s structured, not random clicking.
  • A charter gives each session a mission: Explore target with resources to discover information.
  • Sessions are time-boxed (often 60 to 120 minutes), with notes on what you tested, bugs, questions and ideas.
  • Heuristics and tours give you ideas: Goldilocks, CRUD, interruptions, back button, money tour, empty states, double tap, long text.
  • Debrief right after the session: coverage, findings, obstacles, what’s left and your gut feeling.
  • Exploration and scripted tests are partners: turn important findings into regression cases, and keep exploring the risky parts.

Finished this page?Nice work, this page is complete!

Mark it as done to track your progress. It's saved in this browser, no account needed.

Its review cards are now in Bites ⚡
Esc

Type to search the whole site.