Exploration as Purposeful Play
Let's think of exploration as :purposeful play
A purpose both shapes and limits our play. We'll want to be clear about those shapes and limits as we work on exploratory testing.
We might shape our exploration by setting out how we'll explore or what we're looking for.
Example: we'll look for our friends in every room of the club.
We might limit our exploration by setting out what we consider worth exploring, and how much time we might spend on that exploration.
Example: if we don't find them in a few minutes, we'll let them find us.
We can steer that exploration with judgement – how we'll value what we see, how we decide whether to look deeper, or more broadly.
Example: that sounds like a room we'd all want to be in...
Some exploration, and some exploratory testing, is characterised by not knowing much about what we might be looking for. Our judgement will be a key part of any discovery.
We'll also need a comparison
Example: those people look like our friends.
So much for play. We're at work, and we work as testers.
At work, we'll typically need to limit our exploration with the time we can give it, and what we can do with the resources available. We'll shape that exploration with some judgement around what might look surprising, and how we might sense those surprises.
Example: I'll feed in as many of my big pile of invalid input files as the system can process in 20 minutes, and I'll look for process hangs, CPU usage and file movement while it's doing that. I'll skim the output with a short script looking for unexpectedly empty and unexpectedly large output. and spend the rest of the hour with several output files for a deeper dive.
You'll recognise this as something like a charter and a timebox from the well known session-based testing approach to exploratory testing.
Let's think about Exploratory Testing as Exploration with Judgement.
:x Purpose in play
See Alan Richardson’s Dear EvilTester book, chapter “What is exploratory testing?”
Alan calls this intent, I tend to say purpose