Exploratory testing combines learning, test design, and test execution into one test approach.
We apply heuristics and techniques in a disciplined way so that the actual testing reveals more implications than just thinking about a problem.
As you test, you learn more about the system under test and can use that information to help design new tests.
Exploratory testing should start with a charter of what aspects of the functionality will be explored.
It requires critical thinking, interpreting the results, and comparing them to expectations or similar systems.
With exploratory testing, each tester has a different approach to a problem, and has a unique style of working.
However, there are certain attributes that make for a good exploratory tester.
A good tester:
- Is systematic, but pursues "smells" (anomalies, pieces that aren't consistent).
- Learns to recognize problems through the use of Oracles.
- Chooses a theme or role or mission statement to focus testing.
- Time-boxes sessions and side trips.
- Thinks about what the expert or novice user would do.
- Explores together with domain experts.
- Checks out similar or competitive applications.