Exploratory Testing techniques
What is Exploratory Testing-
Exploratory Testing is an approach to software assessment that integrates learning about the program that's being developed with plans for future testing. Exploratory testing is sometimes referred to as ad hoc testing.
Once coding is complete, exploratory testing helps developers learn more about a program's functionality and discover whether requirements have been missed or misunderstood. Missed requirements may turn into new user stories, or they may be bugs that need to be fixed right away.
Testers manage the scope of exploratory testing by using a concept called charters. Charters are statements of what aspects of the system are to be tested. Unlike scripts, exploratory testing charters leave the actual steps of the testing up to the skilled and disciplined tester. For example, while a script might say "Type John Smith into the User field and 1234 into the Password field," a charter might simply say "test the login functionality."
Designing charter for exploratory testing is one of the most difficult aspects of exploratory testing. It is hard to know how much testing is enough, what aspects of the system need more coverage or how long a tester should spend examining any particular aspect of the system.
Exploratory Testing is a formal testing procedure that does not follow any set approach to identify bugs or errors. It is also known as ad hoc testing and it may often be associated with unplanned testing, as it does not follow any test plans. Nevertheless, exploratory testing is a practice that can be incorporated in a formal testing environment.
Though the current trend in software testing is to push for automation, exploratory testing is a new way of thinking. Automation has its limits.
Benefits of Exploratory Testing-
- Promote real-time thinking and helps in uncovering more defects.
- Promote use cases and scenario-based testing.
- Minimal documentation, maximum testing.
- Emphasis is more on learning and broadening the horizon of a tester.
- Avoid duplicate work.
- Useful when you want to audit other tester’s work.
How to do Exploratory Testing
Exploratory test preparation goes through following 5 stages detailed below and it is also called session based test management (SBTM Cycle):
- Create a Bug Taxonomy (classification)
- Categorize common types of faults found in the past projects
- Analyze the root cause analysis of the problems or faults
- Find the risks and develop ideas to test the application.
- Test Charter
- Test Charter should suggest
- what to test
- how it can be tested
- What needs to be looked
- Test ideas are the starting point of exploration testing
- Test charter helps determine how the end user could use the system
- Time Box
- This method includes a pair of testers working together not less than 90 minutes
- There should not be any interrupted time in those 90 minutes session
- Timebox can be extended or reduced by 45 minutes
- This session encourages testers to react on the response from the system and prepare for the correct outcome
- Review Results:
- Evaluation of the defects
- Learning from the testing
- Analysis of coverage areas
- Debriefing:
- Compilation of the output results
- Compare the results with the charter
- Check whether any additional testing is needed
- For Example, during exploratory execution, the following needs to be done:
- The mission of testing should be very clear
- Keep notes on what needs to be tested, why it needs to be tested and the assessment of the product quality
- Tracking of questions and issues raised during exploratory testing
- Better to pair up the testers for effective testing
- The more we test, more likely to execute right test cases for the required scenarios
- It is very important to take a document and monitor the following
- Test Coverage - Whether we have taken notes on the coverage of test cases and improve the quality of the software
- Risks - Which risks need to be covered and which are all important ones?
- Test Execution Log - Recordings on the test execution
- Issues / Queries - Take notes on the question and issues on the system
Exploratory Testing Techniques-
- Divide the application into modules and bifurcate modules into different pages. Start your ET from the pages. This will give the right coverage.
- Make a checklist of all the features and put a check mark when that is covered.
- Start with a basic scenario and then gradually enhance it to add more features to test it.
- Test all the input fields.
- Test for the error message
- Test all the negative scenarios.
- Check the GUI against the standards.
- Check the integration of the application with other external applications.
- Check for complex business logic.
- Try to do the ethical hacking of the application.
When use exploratory testing?
Exploratory testing can be used extensively when
- The testing team has experienced testers
- Early iteration is required
- There is a critical application
- New testers entered into the team
Conclusion:
In Software Engineering, Exploratory testing is performed to overcome the limitations of scripted testing. It helps in improving Test Case suite. It empathizes on learning and adaptability