How to Hire Good Testers: Part 2
Why the “Tester’s Mindset” is garbage
People talk about the "Tester's Mindset". I think the "Testers' Mindset" term is garbage. It is an overused and cheap way of communicating nothing. When I ask people what “Tester’s Mindset” means everyone has drastically different definitions, but most distill down to, "I've never taken the time to think through what makes a good tester, so I'll just use this term instead".
What's really unfortunate, is that the lion's share of the testing world seems to have accepted this term -- without testing it!
People say they know the "tester's mindset" when they see it. But as hiring managers, it's our duty to determine if a candidate possesses the what’s needed to do the job while working well with the team.
If we know what makes up a good tester and how to identify one, we will be more successful and efficient at hiring testers.
This is Part 2 of my series on “How to Hire Good Testers”. Find Part 1 here and watch the TestGuild podcast where I talked about Hiring good testers with Joe Colantonio.
I test everything. Especially testers. Here's what I've learned testing testers. Good testers are...
Creative
Good testers can come up with different ways of interacting with a thing. This is a side effect of curiosity and creativity. Curiosity is a specific type of desire to learn. Creativity is a resource good testers use to move from questions to evidence. I use the word "evidence" intentionally, because I don't believe testers are the right people to create "answers" or solutions. Rather, testers gather information for those who can find answers or solutions.
Good testers are able to create new ways to learn about the thing.
There are plenty of people who follow test scripts. If I were a stickler, I would not call these people testers (although casual conversation generally forces us to call them something and I’ll use "testers" to help conversations progress). People who follow scripts are more like robots or programs. True testers learn about a thing using creativity to interact with it in helpful, interesting, or unique ways.
There are a lot of ways to interview for creativity. A former co-worker of mine would ask about testing a soda machine. How would you do it?
I could talk through planning testing out properly based on what we wanted to learn and other constraints. I could categorize my tests into destructive and non-destructive tests, security tests, load tests, performance tests, functional tests, and more.
Then I could fill up any or all of the categories with ideas about what we want to learn and how we could go about learning it by interacting with the soda machine.
I can imagine testing the buttons by pressing them, expecting an error because I didn't insert the right money. I can imagine, taking the button apart, pressing it a million times. I can imagine a whole slew of tests for the buttons as well as the money acceptor, credit card reader, lights, branding functionality, delivery of sodas, inventory, and much much more. When I ask questions like these, if a tester gets stuck after a couple tests, I'm concerned.
Testers must be creative.
Always learning their craft
I've been relearning guitar the last few years. It's been interesting to watch YouTube videos about famous guitarist. Without exception, they all talk about their influences. They've studied their influencers. They know their influencers' songs and styles. They've incorporated what they've learned into their own playing.
Most great guitarists as some point, learn music theory. Kirk Hammett can tell you all about the scales, modes, and rhythm he likes to use to get his unique and recognizable soloing style. Tommy Emanuel can tell you all about what he's doing with all six strings and how he produces a bass line, harmony and melody at the same time.
Why should great testers be any different? I know I'm influenced heavily by Elizabeth Hendrick, Kent Beck, Michael Bolton, Maaret Pyhäjärvi, Andy Knight, and Cem Kaner many others.
But in meeting and interviewing testers my experience is that most have never opened a book on testing. Most don't habitually read blogs or twitter feeds on testing.
Great testers learn about their craft continuously. Most of them know the major names of folks in testing. They've read some book on testing at some point in time, they've done some training, know some methodology. There is something in their history, their experience where they've studied enough to prove to you that they're not just someone off the street with knack for reading test cases and doing them.
So when interviewing them, we can ask how they learned to test. We can ask how they get better at testing. We can ask who influenced them. Any good senior-level tester will be able to tell you a process they go through when testing. They will be able to put names to techniques. They will be able to tell you who they like to listen to about testing or read.
Good testers continuously learn their craft.
Tenacious
Like a dog with a bone, a good tester is ferocious with anything errant.
When they're free to go about their testing, they won't let it go when the system is behaving differently than expected. It is their nature to keep gnawing on a discovery.
Good testers are tenacious with requirements, test cases, communication, their own thinking, the thoughts of others around them. They want everything to be "right".
Exceptional testers know when to stop. They can turn their tenacity on and off at appropriate times. Knowing when to stop requires an extreme level of mindfulness that usually comes with maturity.
Orderly
Good testers understand that order is important to communication and testing.
They know teammates need to be able to digest their findings. That requires organizing thoughts, testing efforts, prioritizations, and more.
Exceptional testers know there is another side to this. They are aware of times when order gets in the way of testing. Great testers can balance order and testing efficacy for the betterment of the team.
Curious
Good testers are curious. They can't help "trying one more thing" and wondering "what happens if?"
For testers like me, walking through a store like Best Buy is a challenge... I want to touch every computer, phone, and device in the store and see if can gain inappropriate access to it, or just change the desktop to my beautiful mug.
Good testers find themselves interested. They have questions. They want more information. They will actively pursue more information if left to themselves. There's always "Why?" "How?" "What?" "When?" going on in their minds.
Exceptional Communicators
Good communication skills are integral to good testing. Testing is after all, the act of interacting with a system, learning about what it does, and communicating that information to the right folks. Testers must be able to communicate effectively with written and verbal communications as well as in their actions.
Good testers are able to talk with Developers and work through complex expectations, interests, behaviors and technologies. And they must be able to communicate in a way that is constructive and helpful.
Testers must be able to enunciate their thoughts. Many times what a tester finds is difficult to explain. It's easy to be comfortable with a silent ambiguous thought all alone at your computer. But software development is a team sport. The moment others need to have the same understanding as the tester, the real play begins. Can you get the other person's mind to represent your experience in a similar enough way to yours that together you can analyze, dissect, plan? Can you get to the point of communicating to the degree of resolving discrepancies in expectations and actions of the system under test?
I've met a lot of people who do the activity of testing and can find interesting things in systems, but fail to communicate what it is they found and why it's important. This puts an undue burden on the rest of the team. It's slow and ineffective.
While some of the skills and traits in this list are optional, good communication is not. It is a necessary attribute of a good tester.
Psychologists
I once read a great piece which I believe was from Maaret Pyhäjärv, but I can't find it at the moment (please send me the link if you find it and I’ll update this post with a link). She wrote about how good testers are able to counsel or play psychologist with developers. They sit beside them, figuratively and literally, to work together to experience, learn about and communicate about defects so that devs can fix them or POs can prioritize.
Coding is a tough thing for many people. A lot of folks have their identity tied up in how well they do their job. Devs are no different. When someone tells you your baby is ugly (or your code has a defect), it can be a sensitive thing. Good testers don't assume the dev is going to be easy to talk with about a defect they wrote. But they know, that the dev did his or her best job when they wrote the code. Good testers know that even when devs do their best, defects are going to slip through. So they approach with care.
It took me years as a software engineer to get to the point where I appreciated critique and feedback from QA about my code. Eventually, I got to where I would thank them for finding my bugs. Then I'd look to work with them to resolve the defects in my code.
Some devs never get to that point.
Being a good partner with dev can be challenging. Good testers are able to partner with teammates for the betterment of the team.
Finally…
Not every good tester will have all of these traits, but all good testers will have some.
If you're looking to hire good testers stop looking for a “Tester’s Mindset” and instead look for:
Curiosity
Continuous Learning about their craft
Creativity
Tenacity
Orderliness
Good Communication and
Sensitivity
If you're struggling to find the right tester for your team, let us help you find good testers now.