Technical QA roles (SDET vs QAE vs QAA vs Tester)

Guilherme Castelo
3 min readJul 7, 2020

--

There are several types of technical roles in Quality Assurance (QA) but the interpretation of the tasks and responsibilities of each one varies greatly from person to person and from company to company.

The purpose of this article is to clarify the differences between the various technical QA roles based on my personal experience and from my perspective.

The 4 most common technical QA roles are: Tester, Quality Assurance Analyst (QAA), Quality Assurance Engineer (QAE) and Software Development Engineer in Test (SDET).

Photo by John Schnobrich on Unsplash

Tester

The Tester role is more related to Quality Control (QC) than Quality Assurance (QA).

Quality Assurance is a set of activities focused on providing confidence that requirements will be fulfilled and the product will be developed according to specifications. The main function of QA is to prevent the occurence of possible bugs and is involved in the entire Software Development Lifecycle (SDLC).

Quality Control is a set of activities focused on ensuring product quality. The main function of QC is to explore the product in order to find bugs.

That being said, the focus of the Testers is on system exploration and bug detection. They are product oriented and have a corrective action. Usually they write the test case specifications, run manual tests and report bugs.

Quality Assurance Analyst

The Quality Assurance Analyst (QAA) usually accumulates all the responsibilities of the Tester with the Quality Assurance functions.

The focus of the QAAs is meeting the requirements. They are process oriented and have a preventive action. They are responsible for surveying the requirements, writing test plans, producing documentation and preparing test data for the Quality Assurance Engineers.

Quality Assurance Engineer

Many companies only hire Quality Assurance Engineers (QAEs) for their testing teams. In these cases, the Quality Assurance Engineers accumulate the functions of the Quality Assurance Analysts. In addition, they also develop automated tests using tools and frameworks created by others.

There are QAEs that specialize in a specific testing subtype, for example:

  • Web application testing
  • Performance testing
  • Desktop application testing
  • Microservice testing
  • Web service testing

Generally, the tests developed by the QAEs have a contained scope, so they are not required to develop their own testing frameworks since they don’t need to integrate multiple tools. For this reason, they use existing tools in an isolated way, such as:

  • Selenium WebDriver
  • JMeter, BlazeMeter
  • SikuliX
  • Kafka REST Proxy, Strimzi Kafka Bridge
  • Jersey REST Client, SoapUI API

Software Development Engineer in Test

The Software Development Engineers in Test (SDETs) accumulate the functions of the Quality Assurance Engineers. In addition, they develop automated testing tools and frameworks to carry out their work because the scope of testing is broader. For example, SDETs may face a scenario that requires the development of an end-to-end test, in which they need to automate Web applications, desktop applications and microservices. In order to achieve this objective, SDETs will have to develop a framework to integrate tools such as: Selenium WebDriver, SikuliX and Kafka REST Proxy.

Other functions of SDETs include creating infrastructure (hosting test tools and services) and configuring jobs/pipelines with CI/CD tools like Jenkins.

Many companies, especially in Portugal, consider a SDET to be a “Developer who also tests”. However, this is not true. The major difference is that the Developer works on product development and the SDET develops software for testing: tools, frameworks and automated tests.

In general, unit and integration testing are the responsibility of the Developers. However, there is an exception in the case of SDETs, since they are Developers specialized in a specific field: testing.

The development of unit and integration tests for the components created by the Developers remains the responsibility of the Developers themselves.

SDETs should, however, develop unit and integration tests for the automated testing tools and frameworks they have created.

All the other testing subtypes: Web application testing, desktop application testing, microservice testing, Web service testing, performance testing, etc. are the responsibility of SDETs and QAEs.

What do you think about this? Do you work in QA? What is your role? Which of these roles do you find most interesting?

Leave your opinion in the comments below :)

--

--

Guilherme Castelo

Quality Assurance Manager, Software Development Engineer in Test, Automation Engineer | Porto, Portugal