What makes a good tester?
This is the second of a series of three columns. The central themes of the columns is “how do I become a software testing expert?” Part 1 can be found here.
The question “what makes a good tester?” keeps us busy. This was demonstrated by the attention this subject received at different conferences. At EuroSTAR Susan Windsor gave a well attended presentation about this topic called “How to Create Good Testers”. During the Agile Testing Days, a group of passionate and renowned agilist and testers got together to discuss various test subjects while enjoying beer and pizza. After an inventory and a “dot-vote” the topic “Great Testers” received the most votes. That gave great input for this column, thanks guys!
In this Dutch article on talent, personal qualities, skills and competencies, Patrick Schriel says: “A skill is the ability to be able to perform an act or solve a problem. Competencies are knowledge and skills, they are not innate, but are caused by intense and deliberate practice “. With skills I think of being able to apply a particular test technique, or being able to work with certain systems, etc. But for a tester key qualities and characteristics are important and these are much harder to train. Think of pro-activity and creativity. In addition, attitude (and / or mindset) is important. What is your feeling about change, what are your beliefs, how open minded are you?
What makes a good tester? It depends on the context. Every project is different, every team has its own dynamics and each test has different requirements. Lisa Crispin said during the meeting in Potsdam: “Most important is attitude, we will teach them the skills”. And I totally agree. Passion for the job to me is vital. In the attitude of a tester, I find curiosity also very important. Or as Richard Feynman put it: “The Pleasure of Finding Things Out“. A tester is always looking for information, how does this work? He constantly is asking questions to understand. I remember the following quotes from the rapid software testing training: “A tester’s responsibility to remain unsure when everybody is sure” and “Testing is about questioning and learning under conditions of fundamental uncertainty”. A tester knows that things can be different (Jerry Weinberg). And in Potsdam Michael Bolton added “a good tester is able to see the complexity of things that seem simple and the simplicity of things that appear complex.”
Passion provides drive for commitment and enjoyment. I think passion and skills enhance each other: the more joy you find in something, the more time you’ll spend, the more exercise and practice you get, the better you become. The better you get, the easier things are, the more you discover, it becomes more fun. The snowball starts rolling!
A good tester is proactive and able to work together and knows that software development is a team sport. Something you do with a team and you as a tester are actively looking for opportunities to work together with your team. A good tester knows that he is even more effective when he works with developers for example. A developer can help him test faster and smarter. Obviously communication is important. But what is communication anyway? In Potsdam Michael Bolton shared his list with 27 (!) items that have to do with communication: conversation, presentation, argumentation, rhetoric and visualization are some of them. In addition to all above social and emotional development is important to collaborate effectively.
Of course knowledge is important. But curiosity and the ability to learn quickly, makes that a tester can quickly attain knowledge and therefore less makes it less important. A good tester has knowledge of the following (in order of importance) testing, IT and domain. But attitude, skills and qualities for a tester are far more important! It was Lasse Koskela who talked about the “Least qualified implementer” in his keynote at the Agile Testing Days. This is the principle that in an agile team someone with the right skills but the least knowledge picks up the work item in order to get the whole team as much as possible at the same level of knowledge. Interesting! I want to read more about this.
When I recruit testers, the behavior and attitude of the individual is most important: his competencies, motivation and attitude. Knowledge is also important for me, but is more easy to learn quickly … that is, if that tester is eager enough to make his work a success.
Note: in a reaction on the Dutch version of this column Derk-Jan de Grood mentioned that in the examples I cited I was limiting the tester to a error seeker, a developer and a critical questioner. It is certainly not my intention to confine the tester an error finder, developer and critical questioner. So if that is the message which you took away from my story, then I need to be clearer. Testing to me is: “questioning a product in order to evaluate it”. A tester is someone who provides information about the product. He does this by learning everything there is to learn about the product . It is possible that a tester does not find any errors (although we all know that they are in there for sure). While I was writing my reply to Derk-Jan I realized that I forgot a very important skill / attitude in my story: the ability to THINK! A good tester thinks! Systems thinking and critical thinking are skills that every tester should have and train.
The last part of this series looks at where and how you can improve your knowledge and experience.
Huib Schoots sees himself as a context-driven tester. Currently he works as team manager testing at Rabobank International and is board member of TestNet. He is a member of DEWT (Dutch Workshop on Exploratory Testing), student in the Miagi-Do School of Software Testing and maintains a blog on www.magnifiant.com