Role Manager
Daniel González QA Lead

O papel do QA Manager

Muita coisa mudou o processo de desenvolvimento de software desde a metodologia em cascata, em que os testes eram feitos na sua maioria no final desse processo. Hoje em dia, a maioria dos desenvolvimentos segue uma metodologia agile.

Segundo estas metodologias, os intervenientes no processo de QA são treinados para se concentrarem na qualidade e recebem as ferramentas necessárias para detetar erros o mais cedo possível. No fim de contas, todos estamos familiarizados com os estudos que relacionam o atraso em encontrar um bug com o custo –quanto mais tarde, maior - de o reparar, certo?

Custo relativo para corrigir bugs com base no tempo de detecção

É aqui que entram em jogo os QA Managers. Estes atuam principalmente como peritos na matéria que estabelecem diretrizes, normas, metodologias, procedimentos e métricas. São a referência e a autoridade final em todas as questões de qualidade, dos projetos e produtos de software de uma área ou de uma empresa.

Vejamos quais são as funções e responsabilidades de um gestor de qualidade em organizações ágeis.

Seleção da equipa de QA

Aqui, a tarefa do QA Manager consiste em compreender as diferentes naturezas presentes nas aplicações da organização. O objetivo é compor uma equipa de especialistas em QA nas diferentes tecnologias necessárias para poder cobrir a qualidade dos diferentes componentes das aplicações, determinadas pela sua natureza e pela arquitetura de desenho das mesmas.

Um especialista em testes exploratórios não é o mesmo que um especialista em automação de interfaces de utilizador web, ou móvel, e se estes são diferentes entre si, a diferença é ainda maior entre um especialista em testes backend com APIs Web, ou um especialista em testes de desempenho.

Por conseguinte, esta é a primeira tarefa crítica que requer uma análise cuidadosa para determinar as necessidades de composição da equipa e da sua dimensão a fim de, mais tarde, selecionar tais perfis no mercado de trabalho.

Posteriormente, será necessário determinar tarefas, responsabilidades, áreas de colaboração e sincronização, bem como o desenvolvimento e utilização de ferramentas para a gestão integral do processo de QA na empresa.

Definição de standards de qualidade

Esta tarefa, que deveria ser relativamente simples de acordo com a teoria, ou seja, verificar se as funcionalidades correspondem ao especificado nos requisitos, não é tão simples na prática, uma vez que na maioria dos casos (especialmente em agile), estes requisitos não são formalmente especificados, mas baseiam-se em pressupostos tácitos, comunicados verbalmente, que todos pensam em partilhar no momento de definir e implementar a funcionalidade.

O processo de QA parte muitas vezes da necessidade de realizar e captar essa análise funcional para a definição de casos de teste e a possibilidade de conhecer a cobertura. Este processo deve ser planeado e supervisionado. Portanto, a utilização de uma ferramenta de gestão de casos de teste com capacidade de integração com outras ferramentas do processo de QA e de geração de relatórios, histórico, etc., é necessária para efeitos de registo, rastreabilidade e visibilidade da evolução.

De acordo com a relação esforço/benefício, é importante considerar uma estrutura semelhante à proposta na pirâmide de testing para otimizar o esforço dedicado a garantir a qualidade.

No que diz respeito às métricas a selecionar para que atuem como indicadores de qualidade, as opções são amplas, algumas das mais comuns são:

  1. Cobertura por aplicação (repartida por tipo de teste), mostra-nos como está a evoluir a cobertura de testes unitários, de serviços ou de funcionalidades na nossa aplicação. Naturalmente, se nos faltar cobertura, trabalharemos sempre em primeiro lugar nas funcionalidades críticas para os negócios.
  2. Recursos por teste, tempo, pessoas, dinheiro, hardware utilizado no desenvolvimento de cada tipo de teste, é sempre bom conhecê-los para ter como referência e saber como otimizar.
  3. Tempos de execução e tempos de espera. Quanto tempo leva a executar cada tipo de teste no total e individualmente? Quanto tempo tem de esperar a pessoa que precisa dos resultados até os obter? Pode ela própria executá-los? Depende de outras pessoas / procedimentos / automatismos?
  4. Resultados dos testes. Não só que testes foram aprovados ou reprovados. Houve testes que não foram aprovados? Porquê? Houve falsos positivos/negativos? Os nossos testes são robustos? Quanto tempo dedicamos a rever as execuções? E a manter os testes?
  5. Ciclo de vida dos defeitos. Quando cada um foi detetado? Quanto tempo demorou a reparar? É recorrente? Em que área funcional da aplicação surge a maioria dos erros? Qual é a distribuição da criticidade dos defeitos encontrados?

Relação com outras áreas

Os testes são apenas uma parte do processo de QA, entre as suas atribuições mais importantes está a supervisão da metodologia e dos processos. Portanto, é importante estabelecer uma comunicação fluida com as diferentes áreas de negócio e tecnologia dentro da empresa para garantir que todos estejam na mesma página quando se trata de construir um produto de software de qualidade.

É especialmente importante a integração do processo de QA com o processo de desenvolvimento, trabalhando lado a lado desde as fases iniciais. Estas incluem o "Definition of Ready", exemplificando um pedido de nova funcionalidade, para ser considerada pronta para implementação esta deve satisfazer critérios de qualidade, tais como: uma especificação clara, formal e inequívoca dos seus requisitos funcionais e de negócio, e critérios de teste definidos. Isto faz parte da metodologia de trabalho e compete às funções de QA saber transmitir e demonstrar na prática os benefícios desta forma de trabalhar em estreita cooperação e sincronia.

É igualmente importante colaborar com os responsáveis da arquitetura, já que as suas recomendações sobre tecnologias, ferramentas e desenho orientam e condicionam a estratégia ideal de testing. Por conseguinte, é geralmente aconselhável chegar a um consenso com este tipo de áreas, que também proporcionam visão, conhecimento e profundidade.

As áreas de negócio têm diferentes preocupações dependendo da sua proximidade com o produto desenvolvido: quanto mais próximas estão, mais preocupadas tendem a estar com os detalhes da metodologia de trabalho e com o dia-a-dia do processo de entrega de novas versões. Quanto mais distantes estão, mais se preocupam em ter uma visão baseada em informação fiável do controlo de qualidade e processos das aplicações. De qualquer forma, o que é exigido ao responsável de QA é esse controlo da metodologia, dos procedimentos, e ser capaz de demonstrar através de provas mensuráveis que o processo de QA tem a qualidade do desenvolvimento e a entrega dos produtos sob controlo rigoroso.