Exploratory testing is an approach to software testing that emphasizes the engagement of the tester, the unscriptedness of testing, and the tester’s control over what and how to evaluate the software.

James Bach calls it

scientific thinking in real-time.”

Testing in the exploratory style is often set in opposition to scripted testing, where the test design, exact testing steps, and the expected outcomes have been determined in advance. Scripted testers follow a set of test cases, the paths in the software they are checking have been considered and laid out for them in advance.

Exploratory testers have the freedom and the latitude to go down paths they think are important, have potential for problems, or that an issue in another area leads them to think it should be checked out. It’s an integrated approach to testing that locates test design, test execution, and test insights in one person at one time. By freeing testers from the encumbrance of documenting their steps in advance, the exploratory approach gives them the chance to incorporate what they learn, as they learn it, directly into the next test.

It’s not about testers doing whatever they like, it’s not about randomly clicking or pushing buttons, it’s not about finding just anybody to take your software for a spin.