It is very hard to explain something that we already do. Exploratory testing is fast catching up with testing community in the context of agile. Exploratory testing is a form of ad hoc testing. But adhoc testing is considered to be more unstructured and does not get a thumbs up with the project teams.
As a software tester, one will perform exploratory testing at some level in day today activities. So to give it a more structure accountability, one needs to set a right frame work. The objective behind the exploratory testing should not just be to perform it but to find better ways to execute and to think to what level it should be performed.
Exploratory testing fits in nicely in the context of agile testing. We can define exploratory testing as a progressive approach where the testers have to perform multiple things simultaneously; understand the application functionality, develop test design and execute tests. Exploratory testing will be effective if it is based on risk-based testing and requirements-based testing. Exploratory testing can help software testers to keep up with fast paced development of agile software projects.
The benefit of exploratory testing is that it is not just driven by the documented steps but evolves with the testers’ imagination and insight into the application. As long as the tester has the skills to listen, understand, think and report accurately and effectively, exploratory testing can be very productive and produce results not anticipated by a document.
Now to fit exploratory testing in agile context it cannot be adhoc. It needs to be time boxed to align with agile structure. Boundaries of the exploratory testing should be defined within the sprint time box. The black and white box testing techniques may be used along with exploratory testing to make it more effective. This ability to of the tester to react and adapt to change quickly makes exploratory testing a very strong component in agile.
A practical method that defines the set of heuristics should be applied when testing which will guide the tester to perform exploratory testing. The below categories will help create a framework of sort to define and conduct exploratory testing:
- Landscape: what the product is
- Functionality: what the product does
- Data Flow: what it processes
- Platform: what it runs on
- Operations: Who will use
Exploratory testing will make agile testing more result driven. It is an efficient and effective method to test software. It gives the much needed results immediately and finds the critical defects faster. Slowly it is becoming an industry standard for manual testing.
A special thank you to Moin Syed for writing this article.