Have you ever been in a new city or town and been tempted to take a shortcut that you don’t know will actually be short? A hunch tells you it will be quicker. What do you do? Will you take the risk and go with your gut? Or, will you stay on the same path, safe in the knowledge you will get there? It most likely depends on a lot of different factors, some dependent on what drives you, others on circumstances you find yourself in. I tend to take shortcuts because;
- I want to find the optimal path and that might not be the one I am on
- I want to increase my understanding of the city
- I find it a fun challenge to explore new cities
- The unknown is an opportunity for new learning
- It improves my mental model of the city.
- Instead of being told, I’m learning for myself
- It’s fun to do things differently
- I know it will probably turn out ok (I won’t die)
- I have the time to be wrong
- I’m not afraid of getting it wrong
- I pride myself on being smart
- I desire to find a better way
- I’m aware that there are many paths to destinations and I’m not always on the optimal one
- Not having a map is fun! (for me).
- I might find a new cafe or art shop that is off the beaten track
Of course, this is my list and I wouldn’t expect this is how everyone operates. Everyone’s different. I could chose not to explore, and instead use my smartphone to tell me where to go. But I enjoy relying on my hunches, it gives me confidence and the added bonus of understanding the city.
Shortcuts can be a gamble, especially when your time constrained. And what if you end up in a dead end? There are times when acting on your hunches can cost you a missing train, or having to use your terrible spanish to ask for directions, but as a method of better understanding the city and discovering that amazing coffee shop? Priceless. For exploration and learning, gambling on your hunches can pay off very nicely.
Hunches in Exploratory Testing
There is a moment in Exploratory Testing (ET) when you come to a full stop. Mostly, it’s because you are stuck. You simply don’t know what to do next. That moment can happen anytime. It can happens before you begin exploratory testing and you don’t know where to start. It can happen when you run out of testing ideas and your testing comes to a grinding stop. The desert of no ideas is a compelling reason to stop and stamp the exploration as done but it comes with a tradeoff. A critical bug, may just be about to reveal itself before you stopped your testing. What can you do though? Creativity isn’t a tap that you can turn on at will. And once you’re in that boredom rut, its difficult to extract yourself from it. So, how can we prevent ourselves from giving up too quickly?
The good news is that Exploratory Testing is a skilled activity. As our skills develop, we begin to identify and work through these tricky periods. And so, instead of giving up, we maintain momentum, perhaps discovering interesting bugs that we may never have revealed themselves.
But what drives continued exploration over giving up? What drives one tester to continue exploration while the other stamps the exploration as complete? Experience plays a big part. A seasoned Exploratory Tester knows from experience that pushing through, and changing tactics often provides dividends. But what about exploratory testers who don’t have the experience, are they simply blundering through the system and happening on bugs? How do they discover bugs?
Could it be that exploratory testers rely on hunches to drive their testing?
For instance, an exploratory tester has a hunch that a bug exists outside a boundary. Until they test they won’t know, but they trust their gut instinct.
Hunch Makers and Hunch Breakers
It stands to reason then, that we want to create conditions when performing our exploratory testing where hunches can be easily generated and can thrive. This will help us work through the times we lose our way while testing. Here are my top hunch breakers and hunch makers, the elements that break or make a healthy hunch.
Sense of Purpose
It helps to have purpose when exploratory testing. Making it your mission to find the most unusual bug that leaves people wondering how you ever came up with the idea of testing for that!
Sense of Learning
Creating a mental model of what you are testing, and building on that model through exploration is what helps generate new test ideas. Provide an environment which encourages learning new things especially in your testing.
Open to being wrong
You can’t explore without a few dead ends. Sometimes you are not going to find any bugs. Have the long view. The end goal of exploratory testing is rich mental model of the system, the bugs are simply one element of that.
Indulge the Hunch
Knowing there is never one path to the end goal opens up opportunities to explore. There are multiple dimensions to our systems simply craving for exploration. The paths are there, are you willing to explore them? Indulge your hunches, feed them plenty of attention and encouragement and before you know it, all those options will begin to open up before you.
Sense of Curiosity
It’s hard to create an environment that indulges curiosity when you have a backlog thats a mile long, and time is scarce, but some things can help. Be systematic and disciplined outside your outside your exploration time will free your mind a bit more during exploration. When you perform exploratory testing, try and stay in the moment, giving yourself permission to fully enjoy the time.
Sense of Adventure
I love the adventure in exploration. It’s fun for me. I get that not everyone has the same sense of thrill in finding bugs. If exploring for nuggets of malfunction is really not your jam, that’s ok. I think it’s unfair and unrealistic for everyone to feel this way. Think of what drives your sense of adventure, and see if you can support exploratory testing using that. At the very least, let us have fun and respect we get a thrill out of our work!
Confidence in my ability
I know I don’t have to get it perfect. I’ve given myself permission to trust my hunches and not worry if they are right or wrong in finding a bug. No bug is simply additional information in my understanding of the system. Over time I’ve come to trust my ability. You will too.
Of course I can’t end without mentioning time. The scarcity of time can make it hard to explore, but it can also make it fun. The thrill of finding something quickly through exploratory testing when exhaustive test automation would never have is always a nice dopamine hit. It’s all a matter of perspective…
What about you? What conditions do you require that provoke a hunch or enable you to act on a hunch?
Explore some more..