Conceito: Estratégia de Teste
Esta diretriz discute como desenvolver uma Estratégia de Teste cuja finalidade é descrever a abordagem geral e os objetivos das tarefas de teste.
Relacionamentos
Descrição Principal

Uma estratégia para a parte de teste de um projeto descreve a abordagem geral e os objetivos das tarefas de teste. Inclui estes estágios de teste (unidade, integração e sistema) a serem abordados e os tipos de teste (função, desempenho, carga, estresse) a serem executados.

A estratégia define:

  • As técnicas de teste e as ferramentas a serem utilizadas.
  • Quais critérios de conclusão e êxito de teste serão utilizados. Por exemplo, os critérios podem permitir que o software avance para o teste de aceitação quando 95% dos casos de teste tiverem sido executados com êxito. Outro critério consiste na cobertura de código. Em um sistema no qual a segurança seja vital, esse critério pode significar que 100% do código devem ser cobertos por testes.
  • Algumas considerações especiais afetam os requisitos de recurso ou têm implicações na programação, como:
  • testar todas as interfaces em sistemas externos
  • simular dano físico ou ameaça à segurança

Algumas organizações definiram estratégias de teste corporativo em que você trabalha para aplicar essas estratégias no seu projeto específico.

As dimensões mais importantes em torno das quais você deve planejar suas tarefas de teste são:

  • Em que iteração você está e quais os objetivos dessa iteração?
  • Qual estágio do teste (teste de unidade, de integração e do sistema) você está executando? Você pode trabalhar em todos os estágios do teste em uma iteração.

Agora verifique como as características das suas tarefas de teste podem ser alteradas, dependendo de onde você estiver nas dimensões de teste mencionadas anteriormente. Há muitas características que você deveria verificar, como os recursos necessários e o tempo gasto, mas, neste momento, enfatize o que é importante para definir sua estratégia de teste como:

  • tipos de teste (funcional, estresse, volume, desempenho, usabilidade, distribuição e assim por diante)
  • os critérios de avaliação utilizados (cobertura de teste com base em código, cobertura de teste com base em requisitos, número de defeitos, intervalo entre os defeitos e assim por diante)
  • as técnicas de teste utilizadas (manuais e automatizadas)

Não há nenhum padrão geral referente à maneira como os tipos de testes são distribuídos nos ciclos de teste. Enfatize diferentes tipos de teste, dependendo do número de iterações, o tamanho e que tipo de projeto você está testando.

Você perceberá que o foco do estágio de teste do sistema é garantir que você esteja cobrindo todos os requisitos testáveis expressos em um conjunto de casos de teste. Isso significa que os critérios de conclusão se concentrarão na cobertura de teste baseada em requisitos. Nos estágios de teste unitário e de integração, você perceberá que a cobertura de teste baseada em código é um critério de conclusão mais apropriado. A próxima figura mostra como a utilização desses dois tipos de medidas de cobertura de teste pode ser alterada na medida em que você desenvolve novas iterações do seu software.

  • O plano de teste deve definir conjuntos de critérios de conclusão para o teste de unidade, de integração e do sistema.
  • Pode haver diferentes conjuntos de critérios de conclusão definidos para iterações individuais.

Requisitos e Áreas com Base em Código em uma Imagem de Tabela de Teste

No seu projeto, considere a automatização dos testes o máximo possível, especificamente o tipo de testes que você repete várias vezes (testes de regressão). Tenha em mente que custa tempo e recursos para criar e manter os testes automatizados. Sempre haverá alguma quantidade de teste manual em cada projeto. A seguinte figura é ilustrada quando e em quais estágios de teste você provavelmente executará os testes manuais.

Tabela de Teste com Imagem Circulada das Áreas de Teste Manual

Exemplo

As seguintes tabelas mostram quando os diferentes tipos de testes são identificados e fornecem um exemplo dos critérios de conclusão a serem definidos. A primeira tabela mostra um projeto "MIS" típico.

Teste de Iteração Teste do Sistema Teste de Integração Teste de Unidade
Iteração 1 Teste de desempenho automatizado para todos os casos de uso.
· Todos os testes planejados foram executados.
· Todos os defeitos de gravidade 1 foram abordados.
· Todos os testes planejados foram reexecutados e nenhum novo defeito de gravidade 1 foi identificado.
Nenhum Teste informal
Iteração 2 O desempenho automatizado e o teste de funcionalidade para todos os novos casos de uso e teste de regressão para os anteriores.
· Todos os testes planejados foram executados.
· Todos os defeitos de gravidade 1 e 2 foram abordados.
· Todos os testes planejados foram reexecutados e nenhum defeito novo de gravidade 1 ou 2 foi identificado.
Nenhum Teste informal
Iteração 3 Funcionalidade automatizada e teste negativo para todos os novos casos de uso e teste de regressão para os anteriores; 95% dos casos de teste têm que passar.
· Todos os testes planejados foram executados.
· Todos os defeitos de gravidade 1, 2, e 3 identificados.
Teste automatizado, 70% de cobertura de código Teste informal
Iteração 4 Funcionalidade automatizada e teste negativo para todos os casos de uso, teste manual para todas as partes que não estão automatizadas e teste de regressão para todos os anteriores. 100% dos casos de teste têm que passar.
· Todos os testes planejados foram executados.
· Todos os defeitos de gravidade 1, 2 e 3 foram abordados.
· Todos os testes planejados foram reexecutados e nenhum defeito novo de gravidade 1 ou 2 foi identificado.
Teste automatizado, 80% de cobertura de código. Teste informal

A segunda tabela mostra os tipos de teste e os critérios de conclusão aplicados para um sistema típico em que a segurança é crítica.

Teste de Iteração Teste do Sistema Teste de Integração Teste de Unidade
Iteração 1 Teste de desempenho automatizado para todos os casos de uso; 100% de cobertura dos casos de teste.
· Todos os testes planejados foram executados.
· Todos os defeitos de gravidade 1 foram abordados.
· Todos os testes planejados foram executados novamente e nenhum defeito novo foi identificado.
Nenhum Nenhum
Iteração 2 Desempenho, funcionalidade e teste negativo automatizados para todos os casos de uso; 100% de cobertura do caso de teste.
· Todos os testes planejados foram executados.
· Todos os defeitos de gravidade 1 ou 2 foram abordados.
· Todos os testes planejados foram executados novamente e nenhum defeito novo foi identificado.
Teste de desempenho automatizado Teste informal
Iteração 3 Desempenho, funcionalidade, usabilidade negativa e teste de documentação automatizados para todos os casos de uso; 100% de cobertura do caso de teste.
· Todos os testes planejados foram executados.
· Todos os defeitos de gravidade 1, 2 e 3 foram abordados.
· Todos os testes planejados foram executados novamente e nenhum defeito novo foi identificado.
Teste de desempenho automatizado e teste de regressão para os anteriores Teste automatizado, 70% de cobertura de código
Iteração 4 Desempenho, funcionalidade, usabilidade negativa e teste de documentação automatizados para todos os casos de uso; 100% de cobertura do caso de teste.
· Todos os testes planejados foram executados.
· Todos os defeitos de gravidade 1, 2 e 3 foram abordados.
· Todos os testes planejados foram reexecutados e nenhum defeito foi identificado.
Teste de desempenho automatizado e teste de regressão para os anteriores Teste automatizado, 80% de cobertura de código