Where a QA Engineer Can Grow
- Posted by Iuliia Gorshkova
- Categories Career, Technologies
- Date September 15, 2023
My name is Yulia, and I am a software testing engineer. A few years ago, when I was just about to become a tester, I faced a pressing question: what should I learn?
The main difficulty I encountered at the beginning of my training was deciding which direction to move in. I didn’t have a good grasp of the different types of testing and had no idea what I might enjoy, so I studied everything at once and moved in all directions. This significantly slowed down my entry into the profession.
I don’t want to discuss where someone without experience can realistically get hired. Testing in particular, and IT in general, are so diverse and unpredictable that you need to be prepared for anything—even being invited to a leadership position, for example. (I know of a real case where someone who took testing courses immediately landed a team lead position because they had basic testing knowledge and substantial experience managing small teams.)
If you don’t have a clear understanding of exactly who you want to be—or at least who you definitely don’t want to be—I’ll share some possible options. (Although many people end up in one type of testing or another by chance—for example, I ended up in backend testing because the office was outside the city, and I lived nearby. So the employer and I immediately liked each other, and then I fell in love with API testing.)
So, where can you aspire to work as a tester? Here’s a list with some reflections:
- Front-end testing (interfaces)
- Mobile application testing
- Automated testing (full-stack—automation + manual)
- Load and performance testing
- Backend testing
- Game testing
- Mobile game testing
- Leading a QA team
- Device testing
- Security testing
- Blockchain testing
- AI testing
- Virtual and augmented reality testing
Front-end Testing
Considered the easiest to start with because we’re all a bit of testers—we visit websites, use online stores, read blogs—and we often know where to expect issues. But a minimal set of knowledge is still needed: testing techniques, bug tracking (how to properly report bugs), general knowledge about web architecture, the ability to use developer tools, and so on. Most courses train interface testers, and some even do it well. There’s plenty of literature on this topic online and many free videos on YouTube, so you can prepare independently if you wish. Dive into the terminology, understand what boundary values are, test cases, checklists.
Mobile Application Testing
Everything is the same as with front-end testing, but knowledge about mobile platforms is added—what they are, what emulators and simulators are. You also need to know how mobile devices behave (when turning GPS on and off, during an incoming call, or when switching windows—there are tons of nuances). There’s less literature on this topic, but it exists. Just as there are videos on mobile testing.
Automated Testing (Full-stack—Automation + Manual)
Let me clarify—we’re not talking about pure automation engineers who are more like developers than testers (those who are given ready-made, detailed scenarios and they write automated tests for these scenarios). I’m referring to hybrid automation testers—those who study the product, test it manually, know the documentation, and can automate what is necessary themselves. This is full-cycle testing, for which you need to know well the basics of testing (everything mentioned in the front-end section), a bit of analytics, and one of the programming languages plus at least one testing framework.
It’s challenging to choose the right language. If you already know the basics of any language, it’s best to develop in that direction. If not, it’s easiest to start with Python and Selenium. The most common testing is done in Java. C# is also gaining popularity, and sometimes you’ll find vacancies requiring Kotlin and others. The most important thing is to make a decision and move in one direction because you’ll constantly be tempted by vacancies that require a different language than the one you’re currently studying, making you feel like your efforts are in vain.
Load and Performance Testing
This is a fascinating area of testing that requires a solid technical background and the ability to work with test environments and setups. You need to learn what Docker is, understand JMeter, know one of the programming languages (not relevant for all positions), be comfortable with Linux, understand metrics, know how to calculate load, and more. It’s quite a specialized field that’s not closely related to traditional testing (although the concept of boundary values exists here too). I engage in load testing using SOAPUI, but only because it’s the main tool in our project. So if you’re already using it, you can try experimenting with LOAD tests in it. For me personally, this is one of the most interesting development paths at the moment.
Game Testing
Being a game tester is challenging for two categories of people—hardcore gamers and those who don’t play at all. The former will quickly lose their passion for gaming, and the latter will struggle to understand the essence of games and won’t be able to empathize with users. For everyone else, game testing can be enjoyable, despite having just as many tedious moments and bureaucratic hurdles as front-end testing. For game development, you need to know the same foundational elements as regular testing (boundary values, testing methodologies, how to write test cases, etc.). Standard testing courses are applicable here. Additionally, you need to understand how games are built (logic, scenarios, user expectations).
Mobile Game Testing
This is simply a variation of the previous point. In addition to everything mentioned, you need to understand Android/iOS, know what to expect from games on phones, study various simulators and emulators, and know how mobile devices work (Bluetooth, GPS, incoming calls, push notifications, and more).
Leading a QA Team
On one hand, a leader doesn’t need to know everything. They might not be the most talented tester or automation engineer. But on the other hand, moving into leadership and mentorship requires a good background and practical experience. It’s probably not ideal to become a team lead without having worked in pure testing (although there are positive examples). If you’ve entered testing and realized you want to grow into leadership (not everyone desires this), then besides mastering testing theory and having at least a year of work experience, it would be beneficial to take courses on test management, test design, and test analytics. In small teams, a team lead often embodies all these roles and performs all these duties. It would also be helpful to take a course on mentoring in IT or team management, as there are unique nuances. Team leads, QA group leaders, or QA department managers may handle slightly different responsibilities—some still perform testing themselves, others don’t have the time—but there are common aspects, and learning to be a leader is just as essential as learning programming or a foreign language.
Device Testing (Testing Software Related to Devices)
This is a special kind of testing. Such vacancies are rare, so it’s hard to predict in advance what to learn. But, of course, everything that applies to regular testing applies here too. All the basics, theory, and well-worn truths are relevant. I once tested a fitness bracelet produced locally, and it was a strange but interesting experience.
General Knowledge Beneficial for Almost Any Tester
- SQL at the level of simple joins
- Ability to send simple requests in the terminal (a beginner’s Linux course like RH124 can be very helpful)
- Knowledge of various types of testing (any courses can help with this)
- Test design (at least read about it carefully)
With testing (as with any profession in IT), one thing is always clear—you’ll have to learn constantly. It’s practically like in Through the Looking-Glass: to stay in place, you have to run, and to move forward, you have to run even faster.
Currently, I am a senior tester in an IT company, mainly engaged in backend testing (which I love), but in a new project, I’ll have to delve into front-end and automation. I’ve also worked in load testing (incredibly interesting) and was a team lead for a while (incredibly exhausting). So I still haven’t figured out what I like best, but the beauty of this profession is that you have many opportunities to try different things to find out!
Teacher and QA Engineer