Exploratory Testing 101
What is Exploratory Testing:
The term ‘exploratory testing’ was coined by Dr. Cem Kaner in 1983.
Exploratory Testing as defined by James Bach is: "Exploratory testing is an approach to testing that emphasizes the freedom and responsibility of each tester to continually optimize the value of his work by treating learning, test design, and test execution as mutually supportive activities that run in parallel throughout the project."
As long as the tester is thinking and learning while testing and the next tests are influenced by the learning, the tester is performing exploratory testing.
Exploratory Testing is like playing a game of chess. A good chess player plays his next move depending on the opponent’s move and the stage of the game.
As described in the presentation by Dr. Cem Kaner: “The exploratory tester is always responsible for managing the value of her own time." A good tester always asks: How can I apply the learning from my previous test?
Tester-Centric and Feedback loops: The tester uses his skills to approach the problem and controls the process. The tester continuously implements the feedback received from the previous test.
Tools, Scripts and Documentation: If you are wondering if tools can be used in exploratory testing, the answer is simple. Tools can be used to assist testers. Tools might be used to any degree as much as they help the tester meet the mission. Testers can definitely use tools in an exploratory manner to improve their testing activity.
Can an exploratory tester use test cases?
Yes, a tester testing using exploratory approach can use test cases to assist his testing activity. Lack or presence of scripts does not define exploratory testing. Any testing activity where the learning from the previous test influences the next test is exploratory testing to some degree.
Skills of an Exploratory Tester: What skills help an exploratory tester explore better? Some of the following skills are worth mentioning:
- Critical Thinking
- Lateral Thinking
- Quick Learning
- Communication – Oral and Written
- Bug Hunting and Bug investigation
Misconceptions about Exploratory Testing
- Exploratory Testing cannot be managed or measured.
One of the ways testers can effectively manage and measure exploratory testing is using Session-Based Test Management. SBTM helps testers and managers track and manage the exploratory sessions. Exploratory testing emphasizes the importance of establishing credibility.
- Only an experienced tester can do exploratory testing
Exploratory testing, being an approach can be used by any tester. The experience of a tester is not the pre-requisite for exploratory testing. Any tester who is willing to learn and practice the skill of exploration and investigation can perform exploratory testing. Explaining and defending the testing activities is important in exploratory testing. A tester must be able to tell why he chose to do a particular test or why he chose not to run a particular test. Hence, experience helps in this matter.
- Exploratory Testing means no documentation
As described in the ‘General Functionality and Stability Test Procedure’ document by James Bach, there can be detailed documentation even in exploratory testing.
Articles on Exploratory Testing
Dr. Cem Kaner: A Tutorial in Exploratory Testing: http://www.kaner.com/pdfs/QAIExploring.pdf
Elisabeth Hendrickson’s Test Heuristics Cheat Sheet: http://testobsessed.com/2007/02/19/test-heuristics-cheat-sheet/
Michael Bolton – Testing Without A Map: http://www.developsense.com/articles/2005-01-TestingWithoutAMap.pdf
Jon Bach – Exploratory Testing – Inside the Spectator Sport: http://www.quardev.com/content/whitepapers/et_inside_spectator_sport.pdf
James Bach - General Functionality and Stability Test Procedure: http://www.satisfice.com/tools/procedure.pdf
Jon Bach - Session-Based Test Management - http://www.satisfice.com/articles/sbtm.pdf