What is a test charter in exploratory testing, and what does its three-part shape name?
answer
- A mission, not a procedure
- One or two sentences, per session
- Three slots in one sentence
- Target, resources, information goal
- Explore ... with ... to discover ...
basics
~20 sA test charter is a one- or two-sentence mission for a single exploratory session. The common shape names three things: what to explore, what to explore it with, and what information the session should discover.
solid answer
~50 sA charter is the written mission for one exploratory session, usually in the form *explore <target> with <resources> to discover <information>*. The target bounds the area so the tester can afterwards say what was covered; the resources name the data, accounts, configurations, comparison builds or techniques that will be brought to bear; the information slot states the question the session answers, which is a risk or an unknown rather than "find bugs". For example: explore overnight slot generation on an appointment system, with clinics whose published hours cross midnight and a 17-minute slot length, to discover appointments that land outside the published hours. The charter fixes scope and purpose but deliberately not method — the tester designs each step from what the last one revealed. That is what separates it from a scripted case, and the sizing rule is one charter per session.
code
pseudocode · 4 linesCHARTER TEMPLATE
Explore <target area, bounded>
With <data, accounts, configuration, technique, comparison build>
To discover <the risk or unknown this session answers>go deeper
Be ready to recite the three-slot shape and turn a vague request into one: name a bounded target, the data or accounts you will use, and the question you are answering. Have one worked example ready.
Explain why the method is deliberately left out and what that buys, and show that you can tell a charter from a scripted case and from an acceptance criterion. Expect to be handed a bad charter and asked to rewrite it.
Demonstrate that you use charters to make unscripted work accountable: each finished charter is a coverage statement you can defend, and you can say what a session covered and what it left untouched.
Own the argument for why chartering is worth the ceremony at all — it is what lets an organisation plan, staff and report exploratory testing without turning it into scripts, and it is the cheapest defence against exploration collapsing into ad-hoc poking.
## What a charter actually is A **test charter** is the written mission for one exploratory testing session. It says, in one or two sentences, *what* will be explored, *what will be used* to explore it, and *what information* the session is meant to produce. It is written before the session starts, it is visible to anyone who wants to know what testing is going on, and it is deliberately short. A charter is not a document, not a plan for a release, and not a list of steps. ## The three slots The shape most teams use comes from the session-based test-management literature: ``` Explore <target> with <resources> to discover <information>. ``` - **Target** — the area under test. It must be bounded enough that one person can hold it in their head and can afterwards say honestly which parts they touched. "The scheduler" is not a target; "slot generation for clinics whose opening hours cross midnight" is. - **Resources** — what the tester brings to bear: data sets, account types, configurations, a comparable earlier build, a specification, a diagram, a technique or heuristic, a second person. This slot is what turns two sessions on the same target into two different sessions. - **Information** — the question the session answers. Not "find bugs" in the abstract, but the risk or unknown that motivated the session: *appointments generated outside published opening hours*, *fields that silently change shape between two services*, *a role that can read another clinic's patients*. ## A worked example Weak: "Explore the appointment scheduler." Nothing there bounds the work, so two testers do two unrelated things and neither can report coverage. Chartered: "Explore overnight slot generation with clinics whose published hours cross midnight and a 17-minute slot length, to discover appointments that land outside the published hours." Target = overnight slot generation. Resources = midnight-crossing clinic records and an unusual slot length. Information = out-of-hours appointments. A tester reading it knows where to start, what to vary and what counts as a finding — and still decides every actual step themselves. ## Why "to discover" and not "to verify" The third slot states an **information goal**, not an expected result. "Verify" implies you already know what should happen and only need confirmation; that is a check, and a check that matters is better written down once and run mechanically. "Discover" licenses the tester to report anything relevant to the question, including the discovery that the question itself was wrong — for example that the published hours are ambiguous rather than that the generated slots are wrong. Framing the goal as information is also what makes a session reportable when it finds nothing: "no out-of-hours slots across eleven clinic shapes" is a result, whereas "no bugs found" is not. ## A mission, not a procedure A charter is intentionally underspecified about *how*. In exploratory work the tester designs the next test from what the last one just revealed, so fixing the steps in advance removes the very thing the session is for. The charter constrains **scope and purpose**; the tester owns **method**. That division is what lets a manager schedule and account for exploratory work without dictating it. ## The two smells **The slogan.** "Test the calendar thoroughly", "Do some exploratory testing on booking." No target boundary, no resources, no information goal. It is unfalsifiable: you can never say it is finished, and the debriefing conversation has nothing to hang on. **The disguised script.** "Open clinic admin, add a clinic with hours 22:00–06:00, save, confirm eight slots appear." Every step and the expected result are fixed, so nothing is being explored. If the steps are genuinely known and repeatable, that is a check and belongs in an automated suite; writing it as a charter buys the ceremony of exploration without the benefit. A useful test for a draft: could two capable testers run this charter and produce genuinely different, both-valid session notes? If not, it is a script. Could either of them, at the end, state what they covered and what they left? If not, it is a slogan. ## One charter, one session A charter is sized so that a single uninterrupted stretch of testing can honestly finish it. That sizing is part of writing it: if the target names two subsystems, or contains the word "and" joining unrelated areas, it is really two charters. A four-person team that charters at the right size ends each session able to say what was covered; a team that charters vaguely ends each session with sprawling notes and no coverage statement. ## What a charter is not It is not a test case (no steps, no expected result), not an acceptance criterion (it states what to investigate, not what the system must do to be shippable), and not a bug report. It is the smallest artefact that makes unscripted testing plannable, accountable and repeatable as an activity — while leaving the testing itself free.
- Why does the third slot say "to discover" rather than "to verify"?Because the goal is information, not confirmation. "Verify" presumes you already know the expected result, which makes the work a check that is cheaper and more reliable when written down once and run mechanically. "Discover" licenses the tester to report anything relevant to the question, including that the question itself was wrong — for instance that the published hours were ambiguous rather than that the generated slots were incorrect. It also makes an empty session reportable as a result.
- What kinds of thing belong in the "with" slot?Whatever the tester is going to bring to bear: specific data sets or record shapes, an account type or role, a configuration or locale, a comparison against an earlier build or a written claim, a diagram, a heuristic, or a second person. It is the slot that makes two sessions on the same target genuinely different sessions, and an empty one usually means the scope has not really been decided yet.
- How can a charter be too specific?When it enumerates the steps and states the expected result, it is a script wearing a charter's clothes: there is nothing left for the tester to design, so none of the value of exploration is available. If the steps really are known and repeatable, that case belongs in an automated suite; the charter should then be written around what is still uncertain in the surrounding area.
A charter is like a search-and-rescue tasking: it names the grid square, the equipment and what you are looking for, and then leaves the searcher to decide where to put their feet.
saying these in an interview costs you the question
- Describes a charter as a step-by-step case with an expected result
- Writes a charter as a slogan such as "test the calendar thoroughly"
- Thinks a charter must end in a pass or fail verdict
- Says the charter tells the tester which steps to perform
- Assumes one charter can cover a whole release or subsystem
- Treats the information slot as "find as many bugs as possible"