Agentic Test & Development
What Is Agentic Test & Development? From Test Scripts to Autonomous Engineering
The term is getting used loosely
"Agentic testing" and "agentic test automation" show up everywhere right now, often as a rebrand of things that were already true: a test suite that runs in CI, a script with some retry logic, a framework that generates test cases from a spec. Those are real improvements on manual testing, but they're not what makes something agentic. The distinguishing feature isn't that a machine executes the test: scripts have done that for decades. It's that a machine decides, at each step, what to do next based on what it currently observes, rather than replaying a sequence someone wrote down in advance.
That distinction is worth being precise about, because the two approaches fail differently, extend differently, and deserve different amounts of trust.
Traditional test automation: a fixed script
A traditional automated test is a script. It runs the same steps, in the same order, every time it's invoked. That's not a criticism. Determinism is exactly what you want from a regression suite, most of the time. The problem shows up at the edges.
A test written against one fixture revision breaks silently when the fixture changes, because the script has no notion of "the fixture changed." It just executes its next line against whatever's there and reports whatever that produces. An unexpected state during the run (a fault condition, a retry the device under test wasn't supposed to need, a slower-than-usual response) usually isn't handled so much as it's collided with: the script wasn't written for that state, so the run just fails, whether or not the failure means anything about the requirement under test. And extending coverage means writing new script from scratch: a new workflow or fault case is another file, another set of fixture assumptions, another thing to maintain.
None of this is a flaw in test scripting as a discipline. It's a consequence of what a script fundamentally is: a fixed plan, authored ahead of time, with no way to reason about what it encounters that its author didn't anticipate.
The agentic approach: a bounded decision loop
An agentic test replaces "run these steps" with "read the current state and decide the next bounded, approved action." The agent doesn't have a fixed list of steps memorized in order. It has a goal, a set of operations it's allowed to perform, and the ability to look at what the interface is actually reporting before deciding what to do next. In practice this takes a consistent shape:
That shape doesn't change between tests. What changes is how the agent fills it in, because it's responding to what's actually there instead of executing a script blind to it. A slower-than-expected response doesn't automatically fail the run; it's a state the agent can reason about within its bounds, the same way a careful engineer would pause and check rather than immediately calling the test broken. And extending coverage doesn't mean writing a new script: it means pointing the same bounded operations at a new workflow, because the operations themselves (acquire, capture, wait on a condition, send an approved message, stop, release, package evidence) are already general enough to compose into whatever sequence the current state calls for.
This is also why "agentic" doesn't mean "unsupervised" or "unrestricted." The agent never gets raw, general-purpose access to test hardware: no open shell, no arbitrary command execution against a live bus or ECU. It acts through a narrow set of bounded operations, each one a defined, reviewable action rather than an open-ended one. That boundedness is what makes it reasonable to let an agent make its own decisions against real hardware in the first place: a decision loop with unrestricted actions is a liability, but one restricted to acquire, act, gate, and release, with every action logged and reviewable, is something an engineer can actually trust with a real bench.
Why the distinction matters in practice
The practical consequence isn't that agentic testing is "smarter" in some abstract sense. It's that the lifecycle around a test (bringing an interface up, watching for the right condition, tearing it down cleanly) stops depending on an author having predicted every state it might encounter. A script fails outside the states its author imagined. An agent operating within a bounded set of operations can reason about a state its author didn't specifically write for, because reasoning about the current state is the mechanism, not an exception path bolted onto a fixed sequence.
That reframes what "coverage" means, too. Instead of a growing library of hand-written scripts, one per fixture variant and fault condition, coverage becomes a question of which bounded operations an agent has access to and which workflows it's been pointed at. That difference matters most where fixtures vary, faults are part of the requirement, and someone would otherwise have to sit and watch: CAN and ECU test benches, ROS 2 and DDS systems, and hardware-in-the-loop rigs running test orchestration around real devices.
Agentic Test & Development: the full comparison, and every workflow it applies to.
See the full picture →