Skip to content

Latest commit

 

History

History
266 lines (172 loc) · 13.6 KB

01-plan.md

File metadata and controls

266 lines (172 loc) · 13.6 KB

Planejamento de Testes

Um Plano de Testes é um documento detalhado que descreve a estratégia de testes, objetivos, agenda, estimativas, entregáveis e recursos necessários para desenvolver os testes em um produto de software.

O plano auxilia a determinar o esforço necessário para validar a qualidade da aplicação sob testes. Este plano funciona como um blueprint para conduzir as atividades de teste como um processo definido, o que é monitorado de perto e controlado pelo Gerente de Testes.

De acordo com a definição da ISTQB

 "O Plano de Testes é um documento que descreve o escopo, abordagem, recursos e agenda das atividades de teste planejadas"

Importância do Plano de Testes

Os benefícios do documento Plano de Testes são variados:

  • Auxilia pessoas fora do time de teste, como desenvolvedores, gerentes de business e clientes a entender os detalhes da testagem.
  • O plano guia o raciocínio, é como um livro de regras a serem seguidas.
  • Aspectos importantes como estimativa de testes, escopo dos testes, estratégias, etc são documentadas no Plano, para que possam ser revisadas pelo Time de Gerência e reutilizada para outros projetos.

Como Escrever um Plano de Testes

Fluxograma Plano de Testes

1. Analise o Produto

Como você pode testar um produto sem qualquer informação dele? Não pode. É necessário profunda familiaridade com um produto antes de testa-lo.

O produto sob testes é Guru99 Site Bancário. Deve-se pesquisar clientes, usuários finais e conhecer suas necessidades e expectativas do aplicativo.

  • Quem irá usar o Site?
  • Qual sua função?
  • Como funcionará?
  • Quais softwares/hardwares o produto utiliza?

A ideia é sondar o produto e revisar sua documentação, isto auxiliará a entender todas as features do projeto bem como sua usabilidade. Em caso de não entendimento, pode-se conduzir entrevistas com clientes, desenvolvedores e designers para maiores informações.

2. Desenvolve a Estratégia de Testes

A Estratégia de Testes é um passo crítico ao elaborar um Plano de Testes dentro da testagem de software. Uma estratégia é documento de alto nível, que é geralmente desenvolvida pelo Gerente de Testes. O documento define:

  • Os objetivos de teste do projeto, bem como os meios para atingí-los.
  • Determina o esforço e custos necessários.

Fluxograma do Desenvolvimento de Estratégia

2.1. Defina o Escopo de Testes

Antes de iniciar qualquer atividade de teste, o escopo deve ser definido.

  • Componentes do sistema a serem testados (hardware,software,middleware, etc) são definidas segundo o escopo.
  • Os componentes do sistema que não serão testados também precisão estar claramente definidos como não fazendo parte do escopo.

Definir o Escopo de seu projeto de testes é importante para todos os investidores, uma vez que ajuda a:

  • Provê a todos com informação confiável e precisa da testagem a ser elaborada.
  • Todos os membros do projeto terão entendimento claro do que será testado, e do que não será.
2.1.1. Como determinar o Escopo de Testes
  • Requerimentos de Cliente Precisos
  • Orçamento do Projeto
  • Especificação de Produto
  • Habilidades e Talentos no Time de Testes

Agora deve-se definir claramente o que esta dentro e fora do escopo.

2.2. Identificando o Tipo de Testes

Um tipo de teste é um procedimento padrão que provê um resultado esperado para os testes.

Cada tipo de testagem é formulada para identificar um tipo específico de bug no produto. Mas, todos os tipos possuem como alvo atingir o objetivo comum de identificação antecipada dos defeitos, antes do lançamento ao cliente.

Os tipos comumente utilizados são:

  • Teste Unitário: Verifica as menores partes de software verificável na aplicação
  • Teste de API: Valida a API criada para a aplicação
  • Teste de Integração: Módulos individuais são combinados e testados como um grupo
  • Teste de Sistemas: Conduzidos em um sistema completo e integrado para avaliar se está em conformidade com os requerimentos
  • Teste de Instalação/Desinstalação: Foca no que os clientes precisarão fazer para instalar/desinstalar e configurar/remover o novo software com sucesso
  • Teste Ágil: Avalia o sistema de acordo com a metodologia ágil

Existe uma infinidade de tipos de teste para o produto, deverá o Gerente de Testes definir a Priorização adequada, com base nas funções da aplicação e respeitando o orçamento definido.

2.3. Documento Riscos e Problemas

Riscos são eventos futuros e incertos com probabilidade de ocorrência e potencial de perda. Quando o risco ocorre de fato, torna-se um "problema".

Exemplos de Riscos para documentação:

  • Membro da equipe não possui habilidade necessária: Planeje sessões de treinamento
  • O cronograma é apertado, tornando difícil completar os requisitos a tempo: Determine prioridade de testes para cada atividade
  • Gerente de Testes possui habilidades de gerência inadequadas: Planeje sessões de treinamento para lideranças
  • Uma falta de cooperação negativamente afeta a produtividade da equipe: Encoraje cada membro em suas tarefas, e inspire-os a maiores esforços
  • Estimativa de orçamento errada e custos adicionais: Estabeleça o escopo antes de iniciar o trabalho, preste atenção devida ao planejamento e constantemente meça os progressos

2.4. Crie Lógicas de Teste

Na lógica de testes, o Gerente deverá responder as seguintes perguntas:

  • Quem irá testar?
  • Quando o teste irá ocorrer?

Você pode não conhecer exatamente os nomes de cada tester, mas o tipo de tester pode ser definido.

Para selecionar o membro correto para uma tarefa específica, deve-se considerar se suas habilidades qualificam-se para a tarefa ou não, também estimando o orçamento disponível. Selecionar errôneamente pode causar atrasos ou falha no projeto.

Possuir as seguintes habilidades é o mais ideal para aplicação de testes:

  • Capacidade de compreensão do ponto de vista dos clientes
  • Forte desejo por qualidade
  • Atenção a Detalhes
  • Boa cooperação

Em seu projeto, o tester irá tomar as rédeas da execução. Baseado no orçamento, pode-se selecionar terceirizações.

Quando o teste ocorrerá?

Atividades de teste devem ser associadas com atividades de desenvolvimento, devendo iniciar-se quando todos os itens necessários existirem.

Itens Necessários Para Início de Testes

3. Defina objetivos para o teste

Consiste no objetivo geral e conquista da melhor execução. O objetivo dos testes é encontrar tantos defeitos quanto o possível, garantindo que o software seja livre de bugs antes de seu lançamento.

Para definir objetivos, deve-se:

  • Listar todas as features (funcionalidade, performance, GUI, etc) que podem precisar de testes.
  • Definir o alvo, ou objetivo, do teste baseado nas características acima.

4. Defina os critérios de teste

Os critérios são padrões ou regras nas quais os procedimentos de teste baseiam-se, existem dois tipos:

4.1. Critério de Suspensão

Especifique os critérios de suspensão críticos para um teste. Caso estes sejam atendidos durante a testagem, o ciclo de testes ativos será suspendido até que os critérios sejam solucionados.

Exemplo: Caso os relatórios da equipe indiquem que 40% dos casos falharam, você deve suspender a testagem até que o time de desenvolvimento corrija todos os casos.

Fluxograma Critérios de Suspensão

4.2. Critérios de Saída

Especificam as diretrizes que denotam sucesso em uma fase de testes. Os critérios de saída são resultados alvo dos testes, necessários antes de proceder para a proxima fase de desenvolvimento. Ex: 95% de todos os casos de teste críticos devem passar.

Alguns métodos para definir os critérios de saída consistem na especificação de taxas par execução e sucesso.

  • Taxa de execução: É a relação entre o número de casos de teste executados/total de casos.
  • Taxa de Sucesso: Relação entre número de testes que passaram/casos de teste executados.

Estes dados podem ser coletados em documentos de Metrica para Testes.

  • Taxa de Execução deve ne cessáriamente ser de 100%, a não ser que uma razão clara seja provida.
  • Taxa de Suceso depende do escopo do projeto, mas o ideal é que seja tão alta quanto o possível.

5. Planejamento de recursos

Planejamento de recursos é um sumário detalhado de todos os tipos de recursos necessários para completar um projeto de tarefa. Recursos podem ser humanos, equipamento e materiais necessários para finaliza um projeto.

O planejamento de recursos é fator importante para o planejamento de testes uma vez que auxilia a determinar o número de recursos a serem empregados no projeto. Portanto, o Gerente de Testes pode elaborar corretamente o cronograma e estimativas para o projeto.

  • Recursos Humanos:
    • Gerente de Teste: 1. Administra todo o Projeto 2. Define diretrizes 3. Adquire os recursos necessários 4. Identifica e descreve técnicas/ferramentas/arquitetura de automação apropriadas

    • Tester:

      1. Executa os testes, cataloga resultados, reporta defeitos
      2. Pode ser interno ou terceirizado, com base no orçamento disponível
      3. Para tarefas que requeiram baixa especialização, é recomentdado o uso de equipe terceirizada para poupar custos
    • Desenvolvedor em Teste:

      1. Implementa casos de testes, programa de testes, baterias etc.
    • Administrador de Testes:

      1. Constrói e garante que Ambiente de Testes e seus recursos sejam administrados e recebam manutenção
      2. Provê apoio ao Tester para uso do ambiente de testes
    • Membros SQA:

      1. Responsável pelo Quality Assurance
      2. Verifica e confirma se o processo de testes atende aos requerimentos especificados

5.1. Recursos do Sistema

Para testar um aplicativo web, deve-se planejar os recursos de acordo com:

  • Servidor:
    • Instala a aplicação web sob testes
    • Inclui um servidor web separado, servidor para database e servidor para aplicação, caso seja aplicável
  • Ferramenta de Testes:
    • A ferramentas de teste é usada para automatizar os processos, simular operação apropriada de usuários e gerar resultados
    • Existem diversas ferramentas disponíveis para este uso (Selenium, QTP, etc)
  • Rede:
    • A rede deve incluir LAN e Internet para simular condições de negócios reais, bem como o ambiente de usuário
  • Computador:
    • O computador em que usuários comumente acessam o servidor web

6. Planeje o ambiente de testes

O que é o ambiente de testes?

Consiste em setup de software e hardware em que o time de teste desenvolve os casos. Caracteriza-se de um ambiente real de negócios e usuários, bem como ambientes físicos, como servidores e ambiente para execução de front-end.

6.1. Como Configurar o Ambiente de Testes

Pressuponto cooperação entre time de desenvolvimento e time de testes, pergunte aos desenvolvedores todo o necessário para compreender a aplicação sob testes de forma clara.

  • Qual o máximo de usuários conectados ativamente o website pode aguentar de forma simultânea?
  • Qual os requerimentos de hardware/software para instalação do website?
  • O usuário precisa de alguma configuração específica para navegar no website?

7. Cronograma e Estimativa

Suponha que todo o projeto seja subdivido em tarefas menores e adicionados na estimativa da seguinte forma:

  • Criação das Especificações de Teste:
    • Elaborado pelo Desginer de Testes
    • 170 horas de trabalho
  • Execução de Testes:
    • Tester, Administrador de Testes
    • 80 horas de trabalho
  • Relatório de Testes:
    • Tester
    • 10 horas de trabalho
  • Entrega de Testes:
    • 20 horas de trabalho
  • Total: 280 Horas de Trabalho.

Assim, pode-se elaborar o cronograma para completar todas as tarefas.

Elaborar cronogramas é um termo comum em administração de projetos. Ao criar uma agenda solida no Planejamento de Testes, o Gerente pode usar como ferramenta para monitorar o progresso e controlar custos adicionais.

Para elaborar o cronograma de um projeto, o Gerente de Testes precisa de diversas informações, tais como:

  • Prazos de Funcionários e do Projeto: Dias de trabalho, prazo do projeto e recursos disponíveis são fatores que afetam o cronograma
  • Estimativa do Projeto: Com base na estimativa, o Gerente saberá quanto tempo será dispendido para completar o projeto. Podendo elaborar o cronograma apropriado
  • Riscos do Projeto: Compreender os riscos auxilia o Gerente a adicionar tempo extra suficiente ao cronograma para lidar com riscos

8. Determine os entregáveis para os testes

Entregáveis são uma lista de todos os documentos, ferramentas e outros componentes que precisam ser desenvolvidos e mantidos em apoio ao esforço de testes.

Existem diferentes entregáveis em todas as fases do desenvolvimento

Antes do Teste, Durante o Teste, Após o Teste

Entregáveis são providenciados antes da fase de testes:

  • Documento Planos de Testes
  • Documento Casos de Teste
  • Especficiações do Design de Testes

Entregáveis providenciados durante a fase de testes:

  • Scripts de Teste
  • Simuladores
  • Dados de Testes
  • Matriz de Rastreabilidade de Teste
  • Logs de erros e execuções

Entregáveis providenciados após a fase de testes:

  • Resultados/Relatórios de Testes
  • Relatório de Defeitos
  • Instalação/Diretrizes dos Procedimentos de Testes.
  • Notas de Lançamento.