2. Baseadas em Estrutura
Teste e Cobertura de Comandos
Teste e Cobertura de Decisão
Outras técnicas baseadas na estrutura
3. O que e cobertura de
teste
Cobertura de teste é uma medida, referente
ao número de itens (código) testados, pelo
total de itens, multiplicado por 100%.
número de itens
x 100%
exercitados
Cobertura =
total de itens
4. Teste e Cobertura de
Comandos
Definir casos de teste que executem todos
os comandos pelo menos uma vez (passa por
todos os nodos do grafo)
Métrica: número de nodos cobertos
Fácil de satisfazer
Não garante qualidade do código
5. Teste e Cobertura de
Comandos
Cobertura de comando é medida, de acordo
com o número de comandos exercitados
divididos pelo total de comandos,
multiplicado por 100%.
número de comandos
x 100%
exercitados
Cobertura
=
de comando
total de comandos
6. Teste e Cobertura de
Comandos 2 1
1.a = Integer.parseInt(args[0]);
3
2.b = Integer.parseInt(args[1]);
3.while(a < 0){ 4
4. if (b < 0){
5. b = b + 2; Um teste é o 5
6. }
suficiente 7
7. a = a + 1;
a b C 9
8.} (resultado)
-1 -1 1
9.c = a + b;
7. Teste e Cobertura de
Comandos
Questão simulado (CTFL-BSTQB)
Se você estiver voando com um bilhete da classe
econômica, há uma possibilidade de você conseguir
mudar para a classe executiva. Principalmente se
você tiver um cartão fidelidade da companhia aérea.
Se você não tiver o cartão fidelidade (CF), há a
possibilidade de você ser quot;despejadoquot; do vôo se ele
estiver lotado e você chegar atrasado.
8. Teste e Cobertura de
Comandos
n s s
cartão econômica executiva
fidelidade lotada lotada
s n n
s
executiva econômica
lotada
n econômica
despejado
mudar
mudar
do vôo
embarcar
9. Teste e Cobertura de
Comandos
Questão simulado (CTFL-BSTQB)
Três testes foram executados:
Teste 1: O passageiro tem o CF e mudou para a classe executiva
Teste 2: O passageiro não tem o CF e permaneceu na classe
econômica
Teste 3: O passageiro foi quot;despejadoquot; do vôo
Qual é a cobertura de comando obtida com esses três testes?
a) 60%
b) 70%
c) 80%
d) 90%
10. Teste e Cobertura de
Comandos
Resposta correta
Alternativa: c) 80%
Os três testes apresentados cobrem 8 comandos
de 10, ou seja, 80% dos comandos. Os testes não
cobrem o comando 3 e o 9.
11. Teste e Cobertura de
~
Decisao
Uma decisão é um IF, um loop (ex. do-while
ou repeat-until), ou um CASE, no qual
existem duas ou mais possibilidades de
saídas ou resultados a partir de um comando
número de decisões
x 100%
exercitados
Cobertura
=
de decisão total de decisões
12. Teste e Cobertura de
~
Decisao
Teste de decisão é uma forma de teste de
controle de fluxo, já que ele gera um fluxo
específico através dos pontos de decisões
A cobertura de decisão é mais eficiente que
a cobertura de comandos: 100% da cobertura
de decisão garante 100% da cobertura de
comandos, mas não vice-versa
13. Teste e Cobertura de
~
Decisao
Os testes devem cobrir cada saída possível
de um nodo que tenha uma condição
Métrica: número de arestas cobertas
Teste de decisão derivam-se dos casos de
testes para executar decisões específicas,
normalmente para se aumentar a cobertura
14. Teste e Cobertura de
~
Decisao 2 1
1.a = Integer.parseInt(args[0]);
3
2.b = Integer.parseInt(args[1]);
3.while(a < 0){ três testes são 4
4. if (b < 0){
necessários
5. b = b + 2; ab C 5
(resultado)
6. }
-1 -1 1 7
7. a = a + 1;
00 0 9
8.}
-1 0 0
9.c = a + b;
15. Teste e Cobertura de
~
Decisao
Questão simulado (CTFL-BSTQB)
Tendo como base o pseudocódigo abaixo, quantos testes são
necessários para atingir 100% da cobertura de desvio/decisão?
a) 1
1. If x = 3 then
b) 2
2. Display_messageX;
c) 3
3. If y = 2 then
d) 4
4. Display_messageY;
5. else
6. Display_messageZ;
7. else
8. Display_messageZ;
16. Teste e Cobertura de
~
Decisao
Resposta correta
Alternativa: c) 3
Criando três testes conseguimos cobrir 100% das decisões
do pseudocódigo, por exemplo:
x y
3 2
0 0
3 0
17. Outras tecnicas baseadas
na estrutura
Cobertura de desvio
LCSAJ (Linear Code Sequence and Jump -
Seqüência de Código Linear e Salto)
Cobertura de Caminho
18. Cobertura de desvio
Está estreitamente relacionada com a
cobertura de decisão, tanto que 100% de
cobertura de desvio, equivale a 100% de
cobertura de decisão
Cobertura de decisão medi a cobertura dos
desvios condicionais, já a cobertura de desvio
medi a cobertura de desvios condicionais e
não condicionais
19. LCSAJ
Inclui a cobertura de código linear e salto,
cobertura de decisão, cobertura de condições
e cobertura de múltiplas condições
Essa técnica requer a cobertura de todas as
condições que podem afetar ou determinar o
resultado de uma condição
20. Cobertura de Caminho
Especifica dos caminhos possíveis de um
software, quantos são cobertos na execução
de um teste
Porcentagem de caminhos exercitada por
uma suite de teste. 100% de cobertura de
caminho implicam em 100% de cobertura
LCSAJ
21. ^
Baseadas na experiencia
Suposição de erro
Teste exploratório
22. ~
Suposicao de erro
Deve ser usada sempre como um
complemento à outras técnicas mais formais
Não há regras para a suposição de erro
Quando usado para aumentar a técnica
sistemática, testes intuitivos podem ser úteis
para identificar testes específicos que não são
facilmente identificados pelas técnicas formais
Depende muito da habilidade e experiência
do testador
23. Teste exploratorio
Ocorre simultaneamente à modelagem,
execução e registro de teste, e baseia-se nos
objetivos de teste, onde é realizado em um
tempo predefinido
É uma abordagem muito usual, em locais
onde a especificação é rara ou inadequada e
existe grande pressão por conta de prazo, ou
para aprimorar/complementar um teste mais
formal
24. Teste exploratorio
Pode servir como uma checagem do
processo de teste, assegurando que os
defeitos mais importantes sejam encontrados
O aspecto principal é a aprendizagem:
sobre o software, seu uso, seu pontos fortes
e fracos
Também pode servir de complemento para
outras técnicas formais
25.
26. BSTQB. Base de Conhecimento para Certificação em Teste -
Foundation Level Syllabus. 2007br.
BSTQB. Glossário Padrão de Termos Utilizados em Teste de
Software. Versão 1.3br
D. Grahan; V. Veenendaal; I. Evans; R. Black. Foundations of
Software Testing: ISTQB Certification. Cengage Learning Business
Press, 2006.
www.inf.pucrs.br/~copstein/CursoTeste/Dia3/Dia3_TesteFunciona
lTesteEstrutural.ppt (Professor Dr. Bernardo Copstein)