6 Estratégias de Implementação e Melhoria para Automação de Teste
6.1 Transição das Atividades de Testes Manuais para Testes Contínuos
6.1.1 Descrever os fatores e as atividades de planejamento na transição do teste manual para a automação de teste
Como transicionar de teste manual para automação?
Mais fácil -> Adicionar testes de regressão
Mantendo o sentido de linha do tempo:
- Testes funcionais e não funcionais -> Se tornam os regressivos
- Testes regressivos -> Se tornam os automatizados
- Testes automatizados -> Recebem manutenção
Custos de transição:
- Aumento de custo irá acontecer durante a transição
- Porque:
- Manual e automatizado correm em paralelo
- Mais esforços são necessários em testes exploratórios para definição de casos de teste
Sobreposição funcional:
- Quando um mesmo teste é utilizado em vários casos de teste;
- Faz com que a manutenção seja feita em vários lugares (onerosa)
- COMO REMOVER A Sobreposição Funcional:
- Componentizar o teste que é usado em múltiplos casos;
- Um componente centraliza a manutenção e facilita o reuso.
Compartilhamento de dados:
- Testes automatizados requerem compartilhamento de dados entre casos
- Evitando duplicidade e introdução de erros
Interdependência de testes:
- Testes podem depender de outros
- Exemplo:
- TestA: Validar se ID de pedido está na tela
- Requer TestB: Inclusão de pedido que retorna o ID
Condições prévias para a execução do teste:
- Certos casos requerem condições específicas
- Exemplo: usuários cadastrados, funções de conta, tabelas de dados...
- Antes de automatizar um caso, é necessário prever essas condições específicas
Cobertura funcional:
- 100% testes manuais < 100% testes possíveis de automação
- Conforme os testes são automatizados, os testers ganham tempo de execução
Testes executáveis:
O teste manual deve estar correto e seguro antes de ser automatizado.
6.1.2 Descrever os fatores e as atividades de planejamento na transição da automação de teste para testes contínuos
Contínuo = Executar conjuntos de teste logo após uma alteração de código.
- Fornece resposta imediata e reduz o custo com defeito.
- Introduz a detecção de defeitos mais cedo no SDLC.
Adaptando o TAS para teste contínuo:
- Execução em TAS atualizado
- Incluir drivers, interface e simuladores necessários para execução
- Alterar infraestrutura para comportar a execução do TAS atualizado
- Se problemas no TAS travarem a esteira:
- Validar o Risco/Benefício e tomar a decisão:
- Manter o TAS contínuo e dar manutenção urgente
- Desligar o TAS contínuo e dar manutenção com mais prazo
- Permitir que o TAS seja desligado sem previsão de volta
- Validar o Risco/Benefício e tomar a decisão:
- Criar notas de versão com os defeitos do TAS para serem corrigidos
6.2 Compreensão dos Fatores e Atividades de Planejamento na Transição da Automação de Teste para Testes Contínuos
6.2.1 Realizar uma avaliação dos ativos e práticas de automação de teste para identificar áreas de melhoria
Em partes do processo, é importante avaliar oportunidades de melhoria.
Na linha do tempo:
- Testes funcionais e não funcionais -> Se tornam os regressivos
- Testes regressivos -> Se tornam os automatizados
- Testes automatizados -> Se tornam os contínuos
- Testes contínuos -> Se tornam parte da rotina no CI/CD
Monitorar:
- Horas gastas no desenvolvimento do TAS
- Horas gastas na correção do TAS
- Economia de execução automatizada em relação à manual
Etapas básicas para análise:
- Ferramentas de cobertura de código:
- Indicam as lacunas que podem ser cobertas
- Ferramentas de cobertura funcional:
- Indicam quais funcionalidades não foram cobertas
- Métricas de infraestrutura:
- Indicam se recursos estão sendo usados com eficiência
- Tempo de configuração:
- Melhorar/criar estratégias de gerenciamento de configuração
- Diretrizes do TAS:
- Indicam práticas recomendadas a serem seguidas
- Implementação de pré-condições:
- Definição de quais pré-condições são necessárias para os testes
Atualizações incrementais do TAS para novos recursos ou manutenção:
- Avaliar se a atualização fornece mais recursos
- Avaliar formas de otimizar recursos
- Identificar oportunidades de modularizar os scripts
- Garantir conhecimento de componentes reutilizáveis
- Coletar evidências sobre possíveis melhorias e listar benefícios
- Avaliar e corrigir sobreposição funcional
- Avaliar testes manuais adicionais para identificar casos novos a serem automatizados
- Destacar oportunidades de gerenciamento de dados e projeto
- Garantir que todos os testes rodem no TAS atualizado
- Se a automação de teste causar fila no pipeline:
- Diminuir o escopo para os mais críticos (smoke testes)
- Testes de regressão mais elaborados:
- Podem ser executados com acionamento separado
- Podem ser executados sob demanda