Skip navigation.

Me too about great testers :)

people issues | perspectives
Steve [link fixed on 02/22/07] is talking about tester’s programming abilities as key aspect and are attacked a lot, although none is against using programming to earn credit as Mike suggests.
I‘m trying suggest there are no key technical skills: great tester is jack-of-all-trades – able to pretend to posses any skill to some degree. Meanwhile John touches psychology while Antony looks at tester from a team perspective rather than skill set. He touches something that I am unable to write too clear about: great tester’s ability to be able to give up his identity and look the world through the ayes of another person – of any person within a team. Let me share a little bit of my own experiences of hiring, training and motivating professional growth for testers.


Skills to look for in novices ?
I’ve been participating tester’s hiring process and seen test leads (next boss for the candidate) asking questions to learn if a candidate (especially those without testing experience) is able/has experience in:
a) reporting technical issue, even using any defect tracking system
b) documenting technical steps – writing test cases
c) the specific programming/scripting language that is used in the project
d) experience in specific tools/technologies they use in their projects (e.g. “do you know how to manager Oracle users”).
e) used to chat (e.g. prefer to use skype over e-mail)
In other words they look for person who will be simple to manage and get up t speed immediately – without any training/guiding on special tools/languages. They never look for person who will be a great tester within a year. One who will be able to find the defects they miss themselves. Never look for a person who could take a lead at improving practices. They look for monkeys, trained monkeys, don’t they?

Training testers?
We well know there are testing hand-books, tester certifications accomplished with few days training, etc. Those do not teach how to use defect tracking system or write a test case. But they don’t tell you how to find defects that non-trained person will not find. How to earn credit, use programming skills, your jack-of-all-trades ability or become a jedi knight of testing. Best to my knowledge the only training initiative aimed at that are led by Cam Kaner and James Bach . If you know of any other, please let me know – I would be happy to learn.

I believe that the best way to train testers is experience. Show them bugs they missed, review their testing ideas, strategies and show what they are doing that are not particularly necessary – having low power/credibility/whatever your goal is. Lead them: show how You earn your credit, what exciting tests/bugs you discover how you communicate with developers and managers. Delegate them everything but slowly. Let them make their mistakes and learn from them. Help them when they ask – find time to do that (I admit I don’t always do that myself, hope to improve on that however).

Performance reviews/professional growth
I’ve seen managers to asses testers by number of bugs they are reporting, test cases they are running per given time period and other stats (cancelled defect rates, etc.).
And then – what are the growth you are able to propose to your team members? Doing more job, writing test cases faster, writing test cases that are easier to read? Not bad as one year goal, but not a goal for whole career. I’ve found a way to allow each member to try out different tasks. For example allow everyone to try out performance testing. Suggest them to learn/practice programming language, participate design reviews, do some presentations, change management, training and leading new colleagues, etc.

Few pool results
Here in Latvia we’ve got yearly testing conference. Last years it seems to be a common practice to have at least one pool presented. I’ve run my own pool asking tester’s what they think are the key skills, but I don’t like to talk about it any more. So let me tell you other pool results: pool on what do we testers like show that we like open communications and prefer them to phone and messaging/chat. E-mail is also accepted. We like to analyze specification and communicate with customers but we don’t like to complement those specifications or write tests without them. Strange, isn’t it? We are ok with preparing test data and communicating test results. Another pool shows that whole team (managers and programmers included) believes we have to learn new stuff fast and be patient at the same time. Do you know what we are? We are compilers or mentats “that can extract the essential patterns or logic of data, and deliver useful conclusions with varying degrees of certainty”. The hesitation to complement missing information ourselves are essential aspect as well – “Mentats cultivate "the naïve mind"”. However we still need a lot of technical skills/knowledge to extract the require information ourselves and to be able to communicate that data out of technical people like developers.

Writing (test) code right AND writing right code

First of all I don’t want to say that tester don’t need development skills. In that my own pool I mentioned there development skills were among top 5, not the first however. This is what I’m saying: development skills alone don’t guarantee you to do good testing – you need a lot of other skills as well. You need development skills to write code right, but other skills to write the right code (hope my English is OK here). I had a person in my team who said – I have no issues to write all the unit tests of any complexity you could imagine, I just can’t imagine them – you have to do tat for me. And I could add that she organized that code well, putting reusable parts in abstract classes, etc.
Although I’m ex-developer myself I’ve lost a lot of those skills but got something I believe is better instead. Though you may be right somehow – it has a lot to do with my team lead position.

Are there more applications to consider?

But yes, I mean a person who has not several years of experience in writing libraries. This is a developers’ task “to write a custom code library”, isn’t it?
Not if the job of the test engineer requires software development. Example: I spent nine years testing Programmable Logic Controllers (PLCs). The only way to test them and their interfaces was with programming! The only sensible way to build a test suite was using a standard development methodology.
More over as I’m talking about great tester compared to average one I mean person who is able to find the defects that others miss or find the critical defects faster. Years of experience in writing libraries can’t help you a lot in that case.
It turns out that the most efficient way to have found defects in the PLCs required all the libraries that I and teammates developed. Would this have made us "average" testers?
  • Please bear in mind there are tens-of-thousands types of applications on this planet, on other planets, on satellites of planets, and in deep space. Not all applications come with a point/click or even human interface, and not all are client/server. There are applications in your refrigerator, in your cell phone, under the hood of your vehicle, being lifted off airport runways, and in the bodies of some humans. There are applications that span the range of human imagination. Testing of many of them requires solid programming skills!
  • The latter is exciting to me. Why? The human spectrum of imagination continues to widen. In other words, there are computer-based applications not even imagined yet!
  • I mean Competent with many skills

    Maybe that’s my language or cultural barrier that cause misinterpretation. When I read that jack-of-all-trades is competent with many skills but is not very good with any one particular skill I stress the competent with many skills, especially as talking about great testers.

    I do not mean a person who “knows little to nothing about code libraries and framework, and has never written a line of VBScript”. But yes, I mean a person who has not several years of experience in writing libraries. This is a developers’ task “to write a custom code library”, isn’t it? There is the trick – tester sometimes needs to do development and sometimes team-lead tasks even if he is the only tester on the project.
    More over as I’m talking about great tester compared to average one I mean person who is able to find the defects that others miss or find the critical defects faster. Years of experience in writing libraries can’t help you a lot in that case.
    I don’t really like testers who use their resourcefulness to self-sufficiently pretend being expert and solution provide within a project: there are enough experts: developers knows how to write code, business analysts knows customer issues, architects, managers, tech writers – everyone is expert in their own domain, but tester have to be able to do a little bit of development, use-cases, test documentation, version control, reporting, etc. I like those testers who user their resourcefulness to find the expert to ask the right questions and let the expert see the issues and solve them rather than pretend to solve the issues for them.

    P.S. All my career I’m trying never to be indispensable resource at any project as it gives opportunity to get to better projects or at least different ones to progress and continue learning. However bee seen as replaceable (or there is a huge difference dispensable in English?) resources by managers is the thing I’m constantly failing at.

    Great Tester

    Hi Ainars!
    I think a great test engineer does not need to be jack-of-all trades – in context. By that I am saying that a test engineer’s focus (especially if new to the field) should be on:
    1. Increasing knowledge about what the engineer is tasked with,
    2. Increasing knowledge about organization processes and practices,
    3. Understanding the organization’s vision and mission,
    4. Teaming, and
    5. Personal practices and improvement.

    … all with the goal of becoming expert and an indispensable resource. Regarding jack-of-all trades and degree of skill, I pose the following as a thought basis. Let us say en engineer applies for and lands a job that requires test automation skills. Perhaps the engineer understands test automation sufficiently to lead the employer to believe that the engineer can perform the required tasks. The employer found out in an interview of the engineer that the engineer had a firm grasp of the record/playback paradigm and decided no further questioning was needed. The engineer is put on a project to write a custom code library and automation framework in VBScript, in support of a test engineering team. This jack-of-all trades knows little to nothing about code libraries and framework, and has never written a line of VBScript. Did the employer make a good choice? Perhaps not initially but if the engineer possesses the attributes below, this engineer may become invaluable over time, but at what cost to the employer?

    I think a great test engineer is skilled to the extent required to be an expert and beyond. I think a great test engineer has the following attributes at a minimum:
    1. Resourceful,
    2. Self-sufficient – yet a team player
    3. Knowledgeable to the point of being expert and does not stop learning, and is a
    4. Solutions provider.

    ... again - at a minimum. Personally, using your definition I tend to think of a jack-of-all trades as being more a team lead or managerial type and not a task-focused engineer.

    Comment viewing options

    Select your preferred way to display the comments and click 'Save settings' to activate your changes.