TL;DR
Now that we know the idea behind exploratory testing let’s explore exploratory testing elements. This is a part of the Exploratory Testing Pathway. Many thanks to Marcel who sublimed this great resource on his blog, That’s the buffet table.
We describe exploratory testing elements based on General Functionality and Stability Test Procedure [Bach].
Product Exploration
In software testing, we have a product. What does it mean to explore a product in exploratory testing?
We discover and record:
- product purpose and functions,
- types of data processed,
- area of potential instability.
What are preconditions to be able to do exploratory testing?
We need to have:
- a general understanding of technology
- info about the product and intended users,
- the amount of time to do the work.
Exploratory testing has structure and can not be mixed with Ad-Hoc testing.
In the exploratory testing test, design and execution are done concurrently. With test design, we determine strategies for operating, observing, and evaluating the product. During the testing activity, we use a test design strategy to operate a product and observe it’s behavior. We use gathered information to form our hypothesis of how product work (our model of the product that could be wrong). Heuristics are fallible guidelines (rule of thump) that could help us to decide how to test and what to test.
Exploratory testing is a result-oriented process. You stop exploring when deliverables that meet the specified requirements are produced. Those deliverables must be reviewable and defensible against test manager certification, you must be able to explain to Test Manager how your work meets exploratory testing requirements specified in the exploratory procedure.