One of my favorite heuristics for when to automate something is if I’m bored. If I’m doing the same thing over and over again, perhaps it is something I can or should automate. Recently though I was struck by the thought that perhaps boredom can be a heuristic for something else as well.
I was testing something in the UI and I was getting kind of bored, so my heuristic kicked in and I started thinking about what I could automate. The work I was doing was kind of tricky to automate and after a while I started to feel like I might be wasting my time so I stopped to reflect on what I was doing.
I was trying to check various combinations of inputs in a particular area, but when I stopped to think about why I was doing it, I realized that I might be going down the wrong track. The point of my testing was to make sure that the UI would work with these kinds of inputs. Once the UI passed them on though it really had nothing to do with them, and the lower level engine would take over. I knew that we had tested the engine to make sure it properly dealt with various combinations of these inputs, so why was I doing that again here? When I stopped to think about it, I realized that the risk the UI would treat one input differently than some of the other combinations was tiny and there was not much value in the kind of coverage I was trying to get.
In this case, my boredom didn’t point to the need to automate, it pointed to the need to stop what I was doing. Sometimes when you are bored, you might be doing something useless. If you are testing and you are entering the same thing 50 times with a slight variation each time, that is a prime candidate for automation. Don’t instantly start automating though. Stop and ask yourself: “if those changes are so small that they bore me like this, are they really significant enough for me to need to check each one?” The answer might be yes, but the answer might just be that the risk it too low to make even the effort spent on automating it not worth it.
My new heuristic around boredom is that if you are feeling bored, take a step back and consider if there is something more valuable to do with your time. Perhaps that means automating what you are doing, or perhaps that means stopping. Boredom means you are not engaging your mind, and as a tester that really isn’t the place you want to be in. When you are mindlessly typing, you probably aren’t adding a lot of value to your team. Boredom is good reminder that we probably need to change something, just make sure you take a minute to make sure you are changing the right thing.