Before it ends up in the customer’s hands, every product on the market undergoes testing to make sure it works properly without breaking during the process. In the “production line” of a development company the person in charge of the final product excellence is the Quality Assurance engineer.
A Quality Assurance engineer, also known as a QA, makes sure there are no issues with the final product and everything works smoothly. In order to do so, they perform continuous manual and automated tests during all stages of production.
But a QA is not simply a software tester or analyst. To ensure the top performance of the product, they need to have a clear picture of the client’s business, the logic behind the idea and the goals of the product. They have to think about the end user’s profile, as well as have in-depth knowledge of the steps and processes of the development cycle.
And that’s not something you can get a diploma for. One might not need a particular background or education to start as a QA, but a certain set of skills will definitely be of help. If you are flexible and versatile, have attention to detail and think outside the box, if you are a team player and are always ready to learn and improve, maybe this is the right career path for you too.
So, let me tell you the story of how I became a Quality Assurance engineer.
It all started back in the summer of 2014, and like most good things in life – it was a pure coincidence. Back then, I was working as a bartender, and I had just graduated with a Master’s Degree in Nuclear Chemistry. (Yeah, you can imagine what kind of “explosive cocktails” I was shaking back then).
One sunny day, DevriX’s CEO Mario Peshev asked me to help the company with the testing of their projects. I thought, sure, why not, it’s an easy job – sitting quietly, clicking the mouse, adding some values here and there, making sure the software works. How naive I was back then.
Anyway, I accepted the position as a Tester and I have been working as a QA Specialist for the past six years. As you can imagine, software testing was not what I expected it to be. It is not sitting and clicking all day with the mouse. It’s much more than this, and sometimes, it’s even hard to put into words what we actually do.
Now that I’ve been around for a while, I realize that there are 6 essential things I wish I had known when I started as QA. If you’re on the same path, keep on reading – you might learn a thing or two from my mistakes. And if you don’t, don’t get too cocky, you’ll have plenty of time to make your own mistakes. Because this is how we learn and become the best at what we do.
1. It Is Not an Easy Job
There is an emerging trend nowadays, that I can’t help but notice. Many people are leaving their comfort zone to switch their career path and jump into the IT field.
And a large percentage of these people are choosing to give the QA career a try because it looks like the easiest one.
Nothing could be further from the truth. In fact, to become a successful QA Engineer, you need to put the same amount of time and effort into becoming a software developer. There are a bunch of essential technical skills that you need to learn, but more importantly, you have to master the ability to pick the proper one at the right time. The QA Engineer combines a lot of roles and their job requires an understanding of the whole development cycle and business goals. It is not only finding bugs and pointing out that this or that is not working.
To become a successful QA Engineer, you need to put the same amount of time and effort as into becoming a software developer.
If you want to be a successful QA Engineer, you need to understand:
- How to better manage your time
- How to handle requests assigned to you
- How to prioritize your tasks
At the same time, all of the above is a part of the Project Manager role.
As a QA, you also need to develop the ability to build a test or staging server environment or to be able to deploy or fix a broken server, which is a part of the SysAdmin/DevOps role.
At the same time, you need to be able to read and understand the needed information from Google Analytics (GA) or any other data, which is a part of the Data Analyst role.
So, QA-ing requires being proactive and constantly learning and exploring new territories.
2. You Do Not Need to Know Any Coding Language (But It Helps)
As you read at the beginning, before becoming a QA Engineer, I was a bartender.
My coding skills and knowledge base in any programming language were zero. Yes, all the testing was blackbox. Yes, with a lot of creative thinking and effort, I was able to compensate for this and do my job.
But as projects were becoming bigger and functionalities were getting more complex, the time for testing doubled. And my “methods” from above were just not cost-effective and caused me a lot of stress.
So, the smart decision was to start learning PHP. Why PHP? DevriX is an Enterprise WordPress Agency, and as you know, WordPress is a CMS written in PHP. So if I wanted to check and understand the developer’s logic in the commits, I needed to understand their language (the code). This approach reduced the time for testing significantly. Moreover, a lot of times, issues were being caught even in the code review process.
My point is that, yes, you can be a tester without any coding language, but this will make your life a nightmare. So think about it.
3. You Need to Understand the Client and the Business Goals
Being a good QA is fine. But if you want to be an excellent QA Engineer, you need to understand the client’s business goals. Your job lies not only in writing and testing code. It’s about creating business value.
As a Software QA Engineer testing the code and understanding the business goal is the way you can take a step back to see the bigger picture of what everyone is doing. This allows you to provide extra worth to the final product. You take an idea, turn it inside out and back again, deconstruct and rebuild it to find the flaws and weaknesses. You have to think from the client’s perspective but also walk a mile in the end user’s shoes to foresee how they would handle the product and improve their experience.
Understanding a client’s business could make you more confident in making decisions, prioritizing tasks, or managing your time more efficiently. It could help you prevent a wrong implementation by the dev team misconceptions or misunderstanding of the requirements.
So, QAs really need to have their head in the game and be spot on.
4. Keep Learning Continuously
Information Technology changes fast, and none of us knows what our future holds. It is hard to keep up with new technologies, frameworks, languages, and design techniques. If you are a QA Engineer who doesn’t keep their skills up to date, you won’t be able to get the best job opportunities – to be honest, you may not get even any. A team is as strong as its weakest unit. Expanding your skillset will expand your opportunities, even within your organization.
Continuously learning enables you to foster innovation and be a catalyst for team growth. When you bring new ideas to your team, you challenge team members to think of new and better ways to do things.
The best software testers understand both the business and technical sides of their product. They come up with unique questions that may not occur to other people with other roles on the team.
5. Ask Good Questions
Good testers should ask good questions!
When you’re assigned a new task, the first question you need to ask is:
“Who do I need to talk to if I want to understand what to test?” The answer here is simple – Talk to everyone you can!
When you start a new project, you need to create a list of all the people who can provide you with any information. The tricky part is what kind of question to ask.
To give you a better idea of what I’m talking about, let’s imagine the following scenario:
You’re participating in an important meeting and you’re discussing an exciting new project with the team. It is your turn to ask questions, and you shoot something like “What do you think should be tested?”. Just imagine the look of the people staring back at you!
Almost everyone in the room will say: “Well, aren’t you the QA Engineer here? Test everything! We do not want any bugs in the production environment!”
That is the moment when you fucked up yourself.
Now you start realizing that you have not enough time to test the whole product, that your authority in upper management has ruined, that you do not understand the product itself.
The problem here is that we asked someone else to do our work for us, to come up with what needs to be tested and when.
So going back to the meeting scenario, we need to ask questions without even talking about the testing operations. Try to understand what areas are important from a user’s point of view, or based on competitive analysis. Try to gather information, why the client chooses our product and why it is so unique.
Here are a couple of questions you can ask:
- What are the most important aspects of the application? What makes it unique compared to the competitors?
- On which part of the product, we will focus in our marketing campaigns?
- Do we have some Google Analytics data (like Browsers, Operating Systems, Regions, etc.), which will help us target the audience better?
- Do we have some form of payments related to the product? Which payment providers will we be using, based on experience?
Notice that we didn’t ask what to test, but we did ask what is important for the business.
6. Share Your Experience with Fellow QAs
You can be an extraordinarily gifted QA Engineer, but if you don’t share your knowledge, this won’t make you a good person, nor a great employee.
Sharing is caring!
When you read a good blog post or find out about a new technology or a tool – share it! By sharing this with the team, you’re showing that not only are you a keen learner but that you want to help them learn and achieve team goals.
By sharing your knowledge as well as the bad and good moments, mistakes you’ve made, or achievements you have earned, you lay the foundations of a strong team.
There are many ways to share your knowledge:
- Write blog posts related to your profession or work
- Prepare and organize workshops
- Develop and conduct different pieces of training
- Record YouTube videos or podcasts
All of the above will help you to become a Superstar QA Engineer with a great and solid team to back you up, which brings value to the company.
Write a comment
Hi William, here is Yovo Kolev‘s reply:
Hello William, I am glad to e-meet you. It seems you have various interests in programming, which, in my opinion, is good.
Like development, the Quality Assurance field offers various and different paths with different required skills.
Please allow me to make a few assumptions that may be completely wrong, but otherwise, my answer would be as long as a new blog post.
Your communication skills are great
You are a team player
You have good soft skills
You are highly organized and have good attention to detail
First of all, you should familiarize yourself with the QA methodology and terminology. There are a lot of online resources on the web where you can find information, but my best advice is to find a place where you can take ISTQB Foundation Level course. This course will cover the theoretical field, and you will be confident in the QA methodologies and terminologies. Successfully passing the exam and certification could be advantageous during job interviews.
Please allow me to make one more assumption. You are interested in automation quality assurance, correct?
The gold standard here is Java + Selenium. You can find a bunch of information on the internet or courses from Udemy on how to start with Java and Selenium.
As you have experience with Python, Java, JS, and C you can use almost every framework in the market. Yes, there are frameworks and tools which are language specific, their usage depends on you and your projects. Pick a language, pick a tool, and enter hustle mode to master it!