What is a software tester and could this role be the right career move for you?
The career path of a software tester can be confusing. I found this to be the case as well, with it taking me a good ten years to feel comfortable in my role.
There’s no straightforward entry point to being a software tester. For many people around the world, it is usually (but not always) their college experiences which inform their next professional steps in life. This is not the case for the tester path as many diplomas and universities do not provide relevant courses within their curriculum.
I was first exposed to the field in my final year of university when I was working on an accessibility-related project. Retrospectively, I now know I was conducting a form of exploratory testing on applications to provide results. But these skills were not ones explicitly taught to me, rather ones I absorbed secondarily through other projects.
If this is the case, then what is the best way to learn about and enter this field?
What is software testing?
In simple words, software testing is verifying and validating that a piece of software or application is actually performing its functions as per the requirements. The two core factions of testing fall into either functional or non-functional categories. Which one you opt for is a decision you need to make with your team(s) when strategizing the process.
Testers are great at what they do, including bringing assumptions to the table, foreseeing risks other members might not have, and making sure the entire team thinks of quality first. Given the different hats that people wear in this role, I would say testers utilize a mix of both technical and business skills.
To understand if this is the right role for you, speak to people within the testing world, expand your research, and attend conferences – here, look to make connections with testers who will be able to share an abundance of knowledge with you.
Figure 1. Tester skill set
To be a proficient tester, it’s good to have a mix of the skills from Figure 1. If you are pursuing a technical career you will be learning all sorts of additional skills such as database querying, different coding languages, and analyzing results.
Some skills come under the technical umbrella such as domain knowledge, but you also need interpersonal skills to succeed. Good communication is an important ability to possess, as it plays a big role when coordinating tasks, speaking and collaborating with other teams, and making strategic decisions.
Reference the below diagram (Figure 2.) for helpful structures to abide by when acquiring new expertise. Aim to become a “T-”, “Pi-”, or “Comb-shaped” tester.
Figure 2. Learning via different shape structures
Every company has variations of role titles, hierarchies (or lack thereof), and job specifications. However, with exposure and time, you come to understand the foundational aspects of the role, regardless of title. If you’re looking to advance your position, you’ll need to also gain a thorough understanding of the core responsibilities in that specific role. It’s best to clarify this with a mentor or with the person/team who you may be joining.
Figure 3. The career ladder
The first step on the ladder: A junior position
A tester first lands into a junior role. Back in the day, testing used to be one of the last stages. Now, however, with it being a part of many teams’ processes, testers need to be involved as soon as possible to collaborate as much as possible.
As someone new to the field, you have to understand what you are going to be testing. In this respect, the requirements analysis provided by a business analyst is always a good reference point, as this document will delineate exactly what the client is looking for. Once the document is read and you have made your notes, discuss them with your team or test lead to help you with your next steps.
The creation of test cases and documentation is also vital in your first role. Depending on which project you are working on, you may need to create some test cases/scenarios and upload those on a designated tool. Alternatively, you might create them in Excel and showcase your results to the team. Apart from that, it would be a great win for you and the team if you identify areas that aren’t documented within your confluence/wiki pages. If or when this happens, you can take up the task of adding that new piece of information.
When you are testing you will come across functionality that will either be incorrect or faulty; this is known as a bug/defect. As a tester, you would need to create a step-by-step document/report clearly explaining the problem, so that the team (mainly the developers) can create a fix. Once this has been done, you will be able to retest this fix. It’s important to remember that this process is not just about reporting a bug, but also tracking it until it’s resolved.
Reporting to or catching up with your test lead is vital too. Majority of the time they will be your line managers, so it’s a good exercise to keep in touch with them regarding your day-to-day tasks, objectives, and any escalations or confusions you may have. You have to remember this is your first-ever testing role and there will be millions of questions you will be urged to ask. If you do so, you will demonstrate your willingness to learn and question, as well as receive feedback.
Make sure to attend conferences, where you can learn a lot about the technology trends and network with fellow testers.
The next wrung: Senior tester
Roughly two to three years into your career, you’ll ascend to a senior tester role. Your testing suitcase will be packed with loads of experience, client engagements, and further ambitions to grow your skill set.
Apart from the knowledge you gained as a tester, you will start to add to the roster by becoming more involved in test planning, roadmaps, and estimations. A tester, at this point, can start to understand the details of their tasks, as well as roughly how long they will take to complete. Perhaps they will even begin to raise some edge cases.
Also, in this senior position, you can start to review test documentation created by analysts for projects such as test cases, and any documentation on confluence pages to see the completeness and effectiveness of them. In essence, serving as a mentor and helping review test artifacts.
Automation is a topic that gets discussed a lot too when testers are growing into their roles. I remember I automated my first set of test cases when I became a senior tester as well. As a tester, it’s not a “must” to know how to automate tests but it can be useful to have at least some degree of knowledge on the topic. Understanding the basic parameters of automation, how it can work for a project, and the ins and outs will help you grow.
You can also start exploring available tools on the market, to see how some differ from others. Additionally, you can work with other testers to see what test cases should/could/must be automated. Collaborate with developers too, since many of them will have had experience with test automation tools.
As a senior tester, you can start seeing areas in which you would need extra training. Ask your manager for a training path to help you grow further whether that’s through certifications, conferences, or enrolling in courses with a proof of concept (POC) as the outcome. Bolster your abilities by cultivating interpersonal and technical skills alike.
You either have the option now (after being a senior tester or during) to become a lead tester or an automation tester. If you are feeling technical, and would like to excel in this area, you can pursue a software development engineer in test (SDET) or automation testing role. It does take around five years to be skilled and trained prior to becoming an automation tester, though expect to be always learning as the field evolves over time.
An automation tester’s role consists of various things from designing and writing automation scripts, to understanding and creating test frameworks. Test automation is all about best practices and seeing if the developers in the team can provide the right support. Bear the cost benefits in mind when automating features too. However, if it’s not as valuable when it comes to understanding if a test scenario is worth automating, I would say park that feature and focus on manually testing it instead. You can learn from your experience and go by the feature’s criticality, legality, reusability, and return on investment (ROI).
At this stage, expect to start investigating problems in the software as a result of your testing and automation exercises. Furthermore, you will want to make an automation suite that is refactored and not using unnecessary code.
Your interpersonal skills will keep growing and so will your technical skills. You will need attention to detail and an analytical mindset to be in this role. You can challenge teams just as well! Remember to work with your team and demo all the automation work and pipelines you are creating. If you see interest from other testers or developers, welcome their ideas and way of improving the test suite too.
Being a software tester has great opportunities. You get to learn about various domain details of a system as well as plan how to test what can be tested.
The direction of your career is entirely dependent on your personal interests. A technical role may be that which suits you best, or perhaps something more business-related (maybe even a mix of both).
Remember that every tester does not have to follow the process highlighted above. Some firms have a flat hierarchy and some have a more traditional one. Therefore, your path can be as you see apt. It is all about the journey you decide to embark on, but remember to upskill and share your knowledge as you go.