There’s been an increased demand for several roles related to Quality Assurance (QA) such as Quality Assurance Engineers (QAE), Automation Testers, Software Developers in Test (SDT or SDET), Performance Testers, or hybrid QA Engineers. However, what do these imply job-wise? Perhaps when we look into possibly applying or hiring someone with experience in testing or automation we’d need to better understand the different roles and responsibilities in software testing teams.
At the moment, nearly all companies rely on some kind of test automation as the source of truth for quality verification and, in some cases, quality validation. However, there is still the need for humans to be on the other side of the tools we use for automation. When we adopt a quality mindset and understand every role to identify the best fit for our company we ensure that we can get a team that is talented and aligned with the goals.
What Are QA Roles?
QA roles are those related to creating and performing software tests, identifying defects, and providing comments and assessments of the product’s requirements. Teams that focus on QA take on the task of keeping high standards while also ensuring that the product will be bug-free and provide a good user experience and customer satisfaction.
When trying to find the best talent to fit these positions, we should also keep in mind that it’s about finding the right fit. Something to consider is that quality needs to be considered at every stage of the process and by every person in the organization, not just by the quality engineers.
Quality Assurance Engineer Role
First, we have the QAE role (Quality Assurance Engineer). In your current company, you may know this role as QA or maybe just Tester. Although there is a debate about QA vs. Testing, it could be offensive for some professionals to call them “Testers” as they feel that they do more than focus on detecting defects (QA activities include: working closely with the team to prevent defects and customer-centric activities, understanding the necessities over the product and applications).
The QAE role includes the following activities:
Defect prevention and defect detection.
Understanding the product/service and customer-centric test scenarios.
Traditional Testing (Functional Test cases plus Agile Testing).
Testing reports.
Domain knowledge.
Shift-left Testing.
Customer-focused quality.
^Informative list, some companies may include more activities or less; we identify these as the important ones.
While these are conventional duties, plus some new ones, some companies need more. Specifically, knowledge and practice with automation testing tools. Codeless automation tools are a great addition to a QAE’s repertoire, maximizing the value each engineer can provide.
A modern approach to this role is not only quality processes and activities but emphasizes an integrated culture of quality. Quality must be considered at every stage by every person in the organization, and not only by the Quality engineers. The whole team, from developers to salespeople, needs to see quality testing as a valuable, challenging, and necessary activity.
Automation Tester Role
The automation tester role seems straightforward as it includes knowledge and expertise on:
Test automation frameworks.
Testing automation tools.
Test automation design patterns.
Understanding Automated Testing approaches.
Any other tool helping to facilitate test automation activities.
^Informative list, some companies may include more activities or less, we recommend these as important ones.
The focus of this role is to deliver quality at speed within sprints. In Agile Testing, this is essential, but if you have a non-agile methodology in place, test automation works to save testing time also. Functionality can be developed and tested fast, automating repetitive activities. Automation testers help QAEs by creating test scripts to perform repetitive/boring test cases to prevent bugs, save time, and sometimes perform functional testing if necessary.
Test automation is necessary, but if the test scripts are not adding value or helping to deliver high quality, it is time to consider a different approach. As automation testers, we need to take advantage of customer-centric scenarios instead of automating everything.
Software Developer in Test Role (SDT)
Before reading about what an SDT is, let’s understand a bit of the history of this new role, first used in 2005 by the Bing team as a Software Engineer in Test.
Microsoft identified a significant paradigm shift in its development strategy. It came up with the term “Combined Engineering,” where developers were also responsible for writing automated tests of the functionality they had written.
While functional Testing is still there, combining code and automated tests makes the development cycles much shorter and more agile. Coined by the Bing team and successfully using this strategy, this approach was broadly adopted by other tech companies.
So, what is an SDT in 2021? An SDT develops software for testing: tools, frameworks, and automated tests (performance testing). SDTs focuses primarily on automation for running tests quickly and repeatedly.
The SDT role includes the following activities:
Developing test automation frameworks.
Collaborating with developers to improve the overall software design and testability.
Reviewing product code.
Setting up dashboards for reporting test results.
Developing tools to assist QAE.
Setting up the infrastructure to run continuous testing.
^Informative list, some companies may include more activities or less, we recommend these as important ones.
The role can be described in plain English as a software engineer specializing in testing. If you are an SDT in your company, your day-to-day challenges could be related to automation and/or developing new tools to help QAE.
I always mention the following phrase to our SDTs: “Individuals and Interactions Over Processes and Tools.” The most critical aspect, besides any tool or process, is helping the team meet customer expectations. Remember, test automation is only one area; SDTs must help to improve in other areas, such as performance, accessibility, testability, and security, among others.
Performance Tester Role
The performance tester role has recently seen decreased demand; perhaps a couple of years ago, we saw companies requesting performance testers. To start, here are some of the general requirements for a Performance Tester role:
Design Performance Test Scripts.
Experience with relevant automation and monitoring tools.
Experience with scripting and Testing using Silk Performer/JMeter/LoadRunner/NeoLoad/Gatling.
Create reusable performance test scripts.
Execute Benchmark, load, stress, endurance, and other non-functional tests. Monitor application logs to determine system behavior.
Analyze the CPU Utilization, Memory usage, Network usage, Garbage Collection, DB Parameters, and DB Reports to verify the performance of the applications.
^Informative list, some companies may include more activities or less, we recommend these as important ones.
A Performance Tester focuses on analyzing possible performance bottlenecks and providing performance improvements by running and monitoring performance test scripts. So, where is the Performance Tester role now?
Most of the performance testers are now doing performance and test automation activities. Some changed their titles to Automation Tester or SDT. To all the performance testers, keep learning about QA and explore some tools to add value.
Hybrid Quality Assurance Engineer Role
As we examined in the roles before, today, the companies demand quick releases with little to no post-release fallout. Currently, we need to deliver innovative, high-quality products/services using a constricted budget and limited resources. So, let’s look at what makes a QA hybrid engineer a crucial role.
A QA hybrid engineer is more than a competent QA engineer who can combine Automation Testing and Functional Testing. The duties and responsibilities will vary across organizations, but here are some of the most common areas that a QA hybrid engineer does:
Defect prevention.
Understanding the product/service and customer-centric test scenarios.
Review, execution, and automation of test scenarios where possible.
Establish an automated test for frontend, backend Testing, Performance Testing, Mobile Testing, among others.
Education of all team members about collaboration and Quality tools.
Helping cross-functional teams, including Development, Usability, QA, Customer Learning, and Support.
^Informative list, some companies may include more activities or less, we recommend these as important ones.
Hybrid testers provide greater flexibility, addressing a wide range of software testing needs. It might sound hard to handle different testing areas for one person (I call it generalist QA). Still, many companies are requesting hybrid roles. If you consider yourself a generalist QA, congratulations! You are not pursuing specialization; instead, you share your capabilities and knowledge across different teams, educating and advising the teams on how best to approach multiple testing areas.
Bonus: Quality Assurance Manager Role
Usually, when working in Agile Testing, it’s hard to identify the QA manager’s activities. Recently, there has been a debate about the redundancy of the role; many QA Managers often seem confused about their roles and feel out of place when put in agile circumstances. In a traditional context, the QA manager has managed a testing team defining QA processes in the Testing department.
In this article, we will not explore the necessity for QA managers in Agile environments; instead, I would like to mention the activities and the improvement areas for QA managers.
Setting Quality Standards.
Selecting the right Testing Tools.
Building the QA team (Recruitment of QA roles)
Providing QA technical expertise.
Budgeting or forecasting for Testing as a service.
Facilitation of best practices to prevent defects across many agile projects within an organization.
^Informative list, some companies may include more activities or less, we recommend these as important ones.
The role of a QA Manager in Agile is more of a support, training, facilitating, and consulting other QAs and other team members to ensure QA best practices are established and that quality is baked in from the start.
Final Thoughts
As we mentioned above, there are multiple roles in QA, focusing on different activities and processes. Sometimes we misunderstand the limitation of the roles or expect different outcomes. QA Leaders should provide clear job descriptions and identify specific QA roles depending on the scenario or skills required to deliver high-quality products.
Finally, we have seen high demand for hybrid roles; companies are looking for generalist roles such as Full-stack Developers or Site Reliability Engineers. In this case, QA has a generalist role mentioned above as a hybrid QA; it is a versatile role but doesn’t mean specialization in all areas (avoid the solo tester situation if possible).
A hybrid QA can be an exceptional fit for your company, helping to address a wide range of software testing needs, particularly if you have budget constraints.
Frequently Asked Questions
What are the responsibilities of a QA tester?
A QA tester is responsible for ensuring the quality and reliability of software applications. Their responsibilities include designing and executing test cases, identifying and reporting bugs, collaborating with developers to resolve issues, performing regression testing, and maintaining test documentation.
What skills are required for a QA role in software testing?
Some essential skills for a QA role in software testing include a strong understanding of software development life cycle (SDLC), knowledge of testing methodologies and tools, ability to write and execute test cases, attention to detail, analytical thinking, problem-solving skills, effective communication, and teamwork.
What is the difference between a QA analyst and a QA engineer?
The difference between a QA analyst and a QA engineer lies primarily in their roles and responsibilities within the software testing process. A QA analyst typically focuses on analyzing requirements, creating test plans, and executing test cases. On the other hand, a QA engineer is involved in designing and implementing testing frameworks, developing automated tests, and ensuring the overall quality of the software.
Enrique A. Decoss is a Quality Strategist with a focus on automation testing teams. A certified Scrum Master, Tricentis Tosca Certified Automation Architect, and Pythoneer, he focuses on web programming, implementing API testing strategies, as well as different methodologies and frameworks. Enrique is currently at FICO but can be found sharing his knowledge on LinkedIn and Twitter.