Partilhamos com a comunidade portuguesa sobre o tema: “Como ter sucesso no seu projeto de automação de testes? (em transversal)”
Agradeço aos participantes pela participação e contribuições:
- Filipe Carvalho, Engineering Manager na TalkDesk,
- Joel Oliveira, Senior Project Manager e Evangelista de Teste,
- Ricardo Lopes, QA Leader na Feedzai,
- Marco Pedro,“ Making Legacy Software Great Again” ,
- Diogo Carvalho, Software QA Tester na Smart Consulting,
- João Santos, Freelance QA Tester,
- Fábio Barbosa, Test Automation Engineering na Basecone
Neste evento compartilhamos os seguintes pontos sobre projetos de automação de testes:
- Qual o valor esperado do projeto para o negócio ?
- Alinhe sua estratégia de teste com as necessidades de negócios, não com uma pirâmide genérica
- Quantidade não é qualidade, focar no valor e na redução de risco
- O valor está no uso de testes, a velocidade de execução é frequentemente a chave
- Testes precisam ser planeados como qualquer outra atividade de engenharia
- Tenha uma abordagem incremental sobre estados intermediarios
- A importância da formação da equipa em qualidade
- Qualidade é uma responsabilidade transversal que a equipa deve compor
Contextualização do evento
Os projectos de automação de testes têm um elevado índice de insucesso, apresentando dificuldades reais e particularidades para serem compreendidos.
Infelizmente, eles geralmente são delegados ao QA, a um estagiário ou resumem-se a um aspecto de ferramentas.
Como aquecimento, preenchemos o círculo apresentando a seguir, com as etapas tradicionais de um projeto de automação em cada fatia.
Primeiro colocamos nossas ideias em círculo, as mais centrais de acordo com sua importância.
A partir dessa base, a conversa começou com o compartilhamento do Marco sobre um caso de automação de testes no seu contexto profissional.
As próximas seções partilham os pontos-chaves que identificamos.
Qual é o valor esperado do projeto para o negócio?
Retornamos rapidamente aos fundamentos, às vezes esquecendo demais: o que realmente esperamos do projeto de automação?
Pode parecer óbvio, mas organizações isoladas tendem a obscurecer a necessidade real.
Às vezes, o mesmo também pode ser iniciado em um silo específico sem um link global.
Do meu ponto de vista, esta iniciativa deve ser rapidamente ligada a uma aposta da equipa transversal e de forma mais geral na empresa.
Quanto ao evento realizado com a comunidade francófona, as questões “Porquê” e “Para quê” continuam a ser fundamentais e devem ter uma resposta clara, de preferência ao nível estratégico da organização.
Isso vai ao encontro da necessidade de um patrocinador do projeto, acompanhada de uma consciência da não qualidade diante dos desafios da profissão.
Em resumo, encontrar uma maneira de identificar e compartilhar o valor do negócio com as partes interessadas fará a diferença para o projeto.
Alinhando a sua estratégia de teste com as necessidades do negócio, não com uma pirâmide genérica
Abordamos um segundo ponto em relação à necessidade do negócio: quais testes implementar?
Uma primeira resposta instintiva pode ser referir-se a um modelo de pirâmide de testes, útil para fornecer uma estrutura.
A desvantagem dos modelos é que eles são tirados de práticas mais gerais fora do contexto. No caso do teste, a necessidade do negócio é parcialmente abstraída da equação.
As pirâmides de teste não estão diretamente alinhadas com a necessidade do negócio.
Joel Oliveira
Portanto, podemos facilmente encontrar-nos fazendo muitos testes unitários, num aplicativo que na verdade precisava em primeiro de automação de testes funcionais críticos de ponta a ponta.
A nossa leitura foi:
- Começar por alinhar as necessidades do negócios
- Identificar as técnicas de teste mais relevantes
Só então surge a questão da automação de acordo com os recursos, as ferramentas disponíveis, a maturidade da equipa.
Quantidade não é qualidade, focar no valor e reduzir o risco.
Mostrar resultados em automação está frequentemente associado a alcançar uma alta porcentagem de cobertura ou valor absoluto de testes automatizados.
Além do possível efeito em satisfazer um ego, esse tipo de métrica geralmente acaba por ser o objetivo errado.
Uma cobertura ou número de testes pode ser uma métrica de apoio à implementação de um processo, mas em nenhum caso o objetivo a ser alcançado, muito menos um indicador de desempenho do negócio.
Em vez disso, compartilhamos para guiar pelo valor do teste dentro do processo. Por exemplo, perguntar se os testes permitem:
- Entregar em produção com confiança para os clientes?
- Economizar tempo precioso para as pessoas da equipe?
- Reduzir os riscos associados a cenários específicos?
A quantidade não intervém como critério primário, portanto é aconselhável focar em indicadores valiosos e comunicáveis dentro da equipa.
Qual valor de negócio pode fornecer, mesmo com alguns testes?
Joel Oliveira
Como nota pessoal, medir o tempo adicional gerado pela automação nas etapas de análise de falso positivo, retrabalho e manutenção é uma prática útil.
Dará-lhe uma visão factual do esforço de automação, e a sua possível otimização.
Em qualquer sistema, uma ação tem um efeito de contrapeso necessário de entender a fim de controlar os mecanismos colocados em prática.
Concretamente:
- Se você tivesse que escolher 3 testes de valor maior, quais seriam eles?
- Pode executar esses testes sob demanda, de forma rápida e confiável?
- O valor deles é percebido pela equipa antes de prosseguir?
O valor está no uso de testes, a velocidade de execução costuma ser a chave
Aqui partilhamos um caso concreto: os testes realizados à noite porque são muito longos durante o dia, e acabam por não ser utilizados pelas equipas.
Será que eles são realmente úteis mesmo à noite? A priori muito pouco no contexto partilhado, sendo testes funcionais. As equipes tendem a abandoná-los.
Portanto, o valor da automação de teste não se limita apenas a economizar tempo, mas também a usá-lo de fato.
A rapidez de execução dos testes é uma componente do valor dos mesmos.
Antoine Craske
As práticas de industrialização do tipo CI/CD podem ajudar a promover o seu uso, mas a necessidade de velocidade da execução continua forte.
Pragmático, é necessário:
- Escolher um âmbito razoável de testes a serem automatizados
- Definir uma solução para paralelizar os testes mais recorrentes
- Medir se o tempo de execução para que permanece abaixo do limite definido
Os outros testes automatizados, menos recorrentes, podem, por exemplo, ser dissociados do curto ciclo de validação, ao fornecer alertas.
O QA precisa de concepção como qualquer outra atividade de engenharia
A manutenção de testes automatizados costuma ser um desafio para as equipas.
Frequentemente, relatamos uma longa configuração, na câmara, de um conjunto de testes automáticos, que após uma mudança do produto caiu completamente em erro.
Infelizmente, se eles forem contornados neste momento, muito provavelmente o conjunto de testes será esquecido e o investimento perdido.
Dedicar tempo para testar o design é um investimento de valor a médio e longo-prazo.
Antoine Craske
Na hipótese de que um escopo razoável de testes seja automatizado, a falta de modularização e desacoplamento é uma causa recorrente.
Esses problemas são comuns em outras práticas de engenharia, daí a criticidade das atividades de arquitetura e design.
Muitas vezes ignorado num projeto de automação, o design prova ser fatal em momentos que o teste poderia ter mostrado o seu valor.
A aplicação de testes de teste modulares permite, por exemplo, identificar componentes comuns.
Perguntas que pode usar:
- Existe um plano de teste claramente definido, priorizado e alinhado ao negócio?
- Definimos etapas claras para o design, validação e refatoração dos testes?
- A modularidade e o decoupling dos testes foram explicados?
Tenha uma abordagem incremental com bases estáveis
Às vezes associamos um projeto de automação de teste a um ciclo em V que pode ser facilmente racionalizado e integrado depois de concluído.
A realidade é muito diferente, os testes estando atrelados à validação de um produto em evolução, devem acompanhar esse ritmo.
As questões de manutenção são hoje motivadas principalmente por um bom design de teste, amanhã melhorado pela inteligência artificial, esperamos nos.
Em vista desses diferentes elementos e do nosso compartilhamento, uma abordagem incremental e iterativa nos parece a mais adequada.
Estabelecer as bases com a integração de ponta a ponta permite a validação rápida de premissas estruturantes sobre o processo.
Usando o processo diariamente, pode-se iterar sobre o processo para maximizar seu valor, adaptando-o rapidamente.
Pessoalmente, é aconselhável manter desde o início uma visão dos objetivos a serem alcançados do projeto e da organização, como Stephen R. Covey nos lembra nessa citação.
Being with the end in mind.
Dr. Stephen R. Covey
As iterações devem levar a equipe a um bom porto, não aonde o vento nos leva.
O que você pode aplicar em seu contexto:
- Qual é o seu MVP aplicável a todo o ciclo de desenvolvimento?
- Quais as bases mínimas são necessárias?
- Como pode simplificar a integração e a implantação inicial?
A importância de treinar equipes para a qualidade
Quão confiante ficaria para uma operação realizada por um anestesiologista não treinado?
Julgo que não ficaria.
No entanto, essa é a realidade da maioria das organizações que confiam a qualidade de suas operações a perfis não treinados ou deixam a anestesia para o cirurgião em nossa metáfora.
Quão confiante fica para uma operação por um anestesista não treinado? É o que permite na sua experiência digital.
Antoine Craske
Joel nos falou sobre a importância das habilidades de qualidade e a dificuldade em obter respostas relevantes em entrevistas.
Infelizmente, não faltam exemplos de perfis que não têm perspectiva do contexto e das técnicas de teste.
Quantas vezes você já ouviu “Continuamos na mesma lógica do que existia”.
É importante entender o passado, aprender com a experiência, mas é preciso ter certeza da relevância das práticas no contexto atual.
É aqui que perfis experientes e com reflexos adequados terão o discernimento e o espírito crítico adequados para se adaptarem se necessário.
O objetivo é investir nessas habilidades:
- Reconhecer o valor da qualidade na organização
- Assumir o controle de qualidade e o controle de qualidade como uma prática própria.
- Dedicar um investimento em treinamento e melhoria contínua.
Qualidade é uma responsabilidade transversal que a equipa deve compor
A qualidade como responsabilidade partilhada de toda a equipa com um compromisso global é um dos assuntos também debatidos.
No entanto, o ponto a ser equilibrado entre ser a única responsabilidade do QA, e ser de todos e de ninguém ao mesmo tempo.
Ao compartilhar experiências, um papel de facilitador, treinador, enabler na equipa em torno de objetivos de qualidade comuns nos parece necessário.
Quanto às tarefas de automação, elas não precisam necessariamente de serem feitas por testadores ou desenvolvedores, a adaptação ao contexto continua sendo a chave.
A presença de competências fará a diferença no seu projeto, seja em interno ou externo, fixa ou pontual por meio de expertise, por exemplo.
Este último ponto se junta ao primeiro de consciência empresarial: a qualidade pode e deve ser um investimento que agrega valor à organização.
Concretamente, essas etapas devem ser avaliadas:
- Quais habilidades de teste e qualidade realmente precisa para o seu projeto?
- Como pode treinar as suas equipas, acelerar com habilidades externas?
- Como pode defender um orçamento a médio prazo para essa necessidade?
É preciso combinar práticas para o sucesso de um projeto de automação
Por meio do compartilhamento da experiência dos diversos participantes do evento, muitos assuntos relacionam-se com práticas multifuncionais.
O esclarecimento da necessidade do negócio com o comprometimento de toda a equipa com a qualidade é um pré-requisito forte.
Uma abordagem incremental baseada em um design sólido e implementada em ciclos curtos fará a diferença.
As iterações a seguir devem possibilitar a adaptação da automação de modo que ela traga os benefícios identificados e que o valor permaneça.
Por exemplo, focar em ter poucos testes usados e rápidos será mais útil do que configurar 100 testes extras, executados à noite e que a equipe ignora.
Espero que esta partilha tenha sido útil e concreta para si, espero poder partilhar convosco durante um evento ou continuar a discussão nos comentários.