QA Roles And Responsibilities In Software Testing

Recently, software companies have been demanding various roles related to Quality Assurance. Consequently, we can observe different roles such as Quality Assurance Engineers (QAE), Automation Testers, Software Developers in Test (SDT or SDET), Performance Testers, or hybrid QA Engineers.

The Multiple Qa Roles &Amp; Responsibilities In Software Testing 1The Multiple Qa Roles &Amp; Responsibilities In Software Testing 1

These new roles come with a few implications. Currently, nearly all companies rely on test automation as the source of truth for quality verification and, in some cases, quality validation. However, humans are still building software for humans, saying that we must adopt a quality mindset and understand every quality role to identify the best fit for our company. Moreover, every role can add to the whole company’s quality mindset:

The Multiple Qa Roles &Amp; Responsibilities In Software Testing 3The Multiple Qa Roles &Amp; Responsibilities In Software Testing 3

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 Multiple Qa Roles &Amp; Responsibilities In Software Testing 5The Multiple Qa Roles &Amp; Responsibilities In Software Testing 5

 

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.

“Just because your test automation is working doesn’t mean that it adds value.”

Enrique A Decoss, Senior QA Manager at FICO

 

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. 

The Multiple Qa Roles &Amp; Responsibilities In Software Testing 7The Multiple Qa Roles &Amp; Responsibilities In Software Testing 7

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.