As I was testing away our brand new shiny Testuff 0.9, I was wondering about the everlasting question in our profession, what makes a good tester? What qualities are needed for the acest QA of them all? Maybe arrogantly, what is it that makes me a good tester?
I don’t think this answer can be summed up in one line, not to mention that it’s context sensitive. But I do know there is one very important characteristic that really puts some QA engineers way above others, and that’s awareness.
Going to work as a QA engineer for the first time was quite an experience. It was one of those everything you know is wrong feelings. Everything that I had taught myself to ignore, was now what I had to pay attention to the most. Strange error popups I used to click away, processes taking up loads of CPU that I used to kill, core dumps that I would erase or limit, disconnections that I usually ignored and reconnected, and much much more. All these rocks that as a home user I would work around so that I could use my computer peacefully turned out as nuggets of gold to be pulled out from the river by my testing plate. In other words, I had to raise a new level of awareness.
This awareness I’m talking about seems to divide in various ways. It’s going to be a little difficult to put it exactly into words, and all the words, but I hope you’ll know what I mean.
When you QA, you should be alert. You need to notice any kind of unusual software behavior immediately so that you could investigate at once if it’s a bug. To put it the other way around, when you lack such awareness, be it permanently or momentarily, that’s when bugs slip right through your fingers.
For example, while testing Testuff 0.9, I suddenly noticed that running a test right after opening Testuff took a while, say about 10 seconds. Running the next tests though didn’t take much time at all. This problem was caught in my field of awareness unexpectedly, a sudden realization that it took a long time to run a test only for one instance. I was also testing 0.9 the day before that. I’m not sure when this bug started, but I’m almost sure that I probably missed a few times when I wasn’t on such a state of alertness.
Letting go of your previous software using patterns is also very important. That automatic behavior from home, the one that says next, next, next, skip, ok, finish, it no longer does the trick when it comes to testing. Clicking OK on a popup without reading what it says and wondering why it came up in the first place is a pattern one should disposed when doing QA.
That’s why new QA engineers can sometimes do the best QA. They don’t take anything in the software for granted since they didn’t get used to how it behaves in any kind of way. They’ll ask questions why things operate they way they do, and why something strange just happened. So the trick as a more experienced tester, especially one that has been working in the company for a while and being all too familiar with its products, is to retain that new employee perspective, all the while being someone with more experience and knowledge, an interesting contradiction.
Coming into Testuff myself I noticed quite a lot of odd things, such as why right clicking a test and choosing Print outputs HTML when it sounds like the test would be sent to the printer. Because of this we changed that menu item to the obvious Export to HTML. I feel I’m getting really acquainted with Testuff and the way it works, and sometimes I catch myself being too used to this. I guess I should keep being aware of this process, and catch the guard who’s falling asleep on duty.The top QAers have a heightened sense of consciousness. They can see things from different perspectives, most importantly the user’s perspective, but also the programmer’s, and the manager’s. They have a great instinct whether the feature they are testing makes sense for the users for which it was intended for in the first place rather than some developer’s fantasy. They can communicate information in a non-violent way for all sides involved, and have some empathy for them all.
As it seems, a lot of QAers and developers see themselves as natural born enemies. Maybe it’s good to have some competition, developers making sure they have as least bugs as possible and QAers getting into their heads to find out where they messed up. But it ain’t good to make enemies of the developers.
When I was working full time in QA I spent plenty of time with the developers whose features I was testing. We’re all people before we are some label or profession, and they were cool people. Also, we were able to teach each other quite a lot of things on the professional level. Often I would visit their office and watch them in action, and likewise they would visit me to see how QA is done.
And when I found fat juicy bugs and heard frustration, anger, or sadness in their voices, I would show my compassion and make sure they understood that we are both on the same side of the court, that we would both like to release the feature as bugless as possible. Because if there’s one thing no one likes, though it happens all too often, is customers finding bugs. So better have the QA man find them way before that, even if it means staying an extra hour before the weekend.
So, question is how to raise your QA awareness? First of all, monitor yourself, be the watcher. Watch if there’s anything you click away, take for granted, or miss out. In the moments when you catch yourself doing so, there will be new options and new realizations. There is no need to judge yourself as a bad tester if you catch yourself with the pants off like that, but if the judgment comes up, just let it be, watch that too.
Learn to trust your instinct. Sometimes one just has a feeling a bug is to be found upon certain actions. Sometimes that feeling is wrong, but all too often it helps. Ever wonder suddenly while testing something what would happen if…? Great! Go and turn that if to reality. You may find yourself in some sort of spontaneous flow exploratory style where a planned test would not have taken you, finding bugs like crazy.
To really become more aware though, in all fields of life, there’s nothing like meditation. Meditation is probably not what you think it is mainly because there are many kinds of meditation and at least two meanings for the word. The kind of meditation I’m talking about is a natural ability that we have lost, something my cat seems to do easily and yet I have plenty of trouble doing. I’m talking about just sitting there, just being. Nothing to do, nowhere to go.
My suggestion is to experience it first hand in the most basic way. Here are instructions for Zazen, a Zen meditation that literally means just sit (probably the first software related post ever that has Zen in the title and includes some actual Zen!), and anyone, I repeat, anyone can do it. No need to sit in a lotus position and make a marathon of it. Even 5 minutes a day of sitting on a chair would be great.
I’m off to do some meditation myself. May the force be with you!