Repetition in testing

Many people in the IT industry seem to hate repetition. Doing something more than once? Silly you, automate it! What strikes me as funny is that it’s probably not all that easy to automate some of these things. It takes time! But apparently, that’s not what matters. It’s more about the avoidance of repetition. 

In testing, I see this same notion trickling through. Repetition? Yuk! Write an automated check. Humans are too good to be doing the same things.

I want to break a lance for repetition in testing though.

With repetition I don’t mean ‘follow a test script to the letter and ignore everything else time after time’. That’s a human trying to be like a computer. That’s not where we shine.

No, when you repeat some steps during testing, force yourself to pay attention to all the details around what you’re doing. Maybe we can call this ‘mindful testing’. Be in the moment when you test. Is that too vague for you? It just means: turn off all your notifications, sit in a quiet spot and really only focus on the testing; try to quiet your thoughts. You’ll see that there’s much more to see than if you test and talk with your colleagues at the same time, or get distracted by a Slack notification. Of course, you don’t have to do this all day. But a session or two like this? Golden.

Another never disappointing heuristic you can use while repeating some tests is ‘vary variables’ (you can read about this in the book Explore It!). Maybe your test path is the same each time, but if you feed it new interesting input each time, you might uncover some defects. Last week, I was testing an app that gave me as output: an amount of money with localised currency. That is interesting to test, because there are quite some rules when it comes to localisation and currency. Do you display “€2,44”, “€2.44”, “2.44€” (not even looking at different currency symbols here)? That all depends on the country you’re in. The programmer hadn’t used all the standard options the library provided, so we had some issues there.

Could I have automated this as checks? Sure, but before I did these repetition tests with the variable ‘currency’, I hadn’t even realised how many different ways of displaying currency there are. Engaging with the application made me think about this. Repeating some tests with this variable made me notice some things, made me do some research on the matter. Now that I have learned more about it, I might immediately automate them as checks next time in another context.

So, repeating a simple test might seem boring or silly to some, but to me it is not. I learned something valuable. That, to me, is worth a lot.

Next time you test something you’ve tested before, slow down. Don’t think of repetition as your enemy, but try to get the most out of it. Need inspiration to vary your ‘repetitive test’? Just look at the never ending awesomeness the Test Heuristic Cheat Sheet provides.