5 min read

How to Start in Tech, Improve Your Skills, and Enjoy Challenges: The Life Journey of a QA Automation Engineer

Why would you choose to work in AQA? How should you chart your path? What are the pros and cons of the profession? How can you progress? EPAM Software Test Automation Engineer Mikhail Brel shares insights based on his personal experience.

Software Test Automation Engineer Mikhail Brel

Education and part-time jobs

— I can't say that I had specific career goals or dreams when I was a child. I just always found it interesting to try something new. The things I tried didn't always work out. And I didn't always receive support from my parents in my endeavors. Perhaps this influenced my future decisions.

In general, I’ve always enjoyed finding cause-and-effect relationships, delving into the essence of various processes, and working with numbers. In my teenage years, I found it interesting to try my hand at poker.

By education, I am an engineer-economist. I graduated from BNTU with a specialization in "Economics and organization of production in automotive transport." I can't call this choice deliberate. At 16, it's challenging to try to determine a future profession years in advance, and I didn't have a strong inclination towards anything specific. I enrolled based on pragmatic ideas: choose an in-demand profession where you can earn a decent living, and if it aligns with your interests, that’s even better.

I started working at the age of 14-15 and tried various jobs. I was a loader, builder, assembler at a factory producing communication equipment, and even a hookah master. The thought of programming never left me, though. I even took a free course on JavaRush. There weren't as many free courses back then as there are now, and retraining required money. After university, I got a job as a material and technical support economist at a factory in Minsk. I went there with the idea: "I'll earn money now for paid courses and then try myself in programming." But with a factory salary, it wasn't that easy to save the money, and my enthusiasm gradually waned.

Turning point

— After a year of working at the factory, I decided to focus on the future. I looked for job vacancies, went to a couple of interviews, and realized that the prospects of working in supply and logistics didn't excite me. I started looking for alternatives. Ultimately, I decided to return to the idea of programming. I found out that EPAM offered free courses for a Java developer. I applied for them, but didn't pass the selection. I lacked knowledge. I decided to thoroughly prepare, and then I applied again after 3-4 months. This time, I had enough knowledge, and I passed.

Towards the end of my training, I decided to try myself in test automation. My friend was already working in that area, and I occasionally heard stories from him about his job that interested me. At that same time, the first online courses on test automation were opening at EPAM. I registered for the program. I had to pass all required levels, and then I was accepted into the EPAM lab. I was one of the people who made it into the first lab group from the online courses. For 5 months in the lab, I gained practical experience close to real work on a production project. After that, I passed the exam for a junior specialist, and I was given an offer on the condition that I retrain in JavaScript. I learned JavaScript while already employed in the company.

Current situation

— Now, I am a key tester in my team. In our project, we are divided into teams, each consisting of 5-6 developers, a business analyst, a scrum master, and one tester who performs the roles of both a manual tester and an automation tester.

I am responsible for testing the functionality provided by our team. I determine the levels at which the functionality is tested, write test cases, automate these test cases, create bug reports, conduct regression testing, communicate within the team and with other teams, and so on.

Being a QA in 2024: pros and cons

— It's challenging to identify specific pros and cons of my profession. On one hand, I prefer coding and I am not particularly fond of manual testing. On the other hand, the need to engage in manual testing allows me to better understand how the product works. I frequently need to learn a lot of new things, which is cool; doing so makes you feel like a stronger professional and enables you to come up with novel ideas and solutions. At the same time, the constant need to learn new things can be tiring.

Everything depends on the specific project. When a project involves legacy technologies, things frequently don't work, deadlines are always looming, and it can be stressful. But it's stressful for everyone, not just for the testers.

Inspiration

— There is something interesting in every project. A disclaimer: don't harbor illusions that projects only consist of interesting things. Often, work involves a large amount of routine activity. I do like that I encounter various products that I wouldn't otherwise come across. I had a project involving a vast amount of data, tables, and charts that help users make decisions for improving efficiency or investing in various industries. There was another project that allowed users to buy a car, take out a loan — with all the accompanying legal documents — just like any other product in an online store. It's always interesting to see how everything works from the inside.

It's also fascinating to try different technologies. Often, they are smart and thoughtful solutions for various tasks. One recent interesting task involved figuring out how to distribute tests at different levels: from unit to end-to-end. It requires a lot of creative thinking and communication with developers but, in the end, you can create a much more effective testing system.

Skills for testers

— Among the essential skills, I would highlight: the ability to learn a lot and do it quickly, ability to analyze (including your own work to determine whether something can be done differently), consistency, keen attention to detail, and communication skills. Depending on the project, a significant part of the work may involve communication.

For those exploring automation in JavaScript, I recommend TypeScript, Webdriver IO (UI testing), Axios (API testing), Allure (reporting), Mocha + Chai, ESLint, and Git. It's also good to know how to write tests using Cucumber and Jenkins.

Continuous development

— I primarily maintain my knowledge through on-the-job training and interviews that I participate in when transitioning to another project. Basic language and testing knowledge can readily be obtained on YouTube. Paid courses on educational platforms can be very useful for beginners. For something more advanced, you need to Google, read documentation, watch conferences, or find courses — depending on the specific query. If you know what to ask and have sufficient expertise, you can successfully develop using AI tools.

Tips

— To those who are just starting their journey in test automation, I advise you not to give up when difficulties arise. There will be many difficulties along the way; they are a normal part of the process. You may often feel foolish, but that's also normal. It's essential to find a source or learning path that suits you.

At the beginning of my journey, I had to try several books and resources for learning. Only after finding a suitable one did the process really take off for me. Also, pay attention to manual testing. Clients increasingly want automation testers to also perform the role of a manual tester. And, most importantly, only pursue AQA (or any other profession) if you have an interest; there's no need to torture yourself if you don’t.