Pular para o conteúdo principal

4 Estratégias Organizacionais de Implantação e Liberação para Automação de Teste

4.1 Planejamento de Soluções de Automação de Teste​

4.1.1 Identificar maneiras pelas quais a automação de teste ajuda a reduzir o tempo de lançamento no mercado​

  • Automatização acelera o lançamento no mercado.

  • Reduz o tempo de ciclo de teste.

  • Marco da Qualidade:

    • É obrigatória a incorporação no processo.
    • Precisa cumprir o marco antes de passar para a próxima fase.
    • Permite a implantação acelerada.
    • Promove uma cultura de consciência da qualidade.

4.1.2 Identificar as formas em que a automatização dos testes ajuda a verificar os defeitos comunicados de acordo com os requisitos​

  • Testes de Confirmação:

    • Teste realizado após uma correção para validar se o defeito foi mitigado.
    • O tester segue as etapas necessárias para replicar o defeito e depois valida o resultado.
  • Automatizar Testes de Confirmação:

    • Impede que o mesmo bug se reintroduza no sistema em versões posteriores.

4.1.3 Definir abordagens que permitam o desenvolvimento de cenários operacionalmente relevantes para a automação de teste​

  • Testes de Aceite:

    • Garante a prontidão do software.
    • Realizado logo antes da liberação.
    • Validação final.
    • Garante que o SUT funcione em ambiente de produção.
  • Abordagens que podem ser usadas:

    • Análise de Código Estático:
      • Ferramentas que analisam código filtrando falhas de segurança.
    • Testes E2E:
      • Scripts de teste que conduzem cenários de teste.
    • Teste de Failover:
      • Scripts que simulam falhas de hardware, falha de disco, redes ou serviços de nuvem.
    • Teste de Backup e Restauração:
      • Scripts que testam o sucesso de backup da versão atual e, em seguida, reverter para ponto anterior.
    • Teste de Eficiência e Performance:
      • Scripts com testes de carga que simulam muitos usuários ou alto fluxo de dados.
    • Revisão da Documentação Operacional:
      • Scripts usados para comparar versões da documentação e sinalizar para a equipe se é necessária uma atualização.
    • Teste de Segurança:
      • Scripts e ferramentas que testam vulnerabilidades de forma estática e dinâmica.
    • Monitoramento do SDLC:
      • Monitoram os processos de desenvolvimento, emitindo alertas se um teste falhar.

4.2 Estratégias de Implantação​

4.2.1 Definir uma estratégia de implantação de automação de teste​

Uma boa estratégia de implantação deve abranger:

  • Ambiente de Teste:
    • Testes serem executados em vários ambientes sem muitas alterações.
    • Deve ser possível executar os testes em ambiente de teste, pré-produção e produção.
  • Ferramentas:
    • Quais ferramentas usar:
      • Se comercial, como é licenciada?
      • Se open-source, como é a manutenção?
  • Acesso ao Software:
    • Quais credenciais serão usadas no ambiente de teste e, posteriormente, em ambiente de produção.
    • É necessário flexibilidade de parâmetros para a execução independente do ambiente.
  • Armazenamento de Scripts de Teste:
    • O armazenamento pode ser incorporado ao gerenciamento de configuração.
    • TAS e TAF podem ser gerenciados em repositórios:
      • Juntos ou separados do SUT.
  • Fornecimento de Dados:
    • Evitar dados estáticos.
    • Criar scripts de configuração (estratégias para popular banco de dados).
    • Carregar dados ou criar dados:
      • Carregar dados:
        • Ganho de tempo.
        • Deixa o tester refém de outros recursos.
        • Dados incompletos.
      • Criar dados:
        • Requer tempo.
        • Scripts precisam de manutenção.
        • Abrangência de casos.

4.2.2 Identificar os riscos da automação de teste na implantação​

Problemas técnicos -> Riscos de Produto e de Projeto.

Problemas Típicos:

  • Excesso de abstrações: dificulta a compreensão do código de automação.
  • Tabelas de dados complexas: difícil migração ou com resultados inconsistentes.
  • Dependência da TAS: requer bibliotecas que dificultam a execução em ambientes diferentes.

Riscos Típicos:

  • Problemas de pessoal: dificuldade de conseguir as pessoas certas para a automação.
  • Manutenção da TAS não planejada: as atualizações do SUT fazem com que o TAS fique incorreto.
  • Atrasos na introdução da automação.
  • Atrasos na atualização da TAS em relação ao SUT.
  • TAS não captura objetos da UX despadronizados.
  • Casos desatualizados continuam nas suítes de teste.

Pontos em que ocorrem falhas do TAS:

  • Migração para ambiente de teste diferente.
  • Implementação em ambiente de produção.
  • Esquecer que a TAS também é um software (também deve ser testado).

Monitorar esses pontos ao longo do processo e medidas proativas garantirão o sucesso.

4.2.3 Definir abordagens para mitigar os riscos da implantação​

O TAS REQUER UM SDLC PRÓPRIO. Precisa estar sob gerenciamento e documentação.

Há dois tipos de implantação de TAS:

  • Primeira Implantação.
  • Implementação de Manutenção.

Os riscos relacionados à Primeira Implantação incluem:

  • Tempo total de execução maior que o tempo planejado:
    • Solução: planejar tempo suficiente para a execução em totalidade.
  • Existem problemas de instalação com o ambiente de teste:
    • Solução: garantir que o TAS possua as condições prévias para executar os casos.

Os riscos relacionados à Implementação de Manutenção incluem:

  • Problemas de execução em produção após atualização:
    • Solução:
      • Validar o TAS em ambiente de teste.
      • Validar se a suíte de teste nova foi executada adequadamente.

4.3 Dependências no Ambiente de Teste​

4.3.1 Definir os componentes de automação de teste no ambiente de teste​

  • SUT:
    • SUT também faz parte do ambiente, sendo o que será testado.
    • Pode ser dividido em API, Web, banco, etc.
  • Plataforma:
    • Onde os componentes da automação estão.
    • Podem ser infraestrutura de nuvem, máquinas virtuais, containers.
  • Casos de Teste:
    • Descrição dos casos individuais de teste que são compostos de etapas.
    • Eles direcionam as ações manuais e automatizadas.
  • Ferramentas:
    • Diferentes ferramentas usadas na automatização.
    • Podem ser gerador de dados, monitoramento, gerenciador de requisitos.
    • NÃO CONFUNDIR COM O TAF.
  • TAF:
    • Componentes que compõem o desenho do TAF.
    • Incluem drivers, bibliotecas, modelos de casos, documentação, etc.

Complicar o AMBIENTE de teste = complicar a MANUTENÇÃO.

Encontrar a combinação correta de ferramentas, configuração e portabilidade de plataforma.

4.3.2 Identificar os componentes da infraestrutura e as dependências da automação de teste​

Abrangem todos os pré-requisitos para executar o TAF.

  • Máquinas Hospedeiras (Host Machines):
    • Hardware que tem o software de automação instalado.
    • Os scripts são criados e executados nelas.
    • Ex: Máquinas virtuais, servidores ou dispositivos.
  • Rede:
    • Conexão entre o TAS e o SUT.
    • Ex: Rede local ou entre servidores.
  • Plataforma:
    • Plataforma em que a automação é executada.
  • Dependências de Software:
    • Todas as dependências que o TAS requer para funcionar.
    • Devem estar claras, antes e depois da escolha de uma ferramenta.
  • SUT:
    • Acesso ao SUT para a execução dos testes.
    • Ex: Acesso à aplicação web com navegador.

4.3.3 Definir dados de automação de teste e requisitos de interface​

Antes de desenvolver os scripts de automação, devem ser planejados:

  • Interface entre SUT e o TAS.

  • Dependências de dados dos casos de teste.

  • Ex: API:

    • Interface:
      • Pode ser testada a nível de endpoint com requisições.
    • Dependências:
      • Quais as ordens das requisições.
      • Qual o processo para criar uma regra de negócio no sistema.
  • Interface de Banco de Dados:

    • Interface:
      • Testada com acesso direto ao banco de dados.
    • Dependências:
      • Quais verificações de integridade de dados são necessárias.
      • Quais procedures (processos do banco) não utilizadas nos testes.
  • Compatibilidade da Interface:

    • Interface:
      • Testando a compatibilidade entre dois serviços.
    • Dependências:
      • Quais conexões são usadas.
      • Quais dados devem ser passados entre as interfaces.
      • Quais fatores de confiabilidade estão sendo testados.