Error Guessing and Exploratory Testing
Error guessing and Exploratory testing are functional test techniques based on the test engineer’s knowledge, experience, and intuition. The skill in error guessing and exploratory testing is to derive a comprehensive set of tests without missing areas, and without generating redundant tests.
Error guessing and Exploratory testing are typically viewed as unstructured approaches to software testing.
Some people argue that error guessing is not a valid testing technique; however, highly successful testers are very effective at quickly evaluating a program and running an attack that exposes defects. Error guessing is usually most productive in falsification type testing, but when coupled with exploratory testing these techniques can be used to design a set of tests that will uncover errors and successfully validate the product works as expected.
Error Guessing is not in itself a testing technique but rather a skill that can be applied to all of the other testing techniques to produce more effective tests (i.e, tests that find defects).
Error Guessing is the ability to find errors or defects in the AUT by what appears to be intuition. In fact, testers who are effective at error guessing actually use a range of techniques, including:
1. Knowledge about the AUT, such as the design method or implementation technology.
2. Knowledge of the results of any earlier testing phases (particularly important in Regression Testing).
3. Experience of testing similar or related systems (and knowing where defects have arisen previously in those systems).
4. Knowledge of typical implementation errors (such as division by zero errors)
5. General testing rules of thumb of heuristics.
Exploratory testing is extremely useful when we are faced with software that is untested, unknown, or unstable. But after the product is more stable and settled, we would like to have a way to ease into a less labor-intensive, hopefully automated, mode of testing. Exploratory testing ventures into the product while it is still in great flux and not yet ready for automation. According to IEEE, Exploratory testing is the most widely practiced testing technique. Tests are derived relying on tester skill and intuition, and on the tester’s experience with similar programs. More systematic approaches are advised. Exploratory testing might be useful (but only if the tester is really an expert) to identify special tests not easily captured by formalized methods.