Piece of puzzles

How doing puzzles can make you a better tester?

For Christmas, I was offered a good 1000 pieces puzzle. I wanted one for a long time but I couldn’t find one that I didn’t find ugly. So I made myself a cup of tea with some gingerbread and I was ready to appreciate this winter sunday with a smile.

I started to assemble some pieces, get some struggles, nothing unusual for this activity. But this time, the more I advanced into the process of doing puzzle, the more I observed myself fighting against biases and organize the way I look for the missing pieces. Suddenly I realized that I was doing some Exploratory Testing* there! Of course I was not looking for bugs but the way to operate to find the right piece had similiraties with what you would do, and react during an Exploratory Testing session.

This gave me a boost to continue to observe how doing a puzzle is a great training for exploratory testing and what they have in common. It was very interesting, so let me share with you what I’ve learned.

Choose a strategy

If you don’t have a strategy and a proper organization, you will struggle longer than necessary. Trust me, open the puzzle box, randomly pick one piece and stare at the others hoping to find the right fit will make you wanna cry pretty quickly.

The best way to avoid a nervous break down is to opt for a strategy. How will you conduct this experience?

Did you spot an area of the puzzle that you can make first and grow from there? Or will you try to build several bits and work on assemble them later?

How will you select your data? Will you sort the pieces according to what you see on the model? or maybe just by colors? or by shapes?

How will you be sure that you have the correct dataset to find the missing piece?

Keep in mind that there is no absolute correct answer. You have to adapt to the puzzle itself, aka your System Under Test, and to the strategy that will make you find the most pieces without wasting too much time.

Focus

Once you have your strategy, you’re ready to go and try it. It’s time to focus and execute what you’ve planned. Here are some things I’ve learned on focusing while doing my puzzle

Those who chase two rabbits at once, will catch neither

Don’t look for several pieces at the same time. When you are looking for a piece, you make a map in your mind of what this piece should look like. You have an idea of what shape it should be, what would the global color be, what are the details that you should find on it. Looking for several pieces at the same time would make you loose some of the information on mix them and make it more difficult to find the correct piece.

Focus on you Area Under Exploration. If you planned to explore the subscription form, don’t look at the order funnel. Stay focus. If an idea comes to your mind, note it for later but don’t go there! Stay on the path you chose for now.

About Cognitive Biases

Here, be very careful about the biases you might have. Your brain is always trying to complete the picture for you. So you will assume that a piece should have such shape, such details on its edge but careful to not eliminate possibilities! More than often, you’ll notice that the piece you were hardly looking for did not have the shape you expected or didn’t complete the image in the way you thought it would.

How to talk about Exploratory Testing without mentioning cognitive biases? Always be aware of them. You can read a list of them before you begin your exploration. Having them in mind will help you avoid falling into their traps.

Eliminate the doubts

If you have any doubt about a piece of puzzle, try it. You have nothing to lose and you will gain knowledge about what works and what does not. It’s better to be sure than just assume for an output.

If you have the intuition that an action, a set of data or an event could provoke a bug, try it. Don’t stay with an intuition, check it. Worst case scenario : you’ll learn that what you imagined was right. And in my opinion it’s a very precious thing to know. Even better: Question why you have this intuition. What make you feel that this particular thing could provoke chaos? Where does this intuition come from? Is there something to dig in here?

Defocus

Once you have that unpleasant feeling of having tried everything but nothing works. When you start blaming the dog for eating a coin or holding back from flipping the table, take a step back.

Take a deep breathe and then start the Defocusing phase.

First, look at the puzzle more broadly. Maybe you’ve assumed some pieces would not be a correct fit and you’ve put them aside. But what if the solution is in those pieces waiting in the corner?

When you think you tried all the pieces you could with no result, take a break and come back to the same place later. You’ll have another perspective and will come back fresh. We learn by watching and doing. While you were starring at the pieces for hours, unfortunately tried them at inadequate places, you were learning. So give your brain some rest to properly register what it learned.

You’ll have to trust me, but more than once I just find the right piece at first look when coming back at this bloody puzzle after a short break. And it’s a bless when you have this Eureka moment and know exactly what piece would be a good fit for this precise place when you’ll come back to the puzzle.

After you went deep on a test session and had a time of real focus. Take the time to look at what you did from a broader perspective to see if you are satisfied with what you discover or if you find more tests you can perform on this same Object Under Test. Maybe you’ll get new ideas or find some cases you might have eliminate too quickly. Often you’ll launch the software for the 101 times and see something you missed before. Defocusing is a very important step of an exploratory testing session, do not neglect it.

Adapt

All the steps describe above forms a loop. You have to repeat them many times to achieve the puzzle.

Each time, redefine your strategy and organize according to the context your in. Find the way it works the best for you at the current moment.

Then, give it all you’ve got. Make some tea, eliminate the distractions and take a dedicate time to focus on what you’re doing. Find the flow.

But don’t get stuck in your previous system. When you’re starting to struggle, acknowledge it’s time to defocus. If while doing so, you find that your strategy is not working anymore, change it. Sometimes it’s better to organize pieces by color, sometimes it will be by shapes or by the details you find on some pieces.

The analogy is pretty obvious here. Don’t get stuck with a way of doing exploratory testing. Adapt and change things as you feel like it. Do it how you think it makes sense according to what you are testing and what you are looking for. In less words? Be Agile my friend.

Conclusion

Doing puzzles can help create a mindset for exploratory testing. We learn and automate by practicing and I think puzzles are a good way to practice concentration/defocusing/adaptation exercises.

I found it fun to see the parallels between how I test and how I puzzle. I had fun watching myself operate and build a testing strategy while doing this puzzle, taking notes each time I saw a useful point to put into perspective for this article.

I hope you enjoyed reading this article and feel like doing a puzzle now. Even if it’s just to test what I said.

I, for one, have a very serious excuse to buy puzzles with my corporate credit card and do them more often!

*Exploratory testing is a type of software testing where the tester actively explores the application to find defects without following a predetermined test plan. It emphasizes the simultaneous learning, test design, and execution, allowing the tester to uncover new and unexpected issues through an iterative process of investigation and experimentation. The focus of exploratory testing is on discovering as much information about the software as possible, rather than just verifying pre-determined requirements.


Posted

in

by

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *