Exploratory Testing
In this section, we will learn about exploratory testing, its types, when we use it, the advantage and disadvantages of it.
What is exploratory testing?
If requirement does not exist, then we do one round of exploratory testing.
So, for this first, we will be exploring the application in all possible ways, understanding the flow of the application, preparing a test document and then testing the application, this approach is known as exploratory testing.
When we use exploratory testing
We will use this testing for the following aspects:
- When the requirement is missing
- Early iteration is required
- The testing team has the experienced testers when we have a critical application, and new testers entered into the team.
For example, to test any software or the application, first, we will perform unit, integration, and system testing.
So if we want to understand any application first, we will perform unit or component testing, suppose the application is having a login page having many elements, and we will understand each part and doing the component testing, but actually, we are doing the exploratory testing because we are exploring the application.
Suppose we have many modules in the application, and we are trying to do some integration scenarios.
Indirectly we are just doing exploratory testing while performing the integration testing.
And, even if we are performing system testing, indirectly, we are performing exploratory testing because here we are also understanding and exploring the application.
Why the requirement is missing
The requirement is missing because of the following reasons:
If the project is very old, the test engineer can’t understand each scenario from the starting, and it might happen that the requirements will be missing.
For example, in each company, we don’t see any fast process which means, we cannot expect the release to be done in just one month, and the product should be delivered in very less duration of time.
Many companies are still in the development phase for a particular product from the last 6 to 12 years.
Suppose one company has a 15-year-old project, and they hired a new test engineer now. The new test engineer faces many difficulties in understanding every scenario or requirement from scratch or starting because he/she is new with the application.
In that case, what test engineer will do with software that is 15 years old?
So firstly, he/she will take the application and start exploring the application. Once the test engineer starts using the application, he/she will get to know how the application is working. And, this process is nothing but exploratory testing.
How to perform exploratory testing
To perform exploratory testing, first, we will start using the application and understand the requirement of the application from the person who has a good product knowledge such as senior test engineer, and developers.
Then we will explore the application and write the necessary document, and this document is sent to the domain expert, and they will go through the document.
And we can test the application based on our knowledge, and taking the help of the competitive product, which is already launched in the market.
Types of exploratory testing
Exploratory testing can be divided into three parts, which are as follows:
- Freestyle
- Strategy based
- Scenario-based
Freestyle
In freestyle testing, we did not follow any rules, there is no maximum coverage, and we will explore the application just like Adhoc testing.
If we want to get friendly with the software and checks the other test engineer’s works, we can use freestyle exploratory testing.
Strategy based
Strategy based exploratory testing can be performed with the help of multiple testing techniques such as risk-based, boundary value analysis, and equivalence partitioning.
It is done by the experienced tester and who is using the application for the longest time because he/she is known the application very much.
Scenario-based
Scenario-based exploratory testing is performed with the help of multiple scenarios such as end-to-end, test scenarios, and real user scenarios.
The test engineer can find defects and also checks various set of possibilities for the multiple scenarios with their application knowledge while they were exploring the application.
Advantages and Disadvantages of Exploratory Testing
Advantages
Following are some benefits of exploratory testing:
- If the test engineer using the exploratory testing, he/she may get a critical bug early because, in this testing, we need less preparation.
- In this testing, we can also find those bugs which may have been missed in the test cases.
- This testing can be used to test the new features, whereas, for the existing functionality, we will use the regression testing if we have less time to test the application.
- For the test engineer, this testing requires a lot of concentration to explore the application.
Disadvantages
Following are the disadvantages of exploratory testing:
- Time Consuming
It is a time taking process because we don’t know the requirement, and which feature has to be tested first because we are just exploring the application. - The test engineer will misunderstand the feature as a bug.
For example, suppose we have one login page and requirement says we have to provide the necessary details like username, password, and employee id then click on the login button.
But while performing exploratory testing, we only provide the details of username, password, and then click on the login button, but we have not entered the employee id. Since we don’t have the requirement, and doing exploratory testing, that’s why we feel that the employee id component is a bug, but it is a feature. - Bugs can be misunderstood as a feature
For example, suppose we have one registration page where we have to provide details like the username, password, mobile number, and the email id.
And the requirement says that when we are providing the mobile number and email id, the same code will be sent to the registered email id and mobile number to verify whether it is correct or not.
But when we are performing exploratory testing on the registration page and provide all the details (user name, password, mobile number, and email id), the code will only be sent to our mobile number, not to the email id.
It is happening because the requirement is missing, and we will be misunderstood that this bug is a feature, and we never come to that this is a bug.