Exploratory testing is a software testing approach which involves investigation of system or application without any predefined test case or plan. It is also described as simultaneous learning, test design, and test execution.
Exploratory testing is a hands-on approach that emphasizes adaptability and learning with minimum planning and maximum test execution.
Phases of Exploratory Testing
- Learn: As the title implies this phase involves learning about the target system & exploring its functionalities.
- Test Design & Execution: Both test design and test execution are performed simultaneously in Exploratory Testing and no formal scripting or documentation for the test cases is involved.
- Interpretation: This phase involves test logging which is also performed at the same time of test execution. It includes documentation of
1) Key aspects of tested functionalities
2) Issues found
3) Thoughts regarding further testing
How to make Exploratory Testing effective
- And say it clearly
Replicate: The first step is to replicate the issue else it is hard for a tester to convey the severity of the issue to a developer.
Isolate: Make it simple, minimize the number of steps needed to reproduce the issue. Be precise.
Maximize: Don’t stop testing once you replicate an issue. Run follow up tests to uncover the root cause of the issue and document it.
Generalize: Un-corner the edge cases and try other scenarios that may reproduce the same issue.
Externalize: Externalize your view. Don’t look for issues only from a tester’s perspective but also from various other roles like a customer, stakeholder, etc., and document the impact.
And, say it clearly: Make your bug report clear. Provide crystal clear information so that the issue speaks for itself.
Benefits and drawbacks
The key benefits of exploratory testing are less preparation and lesser execution time. The other advantages are
- Exploratory testing is useful in the situation involving the lack of or partially available requirement documents.
- It uncover bugs which are normally ignored or invisible to other testing techniques.
- It drills down to the smallest part of the application and covers all the functionalities of the application.
- Encourages creativity and intuition
- Exploratory testing purely depends on the tester skills and limited by domain knowledge of the tester.
- Replication of issue is difficult since tests are not scripted.
- Reporting of the test results is a challenge as there are no pre-planned scripts.