art <------> science
for the sake of this analogy let’s say that exploratory testing is somewhere in the middle …
art <-----et-----> science
now add the extremes. monkey testing simulates random touch screen input regardless of what is displayed on screen, just like you’d given the device to a monkey. i put automation as the other extreme; what’s more opposite of a monkey than a machine?
art <-mt-----et-----auto-> science
filling in the lower end a bit would be adhoc testing. i remember when i worked at that large software empire in redmond washington they often used the concept of both adhoc general and adhoc directed.
filling in the top end i separate exploratory into freestyle exploratory (which bach discusses on his website) and directed exploratory (which is a term i made up assuming that bach’s use of freestyle exploratory implies that there is another more structured version, as exploratory testing often has a charter, giving the tester structure within which to execute their exploratory testing).
one last test methodology I would add to the art\science spectrum is your standard everyday test case execution, or scripted testing …
art <-mt-----ag-----ad-----fe-----de-----scripted-----auto-> science
i think we should also make this spectrum show a greater distance between directed exploratory testing and test cases execution, perhaps like this …
of all the methodologies listed above, exploratory testing makes best use of tester knowledge, without being overly rigid thereby getting in the way of using that knowledge.
when is it good to utilize exploratory testing?
- You need to provide rapid feedback on a new product or feature.
- You need to learn the product quickly.
- You have already tested using scripts, and seek to diversify the testing.
- You want to find the single most important bug in the shortest time.
- You want to check the work of another tester by doing a brief independent investigation.
- You want to investigate and isolate a particular defect.
- You want to investigate the status of a particular risk, in order to evaluate the need for scripted tests in that area.
that’s that on the subject of exploratory testing for now. feel free to comment on, poke holes in, or perhaps even to support the above; it’s all part of the brainstorming process in the effort of knowledge sharing and professional development.