What is Exploratory Testing?
In scripted testing you follow a script that tells you where to click, what to enter, and what to expect. Freestyle exploratory testing does not rely on scripts, but rather on the experience and intelligence of the tester. As you go you change your plan and approach based on what you have seen so far, just as you would when exploring an island or a new city.
Exploratory testing is not ‘just clicking around randomly’. It is quite the opposite. Good exploratory testing demands critical thinking, an eye for detail, a good deal of imagination and a natural curiosity for “what if”’s. It takes expertise, intuition and practice.
Exploratory testing is perhaps the most difficult and skilled form of manual testing. So I’ve gathered a few of my favourite resources to help you on your way.
What makes Exploratory Testing so Difficult to Do Well?
The number of combinations of actions in most applications is staggering. We just can’t test everything. Developing a feeling for where potential problems are most likely to arise is a continuous learning process. Good exploration involves knowing where to focus testing and how much testing is enough.
When should I stop testing?
This is the classic question in testing. How much testing is enough? When should I stop? When you’re new to testing, it’s can be difficult to figure out. Sometimes you spend a lot of time uncovering not much new information. Other times you stopped testing too soon and missed an important insight. Finding the balance is a matter of experience. To get you started, these stopping heuristics are a really fun way to experiment!
These stopping heuristics mentioned on James Bach’s blog might help:
- The Time’s Up (also known as timeboxing – a great one to start with)
- Dead Horse
- Mission Accomplished
- Mission Revoked
- I Feel Stuck
- The Pause That Refreshes
- Customary Conclusion
- No More Interesting Questions
- Avoidance / Indifference
How Can I Organise Exploratory Testing?
Session-based Test Management is a great method for planning, structuring and reporting exploratory testing. It involves filling in a session sheet with the following information:
- Session charter (includes a mission statement, and areas to be tested)
- Tester name(s)
- Date and time started
- Task breakdown (what you tested, what you tried, time each took)
- Data files (if you used these for input)
- Test notes
Mind-mapping tools can help you to structure your brainstorming. Some of these also let you create a checklist from your mindmap.
How can I share my Exploratory Testing Results?
- Rapid reporter can help you take notes and screenshots, and use these to report on exploratory testing sessions.
- Alternatively, screen capture tools such as FastStone or similar can help you report your results.
- Pair Testing can help transfer testing knowledge among team members. One person ‘drives’ by operating the mouse and keyboard. The other person thinks out loud and gives instructions. Participants swap roles halfway.
- Or you can gather experience over time by Keeping an Exploratory Testing Notebook.
We have life hacks. What about testing-hacks?
Test Heuristics are, put simply, rules of thumb that can help you test better. There are many, many rules of thumb.
- Tools For Exploratory Testing summarizes testing heuristics to help you test.
- This Test Heuristics Cheat Sheet can also provide inspiration for exploratory testing.
- Testing Tours are another great way to explore new software. You can tackle a whole module or component at once. The concept is simple: choose an angle from which you want to approach your software and then take that tour. Take notes as you go and use these to report.
Where can I get more testing inspiration?
These are two of my favourite resource hubs, for exploratory testing and beyond!