Insights8 min read

Exploratory testing still matters in the agent era

By qtrl Team · Engineering

Exploratory testing has been on the list of things automation was about to make unnecessary for roughly twenty years. It keeps not happening, and the reason is worth understanding properly, because the current version of the argument is more interesting than the old one.

An agent can genuinely explore now. Point one at a staging environment and it will click through flows nobody scripted, try inputs nobody specified, and report things that look wrong. That's a real capability and it wasn't available three years ago. So the question isn't whether machines can explore. It's what human exploration was ever for.

What exploratory testing actually is

Not ad-hoc clicking. The distinction matters because the ad-hoc version is what people picture, and it's the version that deserves to be automated away.

Real exploratory testing is simultaneous learning, test design, and execution. You form a model of how the system works, notice something that doesn't fit the model, and follow it. Each observation changes what you try next. The output isn't a pass or fail, it's an updated understanding of where the product is weak.

Scripted testing checks whether the system does what you expected. Exploratory testing is how you find out your expectations were incomplete. Those are different activities and no amount of the first one produces the second.

What agents do well here

Coverage breadth, mostly. An agent will walk 200 screens without getting bored, and boredom is a genuine limitation of human exploration. It will try the 500-character input in every text field. It won't skip the settings page because it checked that last sprint.

Agents are also unbiased in a useful way. A tester who built a mental model of the app six months ago has blind spots exactly where the model is wrong. An agent has no model, so it does things a person wouldn't think to do. Sometimes that's noise. Sometimes it finds the case where the app breaks because nobody ever tried it in that order.

And an agent produces a record. Human exploratory sessions famously leave thin documentation, because writing down what you did interrupts the thing that makes exploration work. An agent logs every step by default, which turns an exploration into something you can replay.

What they don't do

The gaps are the same ones that have always separated checking from testing.

An agent can tell you a page returned a 500. It cannot tell you that the refund amount looked about twice what it should be, because knowing that requires knowing what refunds usually look like in this business. Most serious bugs found by exploration are of that type: the system worked, and the result was wrong in a way that only makes sense if you understand the domain.

Then there's the matter of following a hunch. The best exploratory sessions start with something small and off. A field that loads a beat slower than the others. A number that changed when it shouldn't have. A tester pulls that thread for forty minutes and finds a race condition. An agent exploring systematically will log the slow field as a performance observation and move on, because it has no basis for deciding that this particular oddity is the interesting one.

The last gap is the widest. An agent checks behavior against expectations it was given. If the expectations are wrong, or the feature solves the wrong problem competently, nothing in the process notices. That's the failure mode we flagged in spec-driven development, and it gets more likely as more of the pipeline derives from the same source document.

How to actually combine them

Sequence them rather than choosing. Agents first, humans second, and the agent output shapes where the human looks.

  1. Agent sweep for breadth. Let it walk the application broadly and report anomalies: errors, dead ends, states that look inconsistent, inputs that produce odd output. Set it loose on areas that changed recently.
  2. Triage the output. Much of it will be noise. Some will be a symptom of something larger. Triage is a human job and it's quick, because you're reading a list rather than doing the clicking.
  3. Human session on the interesting parts. Timebox it, pick a charter, and start where the agent found something it couldn't explain. The agent did the reconnaissance. You do the investigation.
  4. Turn findings into cases. Anything worth catching again becomes a managed test case. That's what stops the same exploration from being repeated next quarter.
Agents do the reconnaissance, people do the investigation1Agent sweepbreadth, no boredomlogs every step2Triagequick, humanmost of it is noise3Human sessioncharter, timeboxedpulls the thread4Managed casescoverage that lastsSkip step 4 and you redo the whole thing next releaseA session that finds three bugs and leaves nothing behindfixed three bugs. The knowledge evaporated.The agent finds what's odd. Only a person knows which odd thing matters.Charters bound both halves: depth somewhere specific, not shallow coverage everywhere

Step four is where most teams lose the value. An exploratory session that finds three bugs and leaves nothing behind has to be redone from scratch every release. The bugs got fixed, the knowledge evaporated.

Charters still beat free-roaming

This applies to both the human and the agent. "Go explore the app" produces shallow coverage of everything. A charter produces depth somewhere specific.

A charter is one sentence: explore the subscription upgrade flow, with a focus on what happens when payment fails partway. It bounds the session without scripting it. For agents it does something extra: it keeps the run from wandering into surfaces it shouldn't touch, which is the difference between an exploration you can run against a shared environment and one you can't. That's the same logic behind proportional governance for testing agents: the boundary is what makes autonomy usable.

The role shift that's actually happening

Testers aren't being replaced by agents doing exploration. The time spent on the mechanical part of exploration, the clicking through to confirm the obvious paths work, is getting absorbed. What's left is the part that was always the skilled bit: deciding what's worth investigating, understanding the domain well enough to notice a wrong answer, and knowing which loose thread leads somewhere.

That's a better job than the one it replaces. It's also a harder one to hire for, and teams that cut testing headcount because agents now handle exploration are going to find out which half they automated.


qtrl runs agent-driven exploration inside defined boundaries, so a session covers the area you pointed it at and produces a record of what it actually did rather than a summary you have to take on trust.

Findings become managed test cases, which is the step that turns a one-off exploration into coverage that persists. The agent handles the breadth, your team handles the judgment, and neither one has to repeat last quarter's work to find out what changed. See how it works.

Have more questions about AI testing and QA? Check out our FAQ