Concept: Exploratory Testing
Exploratory testing is test design and test execution at the same time. This is the opposite of scripted testing (predefined test procedures, whether manual or automated). Exploratory tests, unlike scripted tests, are not defined in advance and carried out precisely according to plan.
Main Description

Thought to have first been defined by Cem Kaner et. al. in Testing Computer Software [Cem Kaner, Jack Falk, and Hung Quoc Nguyen 1999. Testing Computer Software, 2nd Edition. John Wiley & Sons, Inc.], exploratory testing has been publicized by the work of others, including James Bach. Bach advocates a style of exploratory testing where short sessions of exploration lasting approximately 90 minutes are briefly planned and undertaken, with the results recorded and reviewed.

The following quote from James Bach explains some of the benefits of Exploratory Testing:

"Exploratory software testing is a powerful and fun approach to testing. In some situations, it can be orders of magnitude more productive than scripted testing. I haven't found a tester yet who didn't, at least unconsciously, perform exploratory testing at one time or another. Yet few of us study this approach, and it doesn't get much respect in our field. It's high time we stop the denial, and publicly recognize the exploratory approach for what it is: scientific thinking in real-time." [James Bach 2001. What Is Exploratory Testing? (And How It Differs from Scripted Testing). Software Testing and Quality Engineering Magazine, Jan 29, 2001.]

Bach provides a simple definition of the technique as "test design and test execution at the same time". This technique for testing computer software does not require significant advanced planning and is tolerant of limited documentation for the target-of-test. Instead, the technique relies mainly on the skill and knowledge of the tester to guide the testing, and uses an active feedback loop to guide and calibrate the effort.

We recommend the following resources for further information on exploratory testing: