eBay Tech Blog

Becoming a World-Class Tester

by Ilari Henrik Aegerter on 01/31/2013

in Testing

 A tester is somebody who knows that things can be different.

That is Jerry Weinberg’s description of a world-class tester, which reminds us that testing is about critical thinking and imagination. It is about not believing anything at face value, but maintaining an investigative mindset.

Testing is questioning a product in order to evaluate it.

That definition of the activity of software testing, from James Bach, includes one of the most important aspects of testing: information discovery and delivery. Software testing is about revealing the unknown.

If quality means value to some person who matters (as Weinberg has defined it), then testing is in the service of discovering anything that threatens this value. To provide this service, a tester needs to be able to do a variety of things, such as asking good questions, commenting on requirements, and interacting with a product in such a way that it yields information that’s useful.

My definition of a world-class tester is a person who is able to rapidly discover highly relevant information about the product, who makes the most use of any resource that is available to him/her, and who has the respect of people involved in a project. It is a person who can be trusted.

So, given these definitions, what skill and mindset dimensions should you invest in to become a world-class tester? What areas do you need to be good at in order to avoid being discredited as a “mouse-click-monkey”?

Technical proficiency

At the higher levels of management, software testing is often seen as only a technical discipline. They think your effectiveness as a tester depends on your ability to write code that does the testing for you. But there are many aspects of software testing that are simply not automatable. Humans are incredibly skilled at thinking and adapting to new information that arises based on context, and since software is a system of ever-changing functions and states, sometimes it is more efficient to do exploration. Automation is the opposite of that, since it involves scripted procedures.

However, automation can free the time of testers to do more exploration, which allows discovery. Anything that is either highly repetitive/boring or that needs to be run over and over again, is a good candidate for automation. Automation is very valuable in these areas.

Developing powerful and maintainable automation is difficult. I am convinced that a mediocre software developer is not able to live up to the requirements for such a job. If you want to do useful test automation, you’d better be an excellent developer in addition to having other testing skills.

Here are some more skills and mindsets that I believe will help you:

Investigative curiosity

If you think that testing is a necessary evil – something to get out of the way until you can do something really cool – you are in danger of missing important problems. World-class testers are constantly exploring the capabilities and limitations of their products while maintaining a healthy skepticism about those products’ capabilities.

If you want to give yourself a fancy title, think of yourself as a “compulsive empiricist,” guided by irresistible impulses to find the truth about what’s happening. World-class testing means following the urge to get to the bottom of things, not giving up until you have experienced enough value for yourself. When you see a tester shying away from unverified assumptions, that’s a good indication they take their job seriously.

Observational skills

If you want to observe something, you need to notice it first. Observation is the ability to notice important or significant details. While testing the product you need to be able to observe situations that are unusual.

Who would be a good teacher in the domain of observation? Go for a walk with a five-year-old and see what grabs his/her attention: a little crack in the pavement, a beautiful flower in a garden, a snail slowly making its way on a wall. Children are natural observers; they are interested in everything that happens around them. Their channels are wide open and they observe with joy.

Condition yourself to keep your channels open. Emulate child-like behavior. Train yourself in general awareness. Look closer. Slow down. Observe.

Communication skills

You will encounter circumstances where you have to defend your findings. You will have to convince people to take action, so you’d better know how to explain why your findings are relevant.

World-class testers actually practice describing their testing. They know their explanations need to go way beyond “Yeah, I tested it, trust me.” If you can describe your testing, your credibility as someone who knows what he/she is doing will grow. One way to get better is to use the Heuristic Test Strategy Model when you explain what you are doing. Or, even better, you will come up with your own models.

As you tell your story, remember that communication is a two-way street. World-class testers follow up on answers they get from their questions and are alert to new information that comes up in conversation.

Writing skills and bug advocacy

The richest communication happens when you are able to talk with somebody face to face. You observe facial expressions, you can react to indicators of confusion, and misunderstandings can be clarified right away. Not so with writing. The channel is narrower and more prone to misunderstandings. Clarifications need more time and effort. 

Bug advocacy often goes along with writing skills. Your ability to describe the problem accurately and understandably influences the probability of the right bugs getting fixed. Not every reported bug should be fixed, but the ones that should had better not escape because of poor wording.

A bug report is a persuasive document that needs to influence the right people to act. Free your bug reports from irrelevant information and don’t make them come across like a tabloid headline screaming at the reader.

You might want to keep a record of your past bug reports. Which ones produced confusion? Could you have written them differently? Would a change of wording have resulted in better understanding?

Domain knowledge

As a tester you are not just comparing specifications with the implementation. There are many other references, such as user expectation, consistency with comparable products, or the history of your product, that you can use to identify problems. Domain knowledge is also one of the references you can develop. Talk to your customers. Have a chat with the marketing guys. Spend a day with Customer Support. The better you know what is important for your business, the better your judgment will be.

Willingness to learn

You are a knowledge worker. Knowledge is not static, especially not in the technical domain. Constant learning is essential in order to become better at what you do. A situation where humans are interacting with software is a situation where software is interacting with humans. It is helpful to try to understand how both work. I recommend exploring the social sciences (cognitive psychology, social interaction theories, etc.) as well as increasing your technical education.

In my opinion, every tester who wants to become really good will profit from participating in the excellent BBST (Black Box Software Testing) courses. Each course takes four weeks, and you will spend 15-25 hours each week on intensive hands-on exercises. You can find more information about these courses on the website of the Association for Software Testing.

Another course I highly recommend is RST (Rapid Software Testing), which focuses on context, exploration, and thinking to find better bugs. It is currently taught by James Bach, Michael Bolton, and Paul Holland. A skillful search on the engine of your choice will lead you to the right place.

Social skills

Testers who constantly whine about their job and how horrible everybody else is get my blood boiling. Self-victimization is poisonous. Sometimes you just have to let go. If you cannot do that, you will be perceived as a sourpuss. If the crowd goes for a Friday evening beer, you won’t be invited. Imagine what influence that has on people’s willingness to collaborate with you.

Humor

Humor helps. Among many other things, it helps to sustain your sanity. As a tester, you often live in a stressful environment. Smiling and laughter reduce the damaging effects of stress hormones. It helps you to stay focused on what you want to be doing: testing.

Practice

And above all, you need to practice your skills. If you don’t practice, you can’t reach the higher levels of proficiency. While you practice, observe yourself, find areas for improvement, and make all of your actions deliberate and self-reflective.

Conclusion

Aiming to become a world-class tester does not mean reaching a destination, but rather being on a constant journey into new territories. The exploration never ends–which is exhilarating, and makes software testing so rewarding.

Happy testing!

{ 13 comments… read them below or add one }

Justin Hunter January 31, 2013 at 11:30AM

Ilari,

Fantastic post! Reading it makes me feel like screaming your messages from the rooftops.

Posts like this are inspirational to see, particularly when so many testers in the world just “go through the motions” without giving serious thought to what it truly means to become an excellent tester.

Personally, I would add being skilled in the fundamentals of Design of Experiments to your excellent list of important testing skills. This is because testers conduct thousands and thousands of experiments in the course of executing tests. Useful Design of Experiments approaches (such as pairwise test design and combinatorial test design) can help testers cover a lot highly efficiently and avoid repeating themselves more than absolutely necessary. Having said that, (a) I could be accused of bias on this topic (a passionate interest of mine), and (b) the DoE point doesn’t take anything away from your superb post.

Outstanding stuff. I’m bookmarking this post and expect I will be referring testers to it for months (if not years) to come.

- Justin

Reply

Iain February 2, 2013 at 2:02AM

It’s encouraging to see an organization like eBay taking testing seriously. OF COURSE you can’t automate the problem of bugs away. Testing is a learning process where the information gained from test suggests (if you are doing it well) previously unthought-of ideas for new tests. You can’t automate that.

Reply

paschalis February 4, 2013 at 2:14AM

nice work!

Reply

Jon Bach February 4, 2013 at 9:43AM

Nice blog, Ilari.

Many people think testers are either “checkers” (running only confirmatory tests) or “breakers” that execute wild corner cases users aren’t likely to do.

There’s a lot more to testing than these two polarities, and the topics you’ve mentioned above are a nice outline of skills testers can bring (and develop) toward the goal of exposing important risks and problems in software.

Reply

Lakshmi Seshadri February 4, 2013 at 10:11AM

Good summarization of becoming or being a good tester and core values for good testing.

Reply

Shiva Mathivanan February 18, 2013 at 6:12AM

Hey Ilari,

It’s a good write-up. I enjoyed reading and I’m going through it especially on the “Technical proficiency” block. As Justin rightly said it is worth sharing to peer testers. Let the change infect for good. Happy Testing.

Reply

duncan nisbet February 27, 2013 at 3:40AM

Lovely post Ilari – as always, great content & great flow (I always feel like I’m reading some beautiful poem when reading your posts)

I concur with your reference to observation & taking a walk with a 5 year old – my daughters spot so many things that my wife & I miss. Its amazing to “see” the world through their eyes.

“The exploration never ends” – it certainly doesn’t. Happy testing to you too!

Reply

Gordon May 10, 2013 at 7:27PM

Yes! Finally someone writes about h drol.

Reply

Software Product Testing June 7, 2013 at 5:44AM

Nice post

thanks admin

Thanks for sharing with us these informative post

Reply

archana November 11, 2013 at 10:07PM

it is very use full to gain my software testing knowledge , Thanks the above

Reply

Tamoor Kalhoro December 4, 2013 at 5:22AM

Post becomes really exciting after this one:
What areas do you need to be good at in order to avoid being discredited as a “mouse-click-monkey”?

A real good post for anyone who really want to be a tester…

Reply

rahul December 15, 2013 at 6:31AM

The information provided in the post means a lot to people who are serious about their testing passion.

Reply

Ritu June 24, 2014 at 2:30AM

Very informative and true ….a real good post for testers and their actual roles..

Reply

Leave a Comment

{ 6 trackbacks }

Previous post:

Next post:

Copyright © 2011 eBay Inc. All Rights Reserved - User Agreement - Privacy Policy - Comment Policy