Exploratory testing – a term coined by Cem Kaner – is a software testing method that implements learning, test design, and test execution at the same time simply because you explore while testing. It really doesn't follow a set of procedures, scripts or standards that is why it is mistakenly known as the "do it yourself" or careless activity, which is in fact, this approach describes an intellectual testing. During testing, the tester knows how the software really works, develop test design based on learning and experience, and the control to perform the entire testing stage. Because of the freedom that the exploratory testing offers, it solely depends on the tester's skill to find bugs, create test cases, and the responsibility to deliver the project optimizing the quality and value of the software.
Situational Behavior of Exploratory Testing
Unlike scripted testing that follow procedures, the exploratory testing is extensive in such a way that it is a trial and error situation. Performing this approach requires keen observation of the behavior, thorough investigation, critical thinking/tactics in finding bugs, analyze the possible issues, and evaluate the entire software.
A situational example for this is playing an online game. At first, the user has to know what it is all about, the objective, and how to play the game. While playing, the user now identifies the environment and functionalities of the game. The user discovers then the encountered difficulties and foresees potential problems on each level. At the same time, the user thinks strategies/solutions and also executes them as well and be able to complete and achieve the objective of the game.
Therefore, relating the situational example to exploratory testing, the following are the keys to remember:
(a) Identify the project's purpose.
(b) Determine the requirements and functionalities of the software.
(c) Identify the limitation of the software.
(d) Test the functionalities thoroughly based on the requirements.
(e) Create test cases that verify the consistency of the software.
- Less preparation before the implementing the software testing because it doesn't require writing repeatable test procedures.
- Testing, designing and executing the software simultaneously saves time.
- Report many issues caused by incomplete or wrong documentation.
- Test designs created can't be reviewed prior to actual testing which might produce possible issues.
- Minor issues are poorly detected.
- Difficulty to perform the exact manner especially for new found bugs.