
Agentic QA
How to let an agent test your product end to end on every pull request.
You can read the contents and the first 2,000 characters.
Pro includes the whole book.
- By Sahar Carmel
- 20 chapters
- Updated Nov 1, 2026
- 48 readers
What’s inside
- Part I · The agent tests the product
- Test like a user, or do not bother
- An environment the agent can reach
- An identity the agent can become
- State the agent can seed and reset
- Surfaces come from the diff, not from where users notice
From the first page
Two things are true at once, and this book keeps them apart.
The first is general. An agent can test your product the way a user does: sign in as a real account, upload a real file, wait for the real background job, read the result with the real command-line tool, and tell you what broke. It can do this on every pull request, against a deployed environment, without a human in the loop. The catch is not the agent. The catch is that most systems are built so that a check cannot fail. The agent runs the checklist, every row turns green, and nobody can say what the green proves. Part I of this book is about building the system so that a check can fail, visibly, and so the agent can tell you when its own evidence is worthless.
The second is rarer. If what you ship is itself a plugin, a skill or an agent that runs inside someone else's coding agent, you have a problem the first method does not solve. Your product's behaviour happens inside a host you do not control, on a machine you have never seen, under a configuration your user set up. Almost nobody tests that today. They test on their own machine, with their own logged-in agent, and call it done. Part II describes an environment that holds the coding agent, the branch build of your plugin and a real user identity, per pull request, and produces evidence about what your plugin actually did in there. It extends to fresh installs on every operating system your users have, and to evaluating whether the plugin behaves, not only whether it loads.
Part III is about making the practice stick: the two skills that run it, what a PASS is allowed to mean, and the document that holds all of it.
Preview · 2,000 of 137,119 characters
Contents
- 01About this bookp.1
- 02Prefacep.2
- 03Part I · The agent tests the productp.3
- 04Test like a user, or do not botherp.4
- Where the agent is better than you, and where it is notp.4
- The worked example: what the agent could seep.4
- How we built itp.4
- Rulesp.4
- Your pagep.4
- 05An environment the agent can reachp.5
- The worked example: the leaksp.5
- How we built itp.5
- Rulesp.5
- Your pagep.5
- 06An identity the agent can becomep.6
- The rosterp.6
- The worked example: the key that kept disappearingp.6
- The worked example: the password the agent could not carryp.6
- How we built itp.6
- Rulesp.6
- Your pagep.6
- 07State the agent can seed and resetp.7
- The worked example: a number that had been true oncep.7
- Porting the seed scriptsp.7
- Reset is checked against the schemap.7
- How we built itp.7
- Rulesp.7
- Your pagep.7
- 08Surfaces come from the diff, not from where users noticep.8
- The mapp.8
- The worked examplep.8
- How we built itp.8
- Rulesp.8
- Your pagep.8
See all 20 parts
- 09Side effects you cannot seep.9
- The two silencesp.9
- How we built itp.9
- Rulesp.9
- Your pagep.9
- 10Journeys that reach outsidep.10
- The upgrade, and the document that was wrong about itp.10
- One production account, reproducedp.10
- How we built itp.10
- Rulesp.10
- Your pagep.10
- 11Part II · Testing the agent itselfp.11
- 12A runner that holds a coding agentp.12
- What is in the boxp.12
- The self-check, and the path it runs underp.12
- The headless recipep.12
- Changing who you are inside the runnerp.12
- How we built itp.12
- Rulesp.12
- Your pagep.12
- 13A check that cannot fail is not a checkp.13
- What the stream looks like when it worksp.13
- Absence is not evidencep.13
- The fix, and the proof of the fixp.13
- How we built itp.13
- Rulesp.13
- Your pagep.13
- 14Every machine a user hasp.14
- The journey, as a stranger experiences itp.14
- The matrixp.14
- The worked example: the first real runp.14
- Rulesp.14
- Your pagep.14
- 15Evaluating behaviour, not only functionp.15
- The block that grew until it broke itselfp.15
- The wordingp.15
- The ledger, tested the same wayp.15
- How we built itp.15
- Rulesp.15
- Your pagep.15
- 16Part III · Making it stickp.16
- 17Two skills: one writes the plan, one runs itp.17
- The rewritep.17
- The preflight that blockedp.17
- How we built itp.17
- Rulesp.17
- Your pagep.17
- 18What a PASS is allowed to meanp.18
- The skepticp.18
- The worked example: five rows that said PASSp.18
- How we built itp.18
- Rulesp.18
- Your pagep.18
- 19The book your agent readsp.19
- The chapter that lied by being oldp.19
- How we built itp.19
- Rulesp.19
- Your pagep.19
- 20Appendix A. The kitp.20
- The gatep.20
- Test routesp.20
- Personasp.20
- Scenariosp.20
- Silencesp.20
- The runnerp.20
- Fresh installsp.20
- Waitingp.20
- +3 more sections




