Creating a great test team is a lot like gardening, you need to find the right seeds and make sure to plant them in an environment where they will germinate, grow and thrive. But what seeds do you look for, and how do you create the right conditions for them to develop into strong plants?
To answer that question, first, we need to ask ourselves: What actually makes someone a good tester? What qualities are we looking for, and how can we help testers grow those qualities? And can all the qualities we are looking for actually be developed? Maybe there are some qualities we are born with, traits that cannot be trained, whereas other qualities are skills that require practice to be obtained. Ten different qualities that I think you should consider looking for in a good tester are:
-
-
Curiosity:
Testing is a continuous quest for knowledge, and testers need to have the drive to explore and learn. Curiosity may not always be trainable in a technical sense, but it is a trait that can be developed in people. We are often told to follow the rules, where instead we should be rewarded for being curious.
-
Focus:
Testers need to be able to stay focused and not get distracted, or bugs might be overlooked. But is too much focus also bad? Testers may get sidetracked sometimes, and would then need to use their creativity to explore the new task(s). Focus is a skill that can be trained and supported by using time management techniques. Some people also have a natural ability to focus.
-
Observation:
Testers must have great observational skills – it’s our observations that make us valuable. Focus can either support observation, or counteract it. Observation can be trained, for example, by playing certain games.
-
Abstraction:
Abstraction is about seeing the core problem, to simplify, and to rationalize. Often, the inner core functionality is hidden, or obscured, by irrelevant details, which testers need to be able to see beyond and test what really matters. The ability to make abstractions is closely related to analytical and logical thinking, and is one of the more important aspects of a good tester’s toolbox. I believe abstraction can be trained, but some people are more prone to this capacity. Train by having the whole team work together to review a problem and discuss how it can be simplified.
-
Empathy:
Empathy is about being able to put yourself in someone else’s position and understand their feelings, but it must not be confused with sympathy. Testers should empathize, but not sympathize. Sympathy means that you feel something about somebody else’s feelings. Testers need empathy to put themselves in the users’ position and gain a user perspective on what is being tested. Can we learn empathy? Some argue that we can train our ability to feel empathy, within certain limits. The key is to be aware. Roleplaying can help, and there are methods that actors use to understand empathy better.
-
Communication:
The information we gather as testers is worthless if we cannot communicate it. Communication is most certainly one of the most important qualities for a tester. Communication skills can be trained.
-
Courage:
Having courage includes having integrity. As testers, we need to have the courage to say “No” and stop a release even when the stakes are high. The consequences can be significant, not only to us personally, and it takes courage to stand up for what you believe to be right. Courage is a trait that can be encouraged. We need to make sure testers are empowered and are given the right support to be courageous.
-
Perseverance:
Sometimes testing really is a struggle. Maybe the deliveries are late, quality is low, testing is being reduced or the application and the tools are complex and hard to use. But as testers, we cannot give up. Testers cannot choose the path of least resistance. We might not be able to train perseverance, but we can at least train testers to understand why it matters.
-
Passion:
Passion is closely related to courage and perseverance. Can you be courageous and persistent without being passionate? Testers have to care. Passion cannot be trained, but it can be lured out of the depths of people who did not know they had it themselves. It can – and should definitely –be encouraged and amplified. Passion also tends to be contagious.
-
Technology aptitude:
Some people insist that testers need to know how to code – and that certainly is an advantage – but what all testers really need to have is Technology Aptitude: a strong natural interest and ability to learn and understand technology. This can not be trained, but it can be encouraged and maybe even triggered by providing an interesting work environment and stimulating tasks.
-
What do you think makes a good tester? What qualities do you value? You also need to think about whether you want to sow seeds and invest the time and energy it takes to grow them into plants yourself, or do you want to spend a little extra and get already cultivated plants that will require less attention?
The trainability (or non-trainability) of a person on a quality that you value will affect how you select your team – your seeds and plants in the garden context. If you really think a trait is important, you should understand that any tester you hire must have it from day one; you cannot necessarily expect to be able to train it. Finding the seeds and plants you want is not enough to create a thriving garden, though. This requires a diverse mix of plants that help each other grow. As gardeners, we need to find symbiotic plants and take care to plant them close together.
Having found and planted the plants you want certainly does not mean your gardening work is over. Your tester garden needs continuous fertilizing, watering and weeding. Weeding is a tough necessity that requires care and persistence to keep your garden productive.
Being a gardener is hard work, but reaping the fruits of all the hard labour makes the effort worthwhile.