As we all know that word ‘EXPLORE’ means to search and discover something with a purpose to find more on it. Hence Exploratory testing is an approach where testing is concisely described as simultaneous learning, test design, and test execution. The term exploratory was coined by Cem Kaner.
It emphasizes the personal freedom and responsibility of the individual tester to do testing with his ‘thinking’ ability and parallel following the actual software testing life cycle process. During the testing phase, where there is severe time pressure, the exploratory testing technique is adopted, which combines the experience of testers along with a structured approach. It should be performed by skilled testers who can manage their timelines. The more the testers know about the product, the more methods they can think to perform testing in a better way. The functionalities are tested in an ad-hoc manner to find bugs in an application.
Exploratory testing is directed from requirements and scripts/test cases explored during testing. It’s like investigating a system or application. It is structured and rigorous, highly teachable, and manageable. The next step /decision we take depend on what is being done currently. The tester configures, operates, observes, and evaluates the product and its behavior, critically investigating the result, and reporting information that seems likely to be a bug. Exploratory testers often use tools, including screen capture or video tools as a record of the exploratory session, or tools to quickly help generate situations of interest. It is complementary to automation testing as it focuses on new features being added. When agile and exploratory methods are combined, they give excellent synergy for the testing experience.
Exploratory testing can be done by using Session-Based Test Management (SBTM) in 5 Stages:
1. Create a Bug Taxonomy
• Categorize common types of faults found in the past project.
• Analyze the root cause analysis of the problems or faults
• Find the risks and develop ideas to test the application.
2. Test Charter
3. Test Charter should suggest
• what to test
• how it can be tested
• What needs to be looked
4. Test ideas are the starting point of exploration testing
5. Test charter helps determine how the end-user could use the system
• 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 to the response from the system and prepare for the correct outcome
• Evaluation of the defects
• Learning from the testing
• Analysis of coverage areas
• Compilation of the output results
• Compare the results with the charter
• Check whether any additional testing is needed
These stages make testing auditable and measurable on a broader scale. Testers should know the reason for testing precisely. They must keep notes and draft a document with steps being followed during testing. Peer-testing must be done to ensure more coverage and tracking of issues found during testing. More testing ensures digging of more scenarios, which improves overall productivity in the competitive world of software.
When To Use
• Early sprint is required, or there is a lack of time
• Team has experienced testers
• There is a critical application to test on the fly
• Requirements and Specifications are incomplete
• To know the thinking process of new member
• Verify the previous testing has found significant issues
Tools For Exploratory Testing
• JIRA capture
• Test pad
• EDA tools – Histogram, plots, charts
• Q Trace
• Less preparation time.
• It is useful when testers have less information about AUT.
• Critical and Important bugs are found early and quickly.
• Testers use reasoning skills instead of being dependent on test cases for proceeding with testing on – fly.
• Encourages creativity and opens the horizon of testers to find scenarios, generate more ideas & think out of the box.
• The tester can use all types of testing techniques.
• Quality of testing depends solely on knowledge of testers.
• Difficult to review and re-visit the methodology followed during testing as its done mostly on-fly or ad-hoc basis.
• Not suitable for time-consuming products.
In Software Engineering, Exploratory testing is performed to overcome the limitations of scripted testing. It helps in improving Test Case suite. It focuses on learning and adaptability.