Exploratory testing focuses on the discovery, the exploration, and the investigation of a digital product, looking at its functional, graphical, and ergonomic aspects. As exploratory testing is carried out without a test plan, it requires to simultaneously manage several testing activities: the product discovery, the understanding of its functioning, and setting up a testing strategy. Testers thus combine all these testing activities in order to carry out relevant testing cases that haven’t been previously considered.
This qualitative approach brings organizations to adopt an exploratory testing approach based on experience.
Why do organizations choose exploratory testing?
If they have the adequate resources and the time, organizations can choose to carry out exploratory testing in addition to other testing methods and in particular to the scenarized method.
But there can also be other reasons behind this choice: a limited budget, a tight schedule that makes preparing the campaign thoroughly impossible, a project that doesn’t justify too much time spent on the writing process, the will to do an audit at a certain point in time, not enough or out of date documentation or a project management method that allows for quick development and release times.
Whatever the reasons behind an organization’s decision to go for exploratory testing, a certain number of best practices should be observed.
What best practices should be put into place?
Have the adequate resources
Exploratory testing is an activity that stresses the testers’ individual freedom as well as their engagement and responsibility: they are the ones who decide, alone, where and how to test. They have the latitude to focus on the functionalities and paths that they consider important.
It is thus essential to have the adequate resources in order to launch an exploratory testing phase. Testers should have a thorough bug hunting experience as it will allow them to understand and analyze the digital product that is being tested and to sense and guess where risks can reside. It is crucial to make sure that testers are multi-skilled, creative, inquisitive and autonomous. They should also have a keen sense of observation and the capacity to improvise since they have to be able to know which new tests they want to carry out based on what they are discovering as their enquiry progresses.
Prepare the tests
Doing exploratory testing doesn’t mean testing without control or randomly. It is a structured approach that requires thorough preparation.
If the digital product has already been tested, a bug and common default classification would have been created along with an analysis of the causes. This constitutes a ground documentation to which testers will be able to refer when they start their enquiry.
Present the product and the requirements
A presentation of the product will have to be given to the testers before they start their missions. This will help them understand how the end users would use the product and give them a few testing ideas which will constitute the starting point of their enquiry. The presentation of the requirements will be used to introduce the missions, the aspects on which specific attention will have to be paid and to explain the reasons behind the tests.
Set a time for tests
It will be useful to give testers an indication of the time that has to be spent on each type of tests as it will help them optimize their organization.
It is primordial to precisely define the scope that has to be covered during the testing phase. Is the campaign’s goal to carry out a full audit? Or on the contrary, should it be focused on a specific functionality or path?
Defining the scope avoids having bugs being rejected afterwards if for example the functionalities tested haven’t actually been finalized yet or are beyond the scope (external functionalities etc.). A solid preparation will also rationalize the testing effort by making sure that an evolving perimeter (e.g.: a freeze on a functionality that is going to be consolidated or deleted) isn’t tested.
Don’t try to test everything
The aim of exploratory testing is not the range of the tests done. It is good practice to not try to test everything but to test according to the campaign’s requirements. Some campaigns will aim to get to the essential points and to focus on critical risks that have to be brought under control, whilst others will focus on a continuous improvement logic, hunting small hidden bugs for example.
Create a complete bug report
A bug report lists and details the incidents that were encountered during the testing phases (To know more, read our article about Bug reporting).
In the case of exploratory testing, the creation of a bug report is challenging. Testers have to pay special attention to communication in order to explain in a complete and detailed manner the idea behind the tests done, the steps taken, the conditions under which the tests were carried out, the covered areas, the results and the evaluation of the defaults.
Drawing from the bug report and from the testers’ individual feedbacks, debriefing will help decide if additional testing is required.