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.