Hero Background

Power Your Software Testing with AI Agents and Cloud

The Native AI-Agentic Cloud Platform to Supercharge Quality Engineering. Test Intelligently and Ship Faster.

Thought Leadership

Exploratory Testing Skills: Science, Creativity, and Intuition

Learn how exploratory testing works, how to plan charters and test sessions, and how science, creativity, and intuition help QA testers find real defects.

Last Updated on:

Exploratory testing builds testing skills by combining planning, test design, and execution into one activity, so each new test comes from what the last one revealed. A test charter names the areas under test, and session-based test management, developed by Jon Bach and James Bach at Hewlett-Packard, records each session on a sheet.

This guide covers what exploratory testing is, getting started, testing beyond the happy path, building testing skills, session tools, how AI agents change the practice, and adding science, creativity, and intuition.

Key Takeaways

  • Exploratory testing combines planning, test design, and execution into one simultaneous activity instead of running pre-written test scripts.
  • A test charter names which application areas and functions are tested and by whom, and serves as the coverage record for managers, other developers, and regulatory reporting.
  • Session-based test management, developed by Jon Bach and James Bach at Hewlett-Packard, records each uninterrupted session on a sheet listing the charter, areas covered, bugs found, and time spent.
  • Asking developers where the code changed and where the risky code sits, then mapping that functionality in a mind map or workflow diagram, makes gaps and contradictions visible before testing starts.
  • Defects a tester has personally hit in banking, retail, or documentation apps supply realistic exploratory test ideas for the application under test.
  • The science in exploratory testing is learning which mistakes a development team repeats, and finding the integration points where one team changing an API breaks another team's code.

Exploratory testing works well with Agile because testing starts as soon as the code is in a testable-enough state. Beginning with design, and requirements or acceptance criteria review, and through to the theoretical end of the development cycle, exploratory testing is continuously effective.

What is exploratory testing exactly?

Exploratory testing involves combining planning, testing, and execution into a rapidly occurring set of simultaneous events. The exploratory testing effort may be planned out by creating a team "charter." The team charter outlines what areas or functions are tested and by whom. Regardless of whether you are a part of a small or large testing team or are the lone tester creating a charter, it essentially defines the test coverage. Charters provide test coverage documentation for management, and other development team members, or serve as release test documentation for regulatory requirements or basic release tracking.

The charter also defines the general style of testing. For example, are you using testing tours, or simply taking each major function and creating tests as you go, in other words, exploring the application as a new user, or an experienced user looking to try a new feature.

Three styles cover most sessions. Freestyle exploration is a quick unguided pass over a new feature with no plan set in advance. Scenario based exploration follows a complete user workflow across several screens. Strategy based exploration applies a named test design technique, such as boundary value analysis, to an area the team has already flagged as risky. The choice is not permanent, and a single charter often moves between all three.

Exploratory tests may be developed into written scripts, checklists, done on the fly, or executed based on design, user story description, requirements, or the development documentation. The many beauties or benefits of exploratory testing are flexibility, speed, efficiency, effectiveness, and a do-as-you-will approach.

Exploratory testing requires the will to explore, literally, an application in totality. The only requirements are access to the application and functions for testing. An understanding of the application's purpose, design, and expected results are helpful but not necessary. Testers simply need a sense of adventure and willingness to think outside the script.

Teams that need a record of the work run exploratory testing as session-based test management, the approach Jon Bach and James Bach developed at Hewlett-Packard. A session is an uninterrupted block of testing against a single charter. The tester writes a short session sheet that lists the charter, the areas covered, the bugs found, and the time split between testing, bug investigation, and setup. A debrief with the test lead closes the session, sets the next charter, and gives managers the coverage evidence that a scripted test case count used to supply.

Exploratory testing has real limits, and they are worth stating before a team leans on it. Coverage is hard to prove after the session ends, because there is no test case count to point at, which is why the session sheet and the debrief exist at all. Results also track the tester, so two people running the same charter find different defects, and a tester new to the domain finds fewer. A bug found by wandering is easy to report without the steps that reproduce it, so record what you did while the session is still running.

Key Takeaway: Exploratory testing runs planning, test design, and execution together, and a charter defines the areas covered while a session sheet records the bugs found and the time spent.

Exploratory testing: Getting started

A tester's skill with exploratory testing comes from experience, understanding of the application, and a knack for asking questions of developers. I call it investigative testing.

The tester investigates design and function by:

  • Talking with developers and asking where code has changed.
  • Ask where developers believe high-risk or complex code lives.
  • Get actively involved early, attending design reviews, debates, and developer code reviews if feasible.
  • Essentially, understand as much as possible about the code design and intended functions from the developer's view.
  • Discuss the requirements or user story acceptance criteria with the product manager to gain a full understanding of the intended application function from the customers' and product team's point of view.

Hold on to the results of the investigation. Next, map out the application functionality needing testing keeping the following key points in mind:

  • Go beyond the "happy path" and look for the unhappier paths through the application.
  • Don't simply confirm the application's functions. Test to break the code.
  • Review your testing map. Discover gaps in functionality, otherwise known as "holes" or points of no return.

Once you've done your investigation and understand how the application intends to function, edit the test map or mind map for accuracy.

Mind mapping application functionality effectively generates a brainstorm of ideas on where to test. You'll discover back-end processes, and often forgotten vulnerabilities in third-party applications, database connections, and integrated messaging systems. Even the simplest applications be it mobile or web, connect with another API or a database.

If mind mapping seems non-technical, the same information may be captured effectively with a workflow diagram. Whichever tool helps to best visualize the application, use it and compare it to any documentation from the development or the product team. Find any differences? Typically, gaps occur as well as contradictions. Mapping or workflow charting makes gaps, contradictions, and missing functions visible for effective testing.

Give yourself time to dig around and find the gaps. Analyze where and how the application pulls or pushes data to the database, or other connected applications. Check when and how the page data refreshes. If the application allows a user to generate email or SMS messages externally or internally, test if the functionality works as expected. Connection issues with third-party messaging systems are plentiful. See how many you can find that are not documented.

Many testers continue by writing out stories or testing tours through the application functionality. If time exists, writing out testing flows works. I prefer to save time and test from my mind map or flow diagram. The important part is to identify variable paths for single users through the application's functions in expected and unexpected ways.

Key Takeaway: An exploratory session starts by asking developers and the product manager where the code changed and what is risky, then mapping the application so gaps beyond the happy path become visible.

Use your own experience to test beyond the Happy Path

Exploratory testers find defects by using their own app experiences. We've all found defects in banking, retail, and game apps. How did you find them? You find them by trying to perform a function in an unpredicted way. Use the ability to mess up apps to your advantage and look for similar defects when testing applications.

For example, in my experience I find many documentation software applications handle bulleted and numbered lists poorly. I have struggled more with editing lists than any other feature. Often it's easier to wipe out the list, save the document, and then put a new one in rather than try to edit the existing list. Typically, the text is off a line somehow, a carriage return or space throws off the entire list making editing impossible.

Another example, logging into a banking application and checking the box next to Remember me or the Remember this device for 30 days. These login options are a bad idea for security reasons, and most of these features simply don't remember anything even when cookies are enabled. I use several banking and HR applications that simply never remember me, even before or after I clear the cache and cookies. Collect defects found when using other apps and leverage the knowledge by testing them in the application under test. If friends or family bring up defects in apps, try those as well. Each individual's negative experience with an app represents a gold mine of exploratory test information.

Youtube thumbnail

Key Takeaway: Defects a tester has already hit as a customer, such as broken list editing in documentation software or a Remember me option that forgets the device, are worth reproducing against the application under test.

Building testing skills

As a QA tester, the more one explores the entire depth and breadth of the applications, the faster testing skills and instincts improve. The science of exploratory testing revolves around learning, exploring, and fearlessly disturbing all the code aspects one can access.

Over time, testers learn the exploratory testing approach that helps them visualize missing functions, gaps in functionality or spot application design weaknesses. By continuously exploring, QA testers discover defects both superficial and those deeply embedded and persistent in the backend processing code the application relies on.

Up to now, the focus has been on manual testing methods for exploratory testing. What about building skills in test automation while exploratory testing? There is no reason test automation tools cannot be leveraged for exploratory testing. For example, codeless automation tools require no programming knowledge and are useful for creating automated test suites.

One could take their mind map, flow chart, or written descriptions of application functionality and create automated tests using them. Test automation works best in small functional groups or modular-style testing. However, one can simply break the visual tool into functional modules and automate each.

Prepare for frequent failures in test execution. When using automation for exploratory testing, expect frequent failures and re-work. Remember the purpose of exploratory testing is to find defects. Instead of manually walking through tests, use the automation tool and record modular tests and execute them repeatedly as tests are completed.

If tours or longer workflows are used for exploratory testing then attempt to automate full end-to-end paths through the functionality. See how far through the full workflow the automated tool gets. Best case scenario, the result is an automated test suite covering certain workflow paths. Such tests are handy for smoke testing execution or adding to automated test suites executed against each release or code build.

Features built on large language models have made exploratory testing harder to skip. The same prompt can return different wording, a different order, or a different level of detail on each run, so an automated check that asserts exact text fails for reasons that have nothing to do with a defect. An exploratory session handles this better, because the tester judges whether the answer is correct, safe, and within scope, then varies the input to find the cases where the feature refuses a valid request or accepts an invalid one. Automation still earns its place on the deterministic parts around the model, such as authentication, rate limits, and what the interface does when the model call times out.

Key Takeaway: Testing instincts improve the more of an application a tester explores, and automation belongs on deterministic behaviour such as authentication and rate limits, because features built on large language models return different wording on every run.

Which tools support an exploratory testing session?

Exploratory testing needs three kinds of tool: one that feeds awkward input, one that records what you did, and one that captures evidence when the build breaks. None of them designs the test for you. Bug Magnet is a Chrome and Firefox extension that adds common boundaries and edge cases to the right-click menu on any editable field, so a tester can drop a problematic value into an input without breaking the flow of the session.

The Recorder panel in Chrome DevTools records, replays and measures a user flow, which turns a path you stumbled into during a session into something the team can run again. For evidence, Playwright's Trace Viewer stores the locator used for every action, a screencast film strip, DOM snapshots taken before and after each action, the network requests, and the console output from both the browser and the test. A trace answers the question that sinks most exploratory bug reports, which is what exactly happened before the failure.

An agent can now take part in the session as well. Microsoft's Playwright MCP server drives a browser for a language model through Playwright's accessibility tree rather than pixel based input, so no vision model is involved and elements are referenced from that tree rather than by screen coordinates. That suits the mechanical half of exploration: walking every link, filling every field, listing what changed between two builds. The charter, the risk call, and the judgment that a result is wrong still sit with the tester, because the model has no view of what the customer expected. Read agent output as a fresh set of observations to explore, not as proof of coverage.

Key Takeaway: An exploratory session needs a tool that feeds awkward input such as Bug Magnet, one that records the flow such as the Chrome DevTools Recorder panel, and one that captures evidence such as Playwright Trace Viewer.

How do AI agents change exploratory testing?

AI agents take over the mechanical half of a session and leave the judgment where it was. An agent can walk an application and write down what it found, but it cannot decide which finding is worth holding a release for.

Playwright ships three test agents. The planner explores the application and produces a Markdown test plan, the generator turns that plan into Playwright test files, and the healer runs the suite and repairs the tests that fail. The healer replays the failing steps, inspects the current interface for an equivalent element or flow, suggests a patch such as a locator update or a wait adjustment, and reruns the test until it passes or until guardrails stop the loop. Its documented outcome is either a passing test or a skipped test, because the healer skips a test when it decides the functionality itself is broken. That second outcome is the useful one for an exploratory tester, since a skipped test is a lead to follow rather than a result to file.

The Chrome DevTools team publishes chrome-devtools-mcp, a server that lets a coding agent control and inspect a live Chrome browser, record performance traces, read network requests, and check console messages. That answers the question a screenshot never answers, which is what the page actually did. Read the warning in its documentation first, because the server exposes the content of the browser instance to the client, which can then inspect, debug, and modify any data in that browser. Point it at a throwaway profile, never at one holding real credentials or customer records.

None of this writes the charter. An agent has no view of what the customer expected, so it reports differences rather than defects, and the tester still decides which difference matters.

Key Takeaway: The Playwright planner, generator, and healer agents automate the mechanical half of a session, but an agent reports differences rather than defects because it has no view of what the customer expected.

Adding in science, creativity & intuition to build testing techniques

Creativity in test execution is an underrated QA tester skill, but extremely valuable in any type of testing. For success in exploratory testing, creative testing becomes essential. How can a tester use creativity, science, and intuition to build exploratory testing skills?

As previously discussed, don't disregard using personal application experiences and gleaning them for testing options. An annoying app, login defect, or failed functionality from personal use becomes a gold mine of information when exploratory testing applications. Fearlessly test outside the expected, or happy path and create creative test scenarios. The beauty of creative testing is not having to execute the same test over and over again. Creative tests find more defects that customers won't need to experience.

What about science? Use psychology to analyze developer and product team strengths and weaknesses. Analyze team members to understand common behaviors. When working with a development team over time, learn the mistakes team members tend to make. Some may work fast and get a lot of code checked in, but did they test it? Is there a unit test for it? When testing a code of theirs, how often does testing reveal a similar type of defect? Developers that don't test their code, or after merging to the main code branch produce defects not seen in their local environment. Experience with developers allows a tester to use exploratory testing to quickly find defects without digging deeply.

Analyze yourself as well. Do you tend to test quickly? Or do you test too much? Understanding personal tendencies, strengths, and weaknesses assist in finding defects.

For example, development teams experience communication issues frequently especially when application code stretches between integration application systems. When one team changes a function in the backend, it breaks another team's code. Integration testing using exploratory methods yields frequent defects. In another example, one team changes API code, and the application fails in another team's area. Integration issues are a boon for finding defects by exploring the UI and backend processing. Exploratory testing methods depend on fearless tester creativity. An exploratory tester finds the alternative answer, goes the wrong way, performs functions incorrectly, goes backward, and clicks buttons repeatedly. Exploratory testing tests outside the box and uncovers problems in areas otherwise untested. Be fearless, like an end-user who knows no bounds and doesn't read instructions, but simply goes for it to get their work done.

Also, check out this tutorial to learn about Pair Testing and its role in improving teamwork and testing quality!

Youtube thumbnail

Key Takeaway: Creativity finds defects by deliberately using an application the wrong way, while the science is studying which mistakes specific developers repeat, especially at the integration points where one team's code calls another team's code.

Author

...

Amy E Reichert

Blogs: 18

  • Twitter
  • Linkedin

Amy Reichert is a software quality assurance professional with 25+ years of experience in manual testing for web and mobile applications across healthcare, enterprise, and SaaS domains. She specializes in test case design, exploratory testing, regression, integration, and API testing using Postman, with strong experience in QA process leadership and test strategy. Amy holds ISTQB CTFL and CTAL-TA certifications and has authored multiple articles on software testing practices and QA careers, combining hands-on testing expertise with technical writing.

Add to Google preferred sources

Summarise with AI

Copied to Clipboard!
...

3000+ Browsers. One Platform.

See exactly how your site performs everywhere.

Try it free
...

Write Tests in Plain English with KaneAI

Create, debug, and evolve tests using natural language.

Try for free

Exploratory Testing FAQs

Did you find this page helpful?

More Related Blogs

TestMu AI forEnterprise

Get access to solutions built on Enterprise
grade security, privacy, & compliance

  • Advanced access controls
  • Advanced data retention rules
  • Advanced Local Testing
  • Premium Support options
  • Early access to beta features
  • Private Slack Channel
  • Unlimited Manual Accessibility DevTools Tests