Exploratory, Ad-Hoc, and Scripted Testing

Cem Kaner first introduced the term “exploratory testing” in the book Testing Computer Software (Wiley). In his use of the term, he offered an approach that emphasized the value of testing as a brain-engaged, thoughtful process, as opposed to testing by executing prescriptive test scripts. Since then, software testing expert James Bach has devoted more than a decade to teaching, writing, and presenting on the topic of exploratory testing. The following is a definition of exploratory testing taken from James’s website:

The plainest definition of exploratory testing is test design and test execution at the same time.

With exploratory testing, test charters are written to focus testing and provide a strategy for a test session. Session-based exploratory testing adds the concept of defining a length of time for the session. Testing is executed in sessions where the focus remains primarily, if not exclusively, on the test charter. Within a test session, a tester can explore, create ideas, and execute these ideas, providing a sense of test coverage and confidence. And when it’s not possible to finish all of the ideas in one test session, additional test sessions can be planned. Exploratory testing takes discipline.

There are elements from this definition posted on Wikipedia that are worth reflecting on:

Exploratory testing seeks to find out how the software actually works, and to ask questions about how it will handle difficult and easy cases. ...

Get Beautiful Testing now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.