O que é um QE?

SDETs, QAs e DevOps têm papéis importantes no desenvolvimento de software, mas onde entram os quality engineers? Mergulhe no mundo em evolução da engenharia de qualidade para entender as suas contribuições únicas para melhorar a qualidade de software.

Trabalho em equipe

Hoje em dia, talvez você tenha ouvido falar muito do termo QE (Quality Engineering). Vamos ver os diferentes papéis de desenvolvimento e testes ligados à qualidade e, depois, entender o que é um QE.

Continue lendo e descubra como os quality engineers podem melhorar a qualidade nos testes de software e agregar valor à garantia de qualidade, tanto nos testes funcionais (também conhecidos como testes manuais) quanto nos não funcionais (desempenho, automação de testes, acessibilidade, segurança etc.), como parte fundamental de cada processo de desenvolvimento de software.

Diferenças entre QA e QE

O papel de um profissional de QA (quality assurance) em uma equipe, como o nome indica, é garantir a qualidade, o que o torna crucial nos testes de software, dentro do processo de desenvolvimento de software. Também descobri que QA pode se referir a quality analyst (analista de qualidade), o que me parece mais adequado do que quality assurance (já que é impossível garantir a qualidade por completo). De qualquer forma, esse papel está associado ao tester funcional, que geralmente não tem habilidades de programação.

Há alguns anos, o papel de SDET (Software Development Engineer in Test) se popularizou, e também surgiu o papel de DevOps, orientado ao ágil, com um foco combinado no processo de desenvolvimento, nas operações e no negócio.

Hoje, o novo termo “QE” (quality engineer) é o que, na minha opinião, melhor representa os BONS testers de software. Isso porque vejo o papel de QE como a evolução do papel de tester para um papel mais técnico, envolvido em muitas áreas do desenvolvimento. Assim como o DevOps da equipe, o quality engineer ajuda no processo de testes shift-left.

O que um QE faz que o torna tão relevante hoje?

Um QE é tão importante hoje porque o próprio papel é impulsionado pelas metodologias ágeis e associado à ideia de testes shift-left, já que o tester precisa se envolver nas tarefas iniciais de desenvolvimento, mesmo quando ainda não existe um produto completo.

No entanto, apesar dos rumores, os avanços da tecnologia não vão tornar obsoleto o papel do tester e do quality engineer. Está claro que os testers estarão mais bem preparados para trabalhar com as equipes de hoje se forem capazes de revisar código, analisar componentes, automatizar testes, lidar com o Jenkins e ferramentas semelhantes, além de ambientes em contêineres como o Docker.

Assim, embora o papel de tester não esteja desaparecendo, está claro que os testers precisam de mais habilidades técnicas do que nunca.

O desenvolvimento ágil também influencia essa mudança no papel do tester, porque as equipes costumam ter no máximo nove integrantes (as chamadas two-pizza teams) e, para serem autossuficientes, menos pessoas precisam concentrar mais conhecimento e responsabilidade.

Por isso, talvez algumas empresas tenham equipes especializadas ou até terceirizem algumas tarefas, mas o sucesso dessa terceirização será maior se houver alguém na equipe que saiba gerenciar com conhecimento as tarefas delegadas.

Leia o nosso whitepaper “10 Mistakes Companies Make When Outsourcing Software Testing” para conhecer mais insights sobre como fazer essa parceria funcionar.

Atividades de um quality engineer

Esta é a minha lista das principais atividades que podem ficar sob a responsabilidade de um QE. Ela poderia ser mais longa, dependendo do produto, do tamanho da empresa, do contexto etc.:

Definir um plano e uma estratégia de qualidade: determinar o que fazer e o que não fazer, de acordo com os objetivos e os riscos associados, dado o contexto. Como testar, com quais ferramentas, de acordo com as restrições de orçamento etc.

Revisões de código: entender o código e sugerir melhorias, usar o SonarQube e ser capaz de montar um plano de ação com base em um relatório de análise de código e de dívida técnica.

Testes funcionais (também conhecidos como testes manuais): um QE deve ser capaz de testar um sistema e procurar bugs com um olhar altamente crítico. Um QE precisa conhecer as várias técnicas de design de casos de teste de software e deve conduzir testes exploratórios com segurança.

Reportar incidentes: o objetivo dos testes não é só encontrar bugs, mas fazer com que sejam resolvidos. Para isso, é fundamental ter habilidade para reportá-los corretamente e colaborar com os desenvolvedores.

Automatizar testes funcionais em diferentes níveis: talvez não incluíssemos aqui os testes unitários, já que eles (pelo menos para mim) são responsabilidade do desenvolvedor, mas um QE poderia revisar periodicamente os testes unitários e sugerir novos casos de teste, analisar a cobertura e decidir se os testes estão no nível certo. Um QE automatiza no nível de API (REST, SOAP) e no nível de UI com ferramentas como o Selenium. O QE deve preparar os testes com uma abordagem de BDD (Behavior Driven Development) usando o Cucumber ou uma ferramenta semelhante. Por fim, um QE deve ser capaz de definir uma estratégia de testes automatizados, idealmente baseada na pirâmide de Cohn.

Testar o desempenho: isso implica ser capaz de automatizar no nível de protocolo, além de analisar dados de monitoramento de diferentes componentes, buscando gargalos e oportunidades de melhoria.

Testar a segurança: usar diferentes ferramentas e técnicas de controle de acesso, hacking ético etc. Assim como os testes de desempenho, isso exige um conhecimento muito específico das tecnologias e plataformas usadas.

Entender e lidar com o Git flow: é fundamental que os testes estejam alinhados ao desenvolvimento de software, e um ponto de contato muito relevante entre os dois é a forma como são gerenciadas as versões do código, as diferentes branches e os diferentes ambientes. O código de teste deve ser tratado como parte do código do sistema, usando as mesmas ferramentas de um desenvolvedor e a mesma metodologia de gestão de versões.

Usar ambientes de integração contínua: todas as verificações automatizadas devem ficar em um ambiente de testes de CI/CD, como o Jenkins ou algo semelhante, para que sejam executadas com frequência. O QE deve gerenciar todos os artefatos de teste e, me atrevo a dizer, o QE pode ser um usuário do Jenkins ainda mais intenso do que os próprios desenvolvedores!

Falar e pensar em termos de negócio: mencionei muitos aspectos técnicos acima, mas o que faz um QE excepcional costuma ser a sua compreensão da visão global, orientada ao negócio. Não se deve esquecer que todo o trabalho de qualidade existe para que o negócio prospere, então essa visão é tão importante quanto o conhecimento técnico.

Certamente há várias outras atividades que poderíamos acrescentar a esta lista. Se você pensar em outras, me conte nos comentários!

Para concluir

Espero que este artigo tenha deixado mais claro o que é um QE. Gosto do termo porque sinto que ele resume tudo o que me coube fazer enquanto trabalho na Abstracta e o que todos os nossos engenheiros fazem no dia a dia. Embora eu tenha começado na ciência da computação como tester de desempenho em 2005, participei de diferentes papéis em projetos de testes funcionais, testes automatizados, segurança, usabilidade, revisão de código e, cada vez mais, ultimamente, em projetos em que apoiamos a construção de um esquema de integração contínua/entrega contínua.

Todos os nossos testers, com o tempo, projeto após projeto, ficam cada vez mais completos, expandindo-se para diferentes áreas da qualidade e adquirindo habilidades diversas.

Acredito, na minha humilde opinião, que é isso que todo tester deveria buscar, já que os QEs são muito procurados nos mercados mais exigentes e sempre serão mais valorizados (em relação a um QA tradicional). Quem tiver a visão mais completa da qualidade, mesmo que as suas tarefas tenham sido inicialmente restritas a uma área, será mais valioso para qualquer organização. Na Abstracta, há mais de uma década atendemos algumas das maiores marcas do mundo, como Shutterfly, CA Technologies e BBVA, oferecendo QEs dedicados. Precisa de um QE excepcional e flexível? Fale conosco hoje mesmo!

Obrigado pela leitura! O que você pensa sobre o que é, exatamente, um QE? Conte para mim!

Procurando um parceiro de qualidade?

Os testers da Abstracta podem elevar a qualidade do seu software! Descubra por que neste artigo.

Somos parceiros de qualidade! Saiba mais sobre as nossas soluções aqui e entenda por que recebemos tantos elogios. Fale conosco para conversar sobre como podemos ajudar o seu negócio a crescer.

Fale Conosco

Siga a gente no LinkedIn e no X para fazer parte da nossa comunidade!

Fique conectado

com a Abstracta

Notícias, artigos e recursos para construir software melhor.

Este site é protegido por reCAPTCHA e se aplicam a Política de Privacidade e os Termos de Serviço do Google.

Leia sobre nossa política de privacidade.

Ilustração de duas pessoas conectadas por uma ponte, uma com um notebook e outra com um tablet, representando colaboração e comunicação. Fim do artigo sobre o que é um qe.