Within the first few days of the new Software Testing site on stackexchange being opened to a public beta a question was posted as to what makes up a great test team member. I snapped off a couple top of the head thoughts on what I thought make up a quality tester and came up with the following.
• Testing aptitude
• Willingness to ask questions
• Ability to negotiate
• Technical ability (reading and writing code)
• Strong communication skills.
• Curiosity
• A bit of a stubborn streak.
Overall the post seemed to generate some interesting comments and a number of up votes. I thought I might take some time and go into detail on each of the points.
Testing aptitude – This is the ability to break down an application into is discrete parts understand how to test it. This includes the and understanding of testing techniques such as boundary conditions, state conditions, the happy path and other techniques. This includes knowing how to apply those techniques to a variety of situations and applications. To me this also encompasses what I would call a nose for bugs. There have been a number of people that I have worked with in my career who I can put in front of nearly any app and given a bit of time they will find an issue.
Willingness to ask questions – I want a tester that will ask a question. It is often in the process of asking questions that logic holes are uncovered and a shared understanding can be reached. Some of my best work has been done simple having a dialogue with a developer about why they chose to do things a particular way and to find out if they had kept particular conditions in mind.
Ability to negotiate – It is important that you know how to negotiate. To be able to argue for some things and know when you are better off when to just let them go.
Technical Ability – More and more I think this is an important skill for a tester to have. I am not saying they need to be a rock star programmer. If they are more to the good. I do think that a decent understanding of programming concepts such as data types, data structures, and logic controls can help make a tester more effective. For any testing working on data driven applications a good grasp of SQL is necessary as well.
Communications Skills – This is the ability to communicate through speech and writing. Testers need to be able to write good bug reports, test plans and other documentation. They also need to be able to clearly articulate points in meetings and in discussions with developers.
Curiosity - I want a tester that asks “What would happen if?” This is going to also be reflected often in a person who is interested in continuously learning. These are the folks who are going to be pushing to improve their skills and gaining a full and deep understanding
A Bit of a Stubborn Streak – This was the one line that generated the most comments on the post. The one that struck me was Joe Strazzere. He commented: “Am I the only one who sees “stubborn” as not necessarily a positive thing?” What I am looking for in this case is the willingness to fight for those important issues. When there are problems and things are not going well the willingness to stick it out and see it through. This sort of stubbornness may also be see as persistence and perseverance. Stubbornness can be taken too far when you are not willing to move and adjust as needed. The inability to change and adapt can be detrimental. It is something of a balancing act.
That’s my take…what’s yours?
Here are a few other folks thoughs on what makes a tester: