> For the complete documentation index, see [llms.txt](https://practical-testing.gitbook.io/home/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://practical-testing.gitbook.io/home/testing-practices/perform-exploratory-testing.md).

# Perform Exploratory Testing

There's a plethora of content on Exploratory Testing (ET), aka ad hoc testing. This page aims to summarize the main points of ET and provide short, practical, actionable tips on how to do ET well.

### ET in a Nutshell

* ET is NOT unqualified or random testing (poke around and see what happens)
* "Exploratory testing is simultaneous learning, test design, and test execution"<sup>1</sup>
* **The ultimate goal in ET is to discover information of interest and value** to stakeholders<sup>2</sup>&#x20;
* **Test Automation (TA) is NOT a replacement for ET**. These two practices are **complementary**. Additionally, ET helps discover interesting scenarios that may be later automated. What is the value of an automated test suite if it's exclusively made out of simple, superficial checks and no one did a deep dive into the software?

### Performing ET

ET can easily become aimless without structure. To keep focus and produce useful results, use **Session-Based Test Management (SBTM)** with **Charters**.

{% stepper %}
{% step %}

### Timebox

Divide your work into uninterrupted sessions of 60–120 minutes. Can be shorter or longer depending on context.
{% endstep %}

{% step %}

### Define Your Aim

Decide what you want to learn or investigate. This could come from:

* Requirements or specifications
* Conversations with stakeholders
* Your own experience or intuition
* A point from [SFDIPOT](/home/testing-practices/learn-the-product-sfdipot.md)
  {% endstep %}

{% step %}

### Create a Charter

Create a charter based on Step 2. A charter provides direction without prescribing exact steps.

Template (from *Explore It!*<sup>*2*</sup>):

> *Explore {target} with {resources} to discover {information}*

* **Target**: feature, module, requirement
* **Resources**: tools, datasets, techniques
* **Information**: performance issues, usability risks, security concerns, standard violations, etc.

✅ **Good Charters**

1. Explore the “New User” registration form with accessibility tools to discover usability and compliance issues.
2. Explore the checkout workflow with various payment methods to discover integration errors or confusing flows.

❌ **Poor Charters**

1. Test name/surname text inputs with invalid values (too narrow).
2. Try to find security holes (too broad).
   {% endstep %}

{% step %}

### Execute the Session

Stay focused on the charter target. Take notes: test ideas, risks, surprises, bugs, and questions for later.
{% endstep %}

{% step %}

### Debrief and Report

Here's a basic template:

<table><thead><tr><th width="189.36367797851562">Field</th><th>Description</th></tr></thead><tbody><tr><td>Charter</td><td>The mission for this session (what you set out to explore)</td></tr><tr><td>Tester</td><td>Who performed the session</td></tr><tr><td>Start/End Time</td><td>[...]</td></tr><tr><td>Resources Used</td><td>Tools, data sets, techniques applied</td></tr><tr><td>Bugs Found</td><td>List of defects discovered</td></tr><tr><td>Open Questions</td><td>Issues or uncertainties needing clarification or follow-up</td></tr><tr><td>Notes</td><td>Observations, surprises, risks, additional ideas</td></tr></tbody></table>
{% endstep %}
{% endstepper %}

### References

<sup>1</sup> "[Exploratory Testing Explained](https://satisfice.us/articles/et-article.pdf)", Paper, James Bach

<sup>2</sup> [Explore It!](/home/useful-resources/testing-books-curated-list.md), Book, Elisabeth Hendrickson
