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?
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’re looking for actually be developed? Maybe there are some qualities we’re 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 tester are:
- Curiosity: Testing is a continuous quest for knowledge, and testers need to have the drive to explore and learn. Curiosity can perhaps not be trained, but it can most certainly be trained out of 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 need to get sidetracked sometimes, and use their creativity to go exploring. Focus is a skill that can be trained and supported by using time management techniques. Some people also have a predisposition 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 testers 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 mustn’t 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 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, but it can’t be trained. We need to make sure testers are empowered and have 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 didn’t 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’t 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?
Whether a quality that you value can be trained or not, needs to affect how you select your seeds and plants. If you really think a trait is important, you should understand that any tester you hire must have it from day one; you can’t 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 doesn’t 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.