Hallmarks of a Great Tester


If you ask me, I’ll tell you a great tester

Is devious

A great tester has a streak of deviousness.  Anyone can follow the lists of test cases that abundantly fill most books on testing.  A great tester can move beyond these lists and dream up an endless series of gnarly methods for attacking the program.  A great tester is described by developers as “sick” and “demented”.

Is curious

A great tester is interested by everything.  A great tester wants to understand why everything works that way it does.  The best (or worst, depending on your point of view) bugs are a result of interaction between two pieces of software (applications, modules, components, whatever).  A great tester knows that understanding how something works leads directly to understanding how that something interacts with another something, which interaction leads directly to bugs.  A great tester manifests this curiosity in every aspect of life:  how does marketing work?  How are construction cranes built?  Why do they add rebar to concrete?  How are crayons made?  A great tester’s curiosity knows no bounds.

Is excited by bugs

A great tester thinks bugs are cool.  A great tester shows up in a developer’s office on a regular basis with a big grin eager to show off the latest nifty keen horridly awful bug that the tester found in the developer’s code.  A great tester boasts about bugs to other testers and eagerly listens to other testers’ exploits.

Knows there are always more bugs

A great tester knows that no application is ever bug free.  A great tester knows that an application that seems to be bug free is really full of bugs they haven’t thought to look for.  A great tester is always on the lookout for new types of bugs.  A great tester views every bug found by a customer as a sign they missed an entire class of bugs.

Stays on track

A great tester knows that finding and isolating bugs to their root cause requires focus.  A great tester doesn’t ignore bugs found along the way, but postpones investigating them until the current bug is nailed.  (And, of course, gleefully told to the corresponding developer.  And boasted about to other testers.)

Scopes appropriately

A great tester knows that they will not have sufficient time to run every test case they would like to run.  A great tester prioritizes and scopes their tests so that the tests most likely to find the bugs most likely to affect the customer are executed first.

Investigates weird behavior

A great tester watches for odd occurrences.  Icons that display one position off from where they should and radio buttons that don’t stay set may be a simple programming error, but a great tester knows that such oddities are just as likely to be but the tip of a nasty bug.  A great tester goes beyond “That’s weird but that’s life” to “A-ha!  That’s what’s going on!”

Writes precise bugs

A great tester takes the time to narrow a bug down to the minimum number of steps necessary to reproduce a bug.  A great tester tests around a bug to understand what the bug actually is.  A great tester writes bugs that state the bug exactly and clearly distinguish between what is proven fact and what is conjecture on the part of the tester.

Has passion for the customer

A great tester knows that they are the last defense against the customer receiving a product that doesn’t serve the customer’s needs.  A great tester understands every aspect of the customer.  A great tester understands what the customer needs to do and how the customer wants to use the product.  A great tester looks beyond the customer’s needs to see how the product can revolutionize the customer’s tasks.  A great tester promotes the customer’s point of view throughout the product cycle, from the first nascent product vision through specifying and implementing features to cutting features and triaging bugs to product release and ongoing maintenance.  A great tester helps the rest of the product team understand the customer as well as they do.

Is a specializing generalist

A great tester is completely familiar with every detail of their feature.  A great tester also understands how their feature fits into and affects the entire product.  A great tester is willing to change or even cut their feature in order to make the product as a whole better.

Picks their fights

A great tester recognizes that fixing every bug is often not worth the resources that would be required.  A great tester balances each bug against each other bug and allows some bugs to be shipped so that other bugs can be fixed.

Stands their ground

A great tester knows that some bugs just have to be fixed.  A great tester is willing to be obstinate and obdurate and to ruffle feathers if necessary in order to ensure that a must fix bug is in fact fixed.  A great tester calmly shows why the bug must be fixed and convinces the rest of the team that it indeed can’t be shipped.

Can ask developers where the bathroom is

Visitors to a foreign country are well advised to become familiar with the language and customs of the country, enough so that they can get a cab back to their hotel, ask for directions to the bathroom, and know whether shaking hands is the height of civility or completely gauche.  Likewise, a great tester is familiar with the language and customs of developers.  A great tester understands UML well enough to get the gist of UML diagrams and to draw a class or sequence diagram without making developers laugh too hard.  A great tester can write code at least as well as first year programming college students.  A great tester understands design concepts sufficiently to participate in design discussions and reviews without being asked to leave the room.

Knows testability is just one of many concerns

A great tester knows the only way to truly test an application is to build testability in to every aspect of the product.  A great tester analyzes the product’s architecture, design, and features, and develops a plethora of ideas for ensuring the product can be tested.  A great tester, however, knows that testability is not the only factor affecting the architecture, design and features.  A great tester balances testability against the other factors and helps the team create the right mix.

Knows when to ask for help

A great tester takes pleasure in a challenge.  A great tester, then, enjoys banging up against a brick wall and slowly breaking through it.  Some walls are thicker than others, however, and sometimes the wall has a tester-size hole that the tester continually manages to miss.  A great tester realizes when it’s time to ask for help and does so.  A great tester knows who to ask for help.  A great tester knows there isn’t any shame in asking for help.

Makes time for training

A great tester knows that the only way to continue to be a great tester is to never stop learning.  A great tester doesn’t limit this education to testing, either, but also researches programming, program management, marketing, and anything else that is remotely related to the process of creating software.

Never stops testing

A great tester goes beyond feature boundaries and tests throughout the product.  A great tester tests other products.  A great tester tests books, refrigerators, lights, doors…anything in any part of their life that makes them go “That’s not right”.


*** Comments, questions, feedback?   Want a fun job on a great team?  Send two coding samples and an explanation of why you chose them, and of course your resume, to me at michhu at microsoft dot com.  I need testers, and my team needs a data binding developer, program managers, and a product manager.  Great coding skills required for all positions.

Comments (19)

  1. Mark Vejvoda says:

    I can affirm this post to be absolutely true. I cannot state the important of people who like doing what they do. We have people here where I work (www.total-care.com) that seem to have a sick sense of uncanny testing ability. The defects development come across make for good humour at times, chastisement others. There is one individual to be feared, you do not provoke him with a "this code is rock solid", or you’ll find you defect cycle time escallate to unbearable proportions. But I must admit the quality and warped sense of testing has achieved the highest levels of quality our company has ever known.

    Thanks for the re-inspiration

  2. Chris says:

    You make some great points. I’m struggling with the contribution that testers make early in a project right now. I know I need testabilty, but I don’t know what I need until I go to test something and it isn’t there. I know our architecture needs work, but I’m not sure what would make it better. It would be great if you talked about these issues in depth.

  3. kevin white says:

    A good tester always:

    – wears a helmet

    – keeps a change of clothes handy

    – keeps his lunchbox in a secure location

    – knows the fastest and most covert ways of exiting the building

    – always sits closest to and faces the door

    – knows when to cackle like a mad scientist and when to just be quietly giddy

  4. David Cumps says:

    Great, I’m close to becoming a great tester! yeahaa :p

  5. This blog entry has a list of what makes a great tester. I agree. Especially with the bit about having a customer-centric viewpoint….

  6. The Braidy Tester says:

    Thanks for the topic suggestion! What exactly testability is and how to achieve it is a very interesting problem. I’ll be sure to talk about that soon.

  7. SpiderMan says:

    Nice points.

    May I translate your post to Chinese and publish it inside our company for training our testers?

  8. mike says:

    You forgot: "Reads and comments on documentation in progress." 🙂

  9. The Braidy Tester says:

    Yes, feel free to translate as necessary and use this list as you wish. Just please credit me and link back to this permalink.

  10. Ee says:

    It’s worth considering that anyone with a strong enough attention span can test well and find a fair amount of the errors the user will, but a great tester is beyond this level, by an order of magnitude maybe.

    The difference between a good tester and a great tester could be compared to the difference between Salieri and Mozart, for lack of a better analogy, and the most important traits may oft prove the most elusive.

  11. new-tester says:

    Great points.

    I was wondering if you know where one can find a complete classification or description of class of bugs as you refered above. I don’t mean generic classification but more specific, eg. "Loss or overwriting updated data", etc.

    Thanks

    new-tester

  12. Shrini K says:

    Simply great article. I enjoyed each word of this article

  13. Siva says:

    Thank you very much for the excellent post. This will give push up to lot of testers. It is true that a great tester will test everthing. As a tester since from 5 years, I am testing everything in all the works I do. Test is now a part of my life. I am not able stop myself to take this post and put into my blog. I am posting this article in my blog by referring your name. Please permit me

  14. Todd Hansell says:

    I agree based on the drill of my developers. In the last couple weeks my development managers (very technical guru’s) have been asking that with our growth since the acquisition that I find a good developer to start and lead our test efforts. I’ve interviewed and interviewed candidates who have come short of their expectations. I’m about to shoot myself in the head… Anyway when I read this article I realized what they were expecting me to find. They didn’t seem to have a word for it, but they sure had a laundry list of skills needed. No one I’ve found had them all. They want someone who can development in a mid level position but has not been totally bitten by the development bug and can still see them selves as a tester. A person who can test better than the person who wrote the code but can come back and in a nice way tell them the messed up and this is where and how. I’ve yet to find such a person but if anyone out there knows anyone interested tell them to take a look at us at http://www.reynoldswebsolutions.com. We have great plans, benefits, and monetary rewards for this person. Thanks Braidy for this posting.

    Sincerely,

    Todd Hansell

    Project Manager/Corporate Recruiter

    Reynolds Web Solutions/Third Coast Media

    214-239-4152

    todd_hansell@reyrey.com

  15. Frankie Means says:

    GReat entry a very somprhehnsive list of things to consider

    http://www.authentic-strivectin.netfirms.com

  16. Linda asks how one gets into the software testing field. "Are there certain formulas I would need to…

  17. "new-tester" commented on my Hallmarks of a Great Tester post to ask

    "I was wondering if you know where…

  18. The subject of IT Accreditation and Process Improvement has been on the agenda for some time in Australia