Exploratory testing is what James Bach called “scientific thinking in real-time”, “test design and test execution at the same time”. Cem Kaner difines it as “sophisticated, thoughtful approach to ad hoc testing”. In other words, it is the opposite of scripted testing, which is about predefined test procedures carried out according to plan.
When scripted tests are carried out and some information that offers a new test strategy comes up, it is the time for exploratory testing to reveal itself. It is especially useful in complicated situations when you don’t know much about the product and you have to prepare a set of scripting tests.
Exploratory vs. Scripted Testing
While scripted testing mechanizes the test process by writing down the scenarios and executing them, exploratory testing aims to exceed the bounds of this approach and make testing a more intellectually rich and fluid process.
Scripted testing includes test cases and following them strictly. The steps are documented and the bugs are reported. This methodology can simply lead a tester to a desired result but many bugs users might face can fall out of scope. In this way you successfully solve certain issues and pass over the other ones.
Exploratory tests are carried out ‘on the go’ and allow the tester to take steps which a user might take but not the ones the script tells. Having no restraints it shows how the product might be used ‘in the wild’. A common thing for the creators of the product is to miss some unexpected details. Exploratory testing brings a fresh eye here.
In general, while scripted approach is a way of intensive testing of prescribed cases, the exploratory approach may uncover the unexpected defects.
Pros And Cons Of Exploratory Testing
- No need for long preparation
- More intellectual approach
- Quick detection of bugs
- Does not require documentation
- Requires a certain mindset
- Its unstructured nature makes it easy to lose focus
- Due to performing ‘on-the-fly’ it can sometimes be difficult to define exactly which tests were run and hard to repeat certain cases if necessary
When To Use Exploratory Testing
- You need to learn the product quickly and provide a rapid feedback
- You don’t know what the next test should be
- To diversify the testing process after having done scripts
- To do a brief check of other testers’ work
Exploratory and scripted testing are the two approaches that are not mutually exclusive but, on the opposite, fully compatible and can be used on the same project. Actually, most of the software testing problems cannot be solved from only one of these approaches but require both of them on different stages.