Discovery. Investigation. Learning. These are the three main aspects that Exploratory Testing emphasises. The most prominent characteristic is that the Test Cases are not created in advance; testers check the system on the fly. The focus of exploratory testing is more on testing as a “thinking” activity. During testing, the tester learns about the software, its use, its strengths and its weaknesses.
Exploratory testing was defined as "a style of software testing that emphasises the personal freedom and responsibility of the individual tester to continually optimise the quality of his/her work by treating test-related learning, test design, test execution, and test result interpretation as mutually supportive activities that run in parallel throughout the project.” by Cam Kaner, who coined the term back in 1984.
There are no hard and fast rules regarding the steps in which Exploratory Testing is done. In general, most of them have the following features:
- Step 1: Create a Test Charter
Exploratory Testing does not mean no documentation. Make a list of the following basics:
Scope and Approach: High-level description of the system, components and functionality that need to be tested.
Method for recording tested cases and results
- Step 2: Set a Time-frame
A deadline to work within will help the tester focus.
- Step 3: Log as you execute
Log test cases and results as you test. Logging creates audit and reference for your efforts. This can be helpful when you want to go back and review individual scenarios.
What should your Output be?
- List of test cases and outcomes – including screen capture or videos of each test case
- A report with key findings and recommendations.
There are several advantages to Exploratory Testing:
- Faster discovery of major bugs
- Decreased lead time for beginning testing
- Most importantly, testing normally untested parts of the system, and therefore discovering hidden bugs that can cause a lot of heartburn.
- 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