An ad hoc test can be described as an exploratory case that you expect to run only once, unless it happens to uncover a defect. As such, ad hoc testing is sometimes viewed as a wasteful approach to software testing. On the other hand, many skilled software testers find the exploratory approach to be one of the best techniques for uncovering certain types of defects. In this paper we’ll put ad hoc tests into perspective with other forms of exploratory testing. Along the way, we’ll also develop a comparison between jazz improvisation in the musical world, and improvisational software testing.

You might wonder why we’re placing such emphasis on the idea that ad hoc tests are fundamentally one-off cases. To begin with, the one-off characteristic distinguishes ad hoc tests cleanly from the formal testing paradigms that place the emphasis on re-executing tests, such as acceptance testing and regression testing.