What makes a great tester?
A few discussions I’ve seen lately have gotten me thinking about this:
- What do testers do?
- How does an ISTQB-following tester compare to an “Agile” or “modern” tester?
- Is it a tester’s job to decide the severity and / or priority of a bug?
- Why do people use the phrase “manual tester” (and the general debate around wording that comes with it)?
- How wide is the spectrum between a great tester and a terrible one; and which is more common?
In reply to one of these questions, I mentioned three important things good testers do, beginning with the letter “I”. It kept popping back into my mind, and I think there are actually five “I”s of great testing. If you’re a tester who isn’t doing these five things, now might be a good time to start.
Note: I know this will be old news to a lot of you, but the reality is that there are still plenty of testers out there who don’t follow the Five “I”s of Great Testing. Instead of sitting back in dismay, I hope this post:
- Encourages any testers who aren’t, to start
- Shows people who work with or hire testers that we don’t all approach testing in the same way; you could either be very lucky, or need to do more to find or develop the great ones
1. Imagine
Great testers use their imagination.
Testing is a creative process, and it doesn’t just begin once someone throws code over the wall, as the metaphor goes. Testers need to imagine:
- Who is this helping / harming, and what are they like?
- What problem(s) is this solving / creating?
- What are the use cases – high priority, common, edge, etc.?
- What can go wrong / what are the risks?
- What could we test, why and how?
- …
If you’re not using your imagination when testing, and perhaps only checking what someone else tells you to, you run the risk of being called a “checker” rather than a “tester” (and all that comes with that debate). Going beyond the obvious is the first step towards great testing.
2. Investigate
Great testers dig deeper.
A big part of testing is uncovering information. How do we do that? We investigate. We ask lots of questions, look for clues, conduct little experiments, and let the results guide our next steps. We don’t know what we’ll find – we have to find out for ourselves. This is where things like exploratory testing shine, and you’ll be grateful for that good imagination of yours.
But remember that our software isn’t the only thing we can investigate. We can also investigate:
- What real users, user journeys and user behaviours look like
- Comparable software on the market
- Why an automated check is failing / flaky
- The root cause of a blocker
- The best (technical) approach to take
- …
If you’re not investigating and discovering something we didn’t know before, and perhaps just validating that we think will happen does, you’re still in the “checker” zone, and this is what puts you in danger of being replaced by a machine. Curiosity and the desire to learn are trademarks of a great, human tester. Remember to think critically during your “interrogations” to uncover the true facts of the case.
3. Inform
Great testers know who needs what information.
Once we uncover information, the least we can do is to make that information available to others, so a decision can be made about how to move forward. Have we addressed the reason why we were looking for this information in the first place? Informing could look like:
- Debriefing your teammates on an exploratory testing session you conducted
- Sharing a breakdown of user-reported issues vs testing coverage with other testers
- Telling the Project Manager about a process which is hindering progress
- Letting a Developer know about a bug in a critical feature
- Sharing a list of potential improvements with the Product Owner
- …
Even if you are imagining and investigating well, if you’re keeping the findings to yourself, you’re critically limiting the value your work can add.
4. Illuminate
Great testers offer insight.
Informing after investigating really is the bare minimum. Where testers can really add value is by shedding light on (or illuminating) the implications of such data, actions, or inaction, and providing insights that guide the team towards decisions that will have a positive impact. Examples of illuminating could include:
- Explaining the impact that a bug will have on end-users, so it can be classified and prioritised appropriately
- Describing the extra risk a set of dependencies would bring, so the risk can be properly mitigated
- Showing the increase in quality that was seen the after someone went on a particular course, to decide whether further funding should be approved
- Demonstrating how support requests increased after the last major UI update, so we can consider ways to test new UI without disrupting our user base
- Showing how much total time spent implementing tickets decreased after trying Three Amigos / Hats, so we can decide whether to continue with them
- …
If you’re just handing over raw data without adding any context, offering insights as to what it might suggest, or even proposing how to proceed, you’re not fulfilling your full potential to be a great tester. Because of the broad reach of a tester’s role, we often become the subject matter experts with both the big picture and detailed views, which others may not have in their sights. In my experience, people really appreciate when someone with this kind of knowledge and overview gives them hints as to what to make of hard facts, and what to do about them. That’s useful, and that adds value.
Check out my articles on why you would want to provide insight and how to provide insight.
Note: This section was previously named “Influence”, but I decided to change it to “Illuminate”. While influencing can be a useful and important tool for a great tester, I think the enabling of good decision making is more important. Illuminating can have the side effect of influencing, but it’s the well-considered, informed decision making that’s important. Be open to discussion and the possibility that someone else may also have relevant insights to share, and work together to find the best solution. Which term do you prefer and why?
5. Improve
Great testers are always improving.
If you’re not moving forwards, you’re moving backwards. This is especially true in an industry such as technology. What might have been good enough yesterday, may not be good enough tomorrow. Part of our job as testers (and therefore carers of quality) is to help improve, or at least keep up, quality. Roads to improvement could be:
- Simplifying a process
- Engaging and sharing ideas with others, internally and externally
- Providing or attending training
- Refactoring code
- Investing more time earlier in the process, to save time overall
- …
If you’re not keeping your eyes open for opportunities to continuously improve, and are happy to trudge along with the status quo, you’re missing out; both as an individual and a team member. Great testers don’t just help to improve the quality of software; they also work to improve themselves and their contributions.
Did you notice how none of these points involved specific tools, technologies, or coding languages? Writing automation or not isn’t what makes someone a great tester, so let’s give more attention to the things that do 👆
Do you think my Five “I”s of Great Testing are valid? What else do you think makes someone a great tester? Have your say in the comments.
Like what you’ve read and want some of those “I”s on your team? You’re in luck! I’m looking for work in Quality Engineering and Scrum Master roles, and am available immediately. Get in touch to discuss how I can support you and help bring out the best in your team. You can also find me on LinkedIn.
Instead of “Illuminate” or “Influence”, I think the word “Inspire” would be good too 🙂
Thank you for this blog post and great content!
Oh, “inspire” is a good one! Thank you too, I’m really glad you like it.