Uma estratégia para o teste de um projeto descreve a abordagem geral e os objetivos das atividades de teste. Ela inclui os estágios de teste (unidade, integração e sistema) que devem ser abordados e os tipos de teste (de função, desempenho, carga, stress, etc.) que devem ser executados.

A estratégia define:

  • As ferramentas e técnicas de teste a serem empregadas.
  • Os critérios de conclusão e êxito do teste a serem usados. Por exemplo, os critérios podem permitir que o software evolua 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:
  • O teste de interfaces para sistemas externos.
  • Simulação de danos físicos ou de ameaças à segurança.

Algumas organizações possuem estratégias de teste corporativas definidas. Nesse caso, procure aplicar essas estratégias especificamente ao seu projeto.

Você deve planejar as atividades de teste com base nas seguintes dimensões:

  • Em que iteração você se encontra e quais são as metas dessa iteração.
  • Que estágio de teste (teste unitário, de integração ou de sistema) você está executando. Você pode trabalhar todos os estágios de teste em uma iteração.

Agora, observe como as características das atividades de teste podem ser alteradas dependendo de onde você esteja nas "dimensões de teste" mencionadas acima. É claro que há várias características a observar (como recursos necessários e tempo gasto), mas, nesse ponto, concentre-se no que é importante para definir a estratégia de teste:

  • Tipos de teste (de função, stress, volume, desempenho, usabilidade, distribuição, etc.).
  • Critérios de avaliação usados (cobertura de teste baseada em código, cobertura de teste baseada em requisitos, número de defeitos, intervalo entre falhas, etc.)
  • Técnicas de teste usadas (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. Dependendo do número de iterações, do tamanho da iteração e do tipo de projeto, você enfatizará diferentes tipos de testes.

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 figura a seguir mostra como o uso desses dois tipos de medidas de cobertura de teste pode ser alterado à medida que novas iterações do software são desenvolvidas.

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

testr001.gif (3438 bytes)

No projeto, você deve automatizar os testes o máximo possível, especialmente aqueles que são repetidos várias vezes (testes de regressão). Mas lembre-se que tempo e recursos são necessários para criar e manter testes automatizados. Sempre haverá algum teste manual em cada projeto. A figura a seguir ilustra quando e em que estágios de teste você provavelmente executará testes manuais.

Exemplo:

As tabelas a seguir mostram quando os diferentes tipos de teste 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":

Iteração/teste Teste de sistema Teste de integração Teste unitário
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 executados novamente e nenhum novo defeito de gravidade 1 foi identificado.
Nenhum Teste informal
Iteração 2 Testes de funcionalidade e de desempenho automatizados 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 executados novamente e nenhum novo defeito de gravidade 1 ou 2 foi identificado.
Nenhum Teste informal
Iteração 3 Testes de funcionalidade e negativos automatizados para todos os novos casos de uso e teste de regressão para os anteriores.
95% dos casos de teste precisam ser aprovados.
· Todos os testes planejados foram executados.
· Todos os defeitos de gravidade 1, 2 e 3 foram identificados.
Teste automatizado, 70% de cobertura de código Teste informal
Iteração 4 Testes de funcionalidade e negativos automatizados para todos os casos de uso, teste manual para todas as partes não automatizadas e teste de regressão para os anteriores.
100% dos casos de teste precisam ser aprovados.
· 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 novo defeito 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 em um sistema "típico" no qual a segurança é vital:

Iteração/teste Teste de sistema Teste de integração Teste unitário
Iteração 1 Teste de desempenho automatizado para todos os casos de uso, 100% da cobertura de 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 novo defeito foi identificado.
Nenhum Nenhum
Iteração 2 Testes de funcionalidade, de desempenho e negativos para todos os casos de uso, 100% da cobertura de casos 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 novo defeito foi identificado.
Teste de desempenho automatizado Teste informal
Iteração 3 Testes de desempenho, de funcionalidade, de documentação e de usabilidade negativa automatizados para todos os casos de uso, 100% da cobertura de casos 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 novo defeito 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 Testes de desempenho, de funcionalidade, de documentação e de usabilidade negativa automatizados para todos os casos de uso, 100% da cobertura de casos 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 novo defeito foi identificado.
Teste de desempenho automatizado e teste de regressão para os anteriores Teste automatizado, 80% de cobertura de código



Copyright  (c) 1987 - 2001 Rational Software Corporation


Exibir o Rational Unified Process usando quadros

Rational Unified Process