What (other) skills are most important for a tester?

I recently had the pleasure of attending TestBash Germany both as a workshop fascilitator and as a part of a speaker panel. On the panel we got to answer a wide range of question and I spoke a bit about teaching and mentoring junior testers.

After the panel I was approached by a wonderful woman who asked me the fantastic question: ”What (non-testing) skill/area is most important to learn as a tester?”. My short answer was: ”Learning any skill outside of testing will make you a better tester” but I thought I’d expand upon that answer a bit in a blog post.

A lot of people have talked and written about how their experience in non-IT fields have made them better testers so I am going to stick to what I know and write about different areas in IT.

Requirements and Business analysis

Knowing the basics, pains and gains of requirements work will most definitely make you a better tester. It will teach you how to work with your stakeholders to find out their actual needs. It will teach you how hard it is to write anything that will not be misunderstood and it will almost guaranteed make you understand how much we assume, fill in blanks and add information that is. not. really. there.

Programming

Well this might be obvious but learning to code, or at least read code, will assist you in so many ways. Of course, it will make it easier for you to learn test automation. Which in turn will probably benefit your career or at least broaden your options. It will however help you in a lot of other ways as well, even if you don’t want to start down the automation road. Knowing how code works will make you aware of the pit falls, the weak points, the things that are most likely to break. It will make it easier for you to talk to the programmers on a more even playing field and not least: it will make it easier for you to actually challenge things that might not be true just because the devs say so. I have met a lot of testers and test leads that are bullied into accepting a lot of risk just because they don’t think they can challenge a decision because they actually don’t understand the reason for the decision. Learning the basics of code also allow you to do simple stuff like fixing spelling errors, grammar, adjust colours or add translations if you are working in a multi-langual application.

Operations and hardware

This, again, might be obvious but I want to talk about it anyway. Knowing how computers, networks, firewalls and other operations stuff will be a HUGE help. It will allow you to poke at stuff that tends to be problematic. It will help you figure out weak points in integration chains. It will help you figure out a lot of ”negative tests” that are often neglected. Like what will happen if a disk is full, if we run out of memory, if access rights to the file areas are not set right or what will happen if a message queue is down, full or the contracts gets changed without you knowing about it. Knowing a bit will make you the hero when you realize the suggested implementation will cause all sorts of havoc if the chain of events breaks along the way. Surprisingly often we (as in people in IT) tend to think tech will just work and/or someone else will make sure to pick up the pieces if it breaks. That’s how we end up with transactions being submitted in one system but aborted in another along the way.

Customer service <3

I love you guys. Truly. If anyone/anything has helped my career more than my own skills it’s customer service. The unsong heroes that usually know more about my applications than myself. They will know what is wrong long long before anyone else and a lot of times they have the metrics that the rest of us dream about. If you deploy a new layout or change some user flow, they will know the next day how good/bad it is and they will have numbers to support it. Get to know them, involve them, ask if you can sit with them and listen in to the calls. You will learn so much about your users. Honestly, they should be included in every prioritization ever because they KNOW what causes the phones to ring and how users get stuck. Monitoring and observability is awesome but don’t forget your human monitors!

Sales and marketing

We like to think that bringing value to the users is the only thing to care about but usually you can’t build software without money. Learning more about the business side is awesome as a tester. One part of it is that if you know what your sales people and markering people prioritize, it’s easier to prioritize your testing and know where to focus. Another aspect is that sales people are freaking gods at selling and what is a test report but a sales pitch? You want to sell your story to get people to agree to whatever decision you want them to take. Need more time for testing? Learn what will cost the company most (revenue, lost sales, bad reputation?) and learn how to paint the picture that will sell it to them. Want to invest in automation? Learn how to write a business case for it and sell it like a pro. Marketing will help out by teaching you how to wrap the message up and what stakeholder, users ans segments to focus on. They will have analyzed that for longer than you can ever do so take advantage of that.

Others?

As I said in the beginning: almost any skill you can think of will make you a better tester. Knowing technical architecture will help you out in modelling tests, finding weak points and knowing why a certain choice of implementation might be awesome of problematic. Knowing the psychology behind human-computer interaction will help you think of ways to improve (or break) the usability of your software. Knowing UX will teach you how to increase, or find issues with, conversion rates. Knowing user analytics will help you increase user satisfaction or how to prioritize different aspects of your testing.

I could go on for ever but I hope my main message is clear: Keep improving. Keep adding skills to your tool box. The more areas you have knowledge about, the more width you will bring to your testing and the less risk of you getting stuck in doing one thing only (even if I’m sure you do that one thing really well). When I say any, I mean any. Bring every aspect of yourself into your testing. I’m sure you can think of parts of… I don’t know… gardering, that will be useful in your role.

As for me: Sales is the area I’m focusing on right now and I’m sure I will find lots and lots of ways to improve my testing as I grow in skill.

Happy learning!