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:
- 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.
- 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.
- 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?
- 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?
- 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.