Ad hoc testing

Ad hoc testing is informal, unplanned testing done without test cases, a charter, a time box or written notes: a tester or developer uses the product on instinct, tries whatever seems likely to break, and reports what does. It relies entirely on the tester's experience of where defects live, and it leaves no record of what was covered.

The longer version

There is no preparation. Somebody opens the build, goes to the part they suspect, and starts pressing things: submitting a form twice, pasting a paragraph into a name field, resizing the window mid-upload, hitting back after a payment. Whatever fails is written up. The approach works because an experienced tester carries a private catalogue of how software breaks and can run through it faster than any script, and it fails for the same reason: nobody else knows what was in the catalogue, so nobody can say what was and was not tried.

The nearest term is exploratory testing, and the difference is discipline. Exploratory testing adds a charter that names the target, a time box that bounds the session and notes that record it; ad hoc testing has none. Monkey testing is the other neighbour: random input with no intent at all, usually from a tool. Ad hoc sits between them, intentional but undocumented. Calling an unplanned poke exploratory in a test report misdescribes it, because the reader will assume there was a charter and notes to go back to.

An ad hoc defect is discovered in a state the tester cannot describe afterwards: what was in the form, which request failed, which of the six things tried actually triggered it. The report arrives as a note that it broke while the tester was messing with the upload, and stalls in triage as not reproducible. Ad hoc testing is also the approach that quietly replaces planned testing when a schedule slips, at which point the team has coverage it cannot describe and a release decision it cannot defend.

Common questions

Can ad hoc testing be automated?

Ad hoc testing cannot be automated, because its only asset is the tester's intent: each action is chosen because experience says it might fail, and no tool holds that experience. A tool that sends unplanned input with no intent behind it is doing monkey testing, which finds crashes rather than functional defects. What can be automated is the capture of what the tester was doing, so that a finding arrives with the state that produced it.

When is ad hoc testing useful?

After the planned tests have run, when an experienced tester has an hour and a hunch; in a bug bash, where many people hit a build at once; and immediately after a fix, to check the surrounding area a regression suite would not think to touch. It is a supplement to planned testing, never a replacement for it.

Who does ad hoc testing?

Anyone, which is part of its value and part of its risk. Developers do it on their own features before handing over, testers do it when a script finishes early, and product managers do it on a demo build. The findings are only as good as the report, so whoever does it needs a way to capture what they were doing.

What are the advantages and disadvantages of ad hoc testing?

The advantages are speed and reach: no preparation, no scripts to maintain, and an experienced tester finds defects a script would never have contained. The disadvantages are the absence of a record, so coverage cannot be stated or repeated, and the quality of the findings, which arrive without the steps that produced them. Ad hoc testing works as a supplement to planned testing and fails as a substitute for it.

Does ad hoc testing need documentation?

Ad hoc testing by definition has no plan or notes, but the defects it finds still need a proper report, with steps, the build, the environment and evidence, or they stall in triage as not reproducible. A tester who writes down in one line what they were doing when the product broke, at the moment it broke, turns an ad hoc finding into a bug somebody can fix. The session stays undocumented; the findings do not.

Bug reports that arrive ready to triage.

Collect replay, console, network and browser context with the Free plan.

<script src="…/widget.js" data-key="pb_pub_…">