What is Exploratory Testing?
Also known as Ad-Hoc Testing, Exploratory Testing is done without any predetermined test scripts to interrogate various functions in a software application, website or system in order to discover any unforeseen weaknesses and report on the overall veracity of the system.
Why is Exploratory Testing important?
Unlike scripted Testing, Exploratory Testing uses cognitive techniques to learn more about the system or software.
Where scripted and Automated Testing are useful to determine any issues or weaknesses based on direct requirements, Exploratory Testing provides a user-driven approach to finding bugs that may not have been anticipated during development and through formal testing.
This gives companies an extra layer of protection against issues that would otherwise not have been flagged before their systems go into production and are exposed to customers.
How is Exploratory Testing done?
It’s important to note that unlike other forms of testing that tend to be technique-based, Exploratory Testing is an approach rather than a set discipline. The ‘next steps’ of Exploratory Testing are informed by what is discovered or what came before, not a predetermined script. It also usually forms part of an overall Agile methodology, where the iterative principles of Agile are applied to testing in the form of continuous learning.
Exploratory Testing is usually done in five stages:
- Categorise issues, based on known or previous issues.
- Create a test charter, so you know where to look, what to look for, and how to resolve any issues discovered.
- Set a time block for testers to work together for set periods, which focuses their testing and manages the response time for discovered issues.
- Review the results so you know what, if anything, went wrong and what can be improved for the next iteration.
- Compare the results against the test charter and determine if everything has been correctly covered or if further testing is necessary.
When should you do Exploratory Testing?
Exploratory Testing is usually done in conjunction with more formal, scripted testing and Test Automation. It should not be used as a substitute to other types of testing, rather as a complement. Some examples of when Exploratory Testing is typically done include:
- When a new system is developed and there is limited data on previous issues with the system.
- When you want to ensure the system performs optimally for its intended purpose, using human interaction and intuition on how it would typically be used.
- To get a better understanding of how a system works, and uncover any issues that deviate from those expectations.
- When it is absolutely critical that every precaution has been taken against potential issues, or when quality is the number one priority.
What are the benefits of Exploratory Testing?
Exploratory Testing introduces human intuition into the testing process, which brings with it certain unique benefits, including:
- The ability to test for specific use-case scenarios that may not have been scripted.
- Get a more complete understanding of the system through iterative learning, rather than signing off on a series of predetermined tests.
- Gain a better understanding of expected user behaviour and reaction to the system that can’t be attained through scripted testing.