As its name implies, Exploratory Testing is about exploring, finding out about the software, what it does, what it doesn’t do, what works and what doesn’t work. This is more over depend on the experience of the tester and that is why it falls under the Experience Based Testing category. The tester is constantly making decisions about what to test next and where to spend the (limited) time. This is an approach that is most useful when there are no or poor specifications and when time is severely limited.
In this type of testing the testers have to do minimum effort for planning but maximum execution cover so that tester gets exact functionality. The planning involves the creation of a short time-boxed test effort, the objectives and possible approaches to be used. The test design and test execution activities are performed in parallel, without formally documenting the test conditions, test cases or test scripts.
A key aspect of exploratory testing is that during testing the tester learns about the software, its use, its strengths and its weaknesses. In this type of testing tester have freedom in testing. The finding bug is not only depends on experience of tester but also on the skill of the tester. The more the tester knows about the product and different test methods, the better the testing will be. The focus of exploratory testing is more on testing as a thinking activity.
This is an approach that is most useful when there are no or poor specifications and when time is severely limited.
Advantages of Exploratory Testing
- This testing is useful when requirement documents are not available or partially available
- It involves Investigation process which helps find more bugs than normal testing.
- Uncover bugs which are normally ignored by other testing techniques
- Helps to expand the imagination of testers by executing more test cases which finally improves productivity as well
- This testing covers all the types of testing and it covers various scenarios and cases
Disadvantages of Exploratory Testing
- This testing purely depends on the tester skills
- Limited by domain knowledge of the tester
- Not suitable for Long execution
- Defects can be left in this type of testing, as nothing is documented
Tips to perform Exploratory Testing
- Focus on goals: Purpose is to break the system by going out of the User flow. Focus on these goals to maximise the value of your tests.
- Plan your tests but don’t script them: You are not exploratory testing if you are following a script.
- Don’t aim to test too much: The aim of exploratory testing is not coverage - it’s to find the defects and issues in a system that you won’t find through other forms of testing.
- Keep a clear record of what you did: This will give you an indication of how effective the session was, allowing you to optimise the process in the future.
- Use exploratory testing alongside automated testing: It’s important to coordinate both testing types to ensure the values of both exploratory testing and automated testing are realised, e.g. when exploratory testing finds a defect, you can add an automated test to stop the issue from happening again.
- Performance and non-functional testing can be exploratory:Performance and non-functional testing can also be exploratory, e.g. tracking an increasing load on a system, or measuring the time it takes a use case to fully complete from start to finish.