Exploratory Testing vs. Ad Hoc Testing

Software Testing 101

Exploratory Testing vs. Ad Hoc Testing

Is exploratory testing the same as ad hoc testing? The short answer: No. While they do have some superficial overlap, if you pit exploratory testing vs. ad hoc testing, you will quickly find that they are two very different things. 

Let’s start with ad-hoc testing. What is it?

What is Ad Hoc Testing?

Wikipedia (that source of all knowledge), defines ad hoc testing as “a commonly used term for software testing performed without planning and documentation.” On the surface, ad hoc testing offers many of the same benefits as exploratory testing. It is an informal, free-form method of software testing that offers the possibility of unearthing critical bugs missed by automated or regression testing.

On the other hand, however, ad hoc testing is random, unstructured testing. It doesn’t have any rules, boundaries, goals, plan, or target. Without these specifications, ad hoc testing is difficult (arguably impossible) to manage or measure, and therefore, is unscalable as a testing methodology. Furthermore, ad hoc testing’s inherent lack of documentation means that any bugs that are discovered will be a challenge to reproduce. 

The truth is, if the purpose of software testing is to determine an acceptable level of business risk, ad-hoc testing has very little practical significance. 

How is Exploratory Testing Different?

Exploratory testing, on the other hand, offers the freedom of ad hoc testing, with the scalable advantages of more formal testing methods. Using session-based exploratory testing allows you to set boundaries, goals, and a target around an exploratory test, while still leaving the tester free to think creatively and critically while executing their test. 

Exploratory testing also relies on thorough documentation of each action taken, so that any defects discovered during the test are easy to reproduce later in development. In these respects, exploratory testing is more manageable, measurable, and scalable than ad hoc testing, making it a far more practical testing method overall. 

TL;DR:

 If you pit exploratory testing vs. ad hoc testing, exploratory testing will win every time.