Perfis técnicos de QA (SDET vs QAE vs QAA vs Tester)
Existem diversos tipos de perfis técnicos na área de Quality Assurance (QA) mas a interpretação das funções e responsabilidades de cada um varia muito de pessoa para pessoa e de empresa para empresa.
O objetivo deste artigo é esclarecer as diferenças entre os vários perfis técnicos de QA com base na minha experiência pessoal e segundo a minha perspetiva.
Os 4 perfis técnicos de QA mais comuns são: Tester, Quality Assurance Analyst (QAA), Quality Assurance Engineer (QAE) e Software Development Engineer in Test (SDET).
Tester
O perfil de Tester está mais relacionado com a área de Quality Control (QC) do que com a área de Quality Assurance (QA).
Quality Assurance, em Português Garantia da Qualidade, é um conjunto de atividades focadas em transmitir confiança de que os requisitos irão ser cumpridos e o produto está a ser desenvolvido de acordo com as especificações. A principal função de QA é prevenir a ocorrência de possíveis bugs e está envolvida em todo o Software Development Life Cycle (SDLC).
Quality Control, em Português Controlo da Qualidade, é um conjunto de atividades focadas em garantir a qualidade do produto. A principal função de QC é explorar o produto com o intuito de encontrar bugs.
Posto isto, o foco do Tester é a exploração do sistema e a deteção de bugs. É orientado ao produto e possui função corretiva. Normalmente escreve a especificação dos casos de teste, executa testes manuais e reporta bugs.
Quality Assurance Analyst
Habitualmente o Quality Assurance Analyst (QAA) acumula todas as responsabilidades do Tester com as funções de Garantia da Qualidade.
O foco do QAA é o cumprimento dos requisitos. É orientado ao processo e possui ação preventiva. É responsável por fazer o levantamento dos requisitos, redigir planos de teste, produzir documentação e preparar dados de teste para os Quality Assurance Engineers.
Quality Assurance Engineer
Muitas empresas apenas contratam Quality Assurance Engineers (QAEs) para as suas equipas. Nestes casos, o Quality Assurance Engineer acumula as funções do Quality Assurance Analyst. Para além disso, também cria testes automáticos utilizando ferramentas e frameworks desenvolvidas por outrem.
Existem casos de QAEs que se especializam num subtipo de testes específico, por exemplo:
- Testes a aplicações Web
- Testes de performance
- Testes a aplicações desktop
- Testes a microserviços
- Testes a serviços Web
Geralmente os testes desenvolvidos pelos QAEs possuem um âmbito contido e, como tal, não têm a necessidade de desenvolver as suas próprias frameworks de testes automáticos, pois não necessitam de integrar múltiplas ferramentas. Por este motivo utilizam de forma isolada ferramentas já existentes, tais como:
- Selenium WebDriver
- JMeter, BlazeMeter
- SikuliX
- Kafka REST Proxy, Strimzi Kafka Bridge
- Jersey REST Client, SoapUI API
Software Development Engineer in Test
O Software Development Engineer in Test (SDET) acumula as funções do Quality Assurance Engineer. Para além disso desenvolve ferramentas e frameworks de testes automáticos para realizar o seu trabalho porque o âmbito de testes é mais alargado. Por exemplo, o SDET pode deparar-se com um cenário que requeira o desenvolvimento de um teste end-to-end, no qual necessite de automatizar aplicações Web, aplicações desktop e microserviços. De forma a atingir este objetivo, o SDET terá de desenvolver uma framework para integrar ferramentas como: Selenium WebDriver, SikuliX e Kafka REST Proxy.
Outras funções do SDET incluem a criação de infraestrutura (alojamento de serviços para testes) e a configuração de jobs/pipelines em ferramentas de CI/CD como o Jenkins.
Muitas empresas, especialmente em Portugal, consideram um SDET como sendo um “Developer que também testa”. No entanto, isto não corresponde à verdade. A grande diferença é que o Developer trabalha no desenvolvimento do produto e o SDET desenvolve software para testes: ferramentas, frameworks e testes automáticos.
De uma forma geral os testes unitários e de integração são responsabilidade dos Developers.
Contudo existe uma exceção no caso dos SDETs, uma vez que são Developers especializados numa área específica: testes.
O desenvolvimento dos testes unitários e de integração referentes aos componentes criados pelos Developers continua a ser uma responsabilidade dos próprios Developers.
Os SDETs deverão, porém, desenvolver testes unitários e de integração para as ferramentas e frameworks de testes automáticos por si criadas.
Todos os restantes subtipos de testes: a aplicações Web, a aplicações desktop, a microserviços, a serviços Web, de performance, etc. são da responsabilidade dos SDETs e QAEs.
O que você pensa sobre isto? Trabalha na área de QA? Qual é o seu perfil? Qual destes perfis considera mais interessante?
Escreva a sua opinião nos comentários :)