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.
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.
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
|
|