ISTQB CTFL Experience-based Test Techniques: Error Guessing, Exploratory and Checklist-based Testing
Experience-based test techniques are test techniques that derive tests from the knowledge, skills and experience of the tester rather than from a specification or the code. This CTFL lesson explains the three the syllabus covers — error guessing (and its methodical form, the fault attack), exploratory testing (including session-based testing with charters, time-boxes, session sheets and debriefings) and checklist-based testing — what each relies on, when each is useful, how checklists should be written and maintained, and how to tell the techniques apart and combine them.
On this page10 sections
- What are experience-based test techniques?
- What is error guessing?
- Which kinds of errors does error guessing anticipate?
- What is a fault attack?
- What is exploratory testing?
- How does session-based exploratory testing work?
- When is exploratory testing useful, and what makes it effective?
- What is checklist-based testing?
- How should a test checklist be maintained?
- How do you tell the three techniques apart and combine them?
- Explain error guessing, its three knowledge sources and the six categories of anticipated errors
- Describe a fault attack as methodical error guessing and where its list comes from
- Explain exploratory testing, its purposes and when it is most useful
- Describe the elements of session-based testing: time-box, charter, session sheet and debriefing
- Explain checklist-based testing, what makes a good checklist item and what to leave out
- Explain how checklists lose effectiveness and how specific versus high-level items trade consistency against coverage
- Distinguish and combine the three experience-based techniques for a given situation
What are experience-based test techniques?
Experience-based test techniques derive tests from the knowledge, skills and experience of the tester rather than from a specification (black-box) or the code's structure (white-box). The CTFL syllabus names three of them:
- Error guessing — anticipating errors, defects and failures from what the tester knows, applied methodically as a fault attack.
- Exploratory testing — designing, executing and evaluating tests at the same time while learning about the test object, sometimes conducted as session-based testing.
- Checklist-based testing — designing and running tests to cover the test conditions listed in a checklist.
All three find defects that formal techniques can miss, and all three depend on who is doing the testing: the same technique in less experienced hands finds less. Their general role alongside black-box and white-box techniques is covered in the Test Techniques Overview lesson; this lesson explains each technique in detail and how to tell them apart.
What is error guessing?
Error guessing is a technique that anticipates the occurrence of errors, defects and failures based on the tester's knowledge. The tester asks "what is likely to go wrong here?" and designs tests aimed at exactly those weak spots — even when the specification says nothing about them. Submitting the same order twice in quick succession, because similar web shops have been known to charge customers twice, is a typical example.
The syllabus lists three sources of that knowledge:
- How the application has worked in the past — earlier releases and their history.
- The types of errors developers tend to make, and the types of defects that result from those errors.
- The types of failures that have occurred in other, similar applications.
What makes a test error guessing is its source: the tester's knowledge of likely mistakes and failures, used to aim tests at the places most likely to break.
Which kinds of errors does error guessing anticipate?
Anticipated errors, defects and failures are commonly grouped into six categories. Classifying an anticipated error means asking where the mistake lives:
| Category | What goes wrong | Example |
|---|---|---|
| Input | Correct input not accepted; parameters wrong or missing | A correct postcode typed by the user is rejected |
| Output | Wrong format; wrong result | A total is shown with the wrong number of decimals |
| Logic | Missing cases; wrong operator | The code handles new and returning customers but has no branch for suspended accounts |
| Computation | Incorrect operand; wrong computation | The wrong variable used in a discount formula |
| Interfaces | Parameter mismatch; incompatible types | A caller passes two arguments to a service in the wrong order |
| Data | Incorrect initialization; wrong type | A variable used without being initialized |
Some errors could be argued into two categories; pick the one that describes the error most directly. A missing case in the decision logic is logic, not computation; a mismatch in what one component passes to another is an interface problem, not an input problem.
What is a fault attack?
A fault attack is a methodical approach to error guessing. Instead of guessing ad hoc, the tester works in two steps:
- Create or acquire a list of possible errors, defects and failures. The list comes from experience, from defect and failure data (for example, failures seen in earlier releases or in competitors' products) and from common knowledge about why software fails.
- Design tests that will identify the defects, expose them or cause the failures on the list.
The list is what defines a fault attack: every entry names a defect or failure to target, and every test is designed against one of those entries.
What is exploratory testing?
Exploratory testing is testing in which tests are simultaneously designed, executed and evaluated while the tester learns about the test object. Each result shapes the next test: the tester notices something odd, designs a probe, runs it, and uses what she learns to decide where to go next. Nothing is fully scripted in advance.
The syllabus gives exploratory testing three purposes:
- Learning more about the test object.
- Exploring it more deeply with focused tests.
- Creating tests for untested areas.
Because tests are designed in the moment, its value lies in discovery and learning; pre-defined, repeatable checks remain the job of scripted test cases.
How does session-based exploratory testing work?
Session-based testing is a structured way to run exploratory testing. Its elements are:
- Time-box — the session runs for a defined period agreed in advance (for example 90 minutes).
- Test charter — states the objectives of the session and guides the tester. The objectives can be treated as high-level test conditions.
- Coverage items — identified and exercised during the session.
- Test session sheet — the tester may use session sheets to document the steps followed and the discoveries made as the session runs.
- Debriefing — after the session, a discussion between the tester and the stakeholders interested in the results.
A charter and a time-box give structure and accountability. The tests themselves are still designed in the moment, so each session follows the path the tester's learning leads to.
When is exploratory testing useful, and what makes it effective?
Exploratory testing is most useful when specifications are few or inadequate or when there is significant time pressure on testing. It is also useful to complement other, more formal test techniques — it runs alongside them rather than replacing them.
It is more effective when the tester is experienced, has domain knowledge and brings essential skills such as analytical skills, curiosity and creativeness. The results depend on the tester as much as on the charter.
Exploratory testing can incorporate other test techniques. Probing the smallest and largest file sizes an upload accepts during a session is boundary value analysis used inside exploration; trying inputs with emoji and accented characters because similar text fields have failed on them before is error guessing used inside exploration. The activity remains exploratory testing.
What is checklist-based testing?
In checklist-based testing a tester designs, implements and executes tests to cover the test conditions found in a checklist. Checklists are built from experience, from knowledge about what is important for the user, and from an understanding of why and how software fails.
Checklist items are often phrased as questions, and each item should be checkable separately and directly. Items may refer to requirements, graphical interface properties, quality characteristics or other forms of test conditions. A good item is specific: "Does the date picker allow keyboard-only selection of a date?"
Three kinds of item do not belong in a checklist:
- Items that can be checked automatically ("Does every link on the page resolve?" — a link checker can do this).
- Items better suited as entry or exit criteria ("Have all critical defects been closed before release?").
- Items that are too general ("Is the screen user-friendly?").
Checklists support functional and non-functional testing alike — usability heuristics and accessibility guidelines are common checklist bases.
How should a test checklist be maintained?
A checklist wears out. As developers learn to avoid the errors it targets, its entries become less effective at revealing defects. Keep it useful by:
- Adding new entries for newly found high-severity defects, written as specific, directly checkable items.
- Updating it regularly based on defect analysis.
- Not letting it grow too long, so it stays focused on what matters.
Regular updates are what keep a checklist finding defects release after release.
When there are no detailed test cases, checklists still provide guidelines and some consistency. The level of detail is a trade-off:
| Item style | Variability between testers | Coverage | Repeatability |
|---|---|---|---|
| Specific items | Less | Potentially lower | Higher |
| High-level items | More | Potentially greater | Lower |
Specific items suit a team that needs comparable results from different testers; high-level items suit a team that values breadth over comparability.
How do you tell the three techniques apart and combine them?
Each technique has telltale elements. Identify them from what the tester works from and what the tests aim at:
| Technique | Works from | Tests aim to | Telltale elements |
|---|---|---|---|
| Error guessing / fault attack | Knowledge of past behaviour, developer errors, failures in similar applications; a list of possible defects and failures | Identify, expose or cause the listed defects and failures | "In my experience this often fails…"; a defect/failure list |
| Exploratory (session-based) | Learning in the moment, guided by a charter | Learn, explore deeply, cover untested areas | Time-box, charter, session sheet, debriefing |
| Checklist-based | A checklist of test conditions | Cover each condition on the list | Questions checked one by one; heuristics, guidelines |
The near-twin to watch is the fault attack versus the checklist: a fault-attack list holds defects and failures to target; a checklist holds test conditions to cover.
The techniques combine well. A checklist gives consistent coverage of known conditions, exploratory sessions find what nobody listed, and error guessing points both toward likely weak spots. Defects found in exploration can feed new checklist items or fault-attack lists.
Tip. This topic is tested with K2 items on the three experience-based techniques. Expect definition items that ask which description fits error guessing, exploratory testing or checklist-based testing, and items on the knowledge error guessing draws on and the sources of fault-attack lists and checklists. Some items classify an anticipated error into a category. Session-based testing items ask about the charter, time-box, session sheet and debriefing, and what is and is not true of them. Checklist items ask which draft items belong on a checklist, how items should be phrased, why entries stop finding defects and how to update a checklist after defect analysis, and how item detail affects consistency, coverage and repeatability. Scenario items describe a tester's activity or a team's constraints (sketchy specifications, time pressure, consistency across testers) and ask which technique is being used, or which combination fits best, and some items combine several of these facts.
- Error guessing anticipates errors, defects and failures from how the application worked before, the errors developers tend to make and failures in similar applications.
- Anticipated errors fall into input, output, logic, computation, interfaces and data.
- A fault attack is methodical error guessing: build a list of possible defects and failures, then design tests to identify, expose or cause them.
- Exploratory testing designs, executes and evaluates tests at the same time while learning about the test object.
- Session-based testing adds a time-box, a charter whose objectives act as high-level test conditions, a session sheet and a debriefing — but sessions are still not repeatable like scripts.
- Exploratory testing suits sketchy specifications and time pressure, complements formal techniques, can incorporate them, and works best with experienced, curious, analytical testers.
- Checklist items are questions, each checkable separately and directly; leave out automatable items, entry/exit criteria and overly general items.
- Checklists lose effectiveness as developers learn; add items for new high-severity defects and update from defect analysis without letting the list grow too long.
- Specific items give consistency and repeatability; high-level items give variability and potentially greater coverage.
Frequently asked questions
What is the difference between error guessing and a fault attack?
Error guessing is the technique of anticipating errors, defects and failures from the tester's knowledge. A fault attack is a methodical way to apply it: the tester creates or acquires a list of possible errors, defects and failures from experience, defect and failure data and knowledge of why software fails, then designs tests to identify, expose or cause them.
What is a test charter in session-based exploratory testing?
A test charter states the objectives of a time-boxed exploratory session and guides the tester during it. Its objectives can be treated as high-level test conditions. The tester may record steps and discoveries on a test session sheet, and a debriefing with interested stakeholders follows.
When is exploratory testing most useful?
Exploratory testing is most useful when specifications are few or inadequate, when there is significant time pressure, and as a complement to more formal test techniques. It is used to learn about the test object, explore it with focused tests and create tests for untested areas.
Can exploratory testing use other test techniques?
Yes. Exploratory testing can incorporate other techniques such as equivalence partitioning, boundary value analysis or error-guessing lists. Using one of them during a session does not stop the session from being exploratory testing.
What should not be included in a test checklist?
A checklist for checklist-based testing should not contain items that can be checked automatically, items better suited as entry or exit criteria, or items that are too general. Each item should be specific enough to be checked separately and directly, and is often phrased as a question.
Why do test checklists become less effective over time?
Checklist entries lose effectiveness because developers learn to avoid the errors they target. Checklists should be updated regularly based on defect analysis, with new entries added for newly found high-severity defects, while keeping the list from growing too long.
Does checklist-based testing only cover functional testing?
No. Checklist-based testing supports both functional and non-functional testing. Usability heuristics and accessibility guidelines are common examples of non-functional checklists.
Do high-level checklist items give more or less coverage than specific ones?
High-level checklist items allow more variability in how testers test, which can give greater coverage but less repeatability. Specific items give more consistency and repeatability between testers and releases, at the cost of potentially lower coverage.
Source
This lesson covers the "Test Analysis and Design" domain of the official CTFL exam guide. Vendors revise their guides — check the source for the current version.
Sign up free to mark lessons complete, bookmark topics and track your exam readiness.