Escolar Documentos
Profissional Documentos
Cultura Documentos
Técnica de Teste
1
Agenda
Conceito de Técnica de Teste Funcional
2
Teste Funcional
Programa considerado como caixa preta
3
Teste Funcional (2)
Em princípio pode detectar todos os defeitos submetendo o
sistema a todas as entradas possíveis(teste exaustivos)
4
Teste Funcional
Critérios
Particionamento de Equivalência
Grafo causa-efeito
Error-Guessing
Sybtax Testing
Graph Matrix 5
Teste Funcional
Critérios (2)
Todos os critérios baseiam-se na especificação do produto a
ser testado
6
Teste Funcional
Critério de Particionamento em classes de equivalência
Considerando que o teste exaustivo é impossível de ser
aplicado
7
Teste Funcional
Critério de Particionamento em classes de equivalência (2)
Dividir o domínio de entrada em classes de
equivalência tratadas da mesma meneira
8
Teste Funcional
Critério de Particionamento em classes de equivalência (3)
9
Teste Funcional
Critério de Particionamento em classes de equivalência (4)
Diretrizes
Se a condição de entrada especifica um conjunto de valores, são
definidas uma classe válida e duas inválidas
10
Teste Funcional
Critério de Particionamento em classes de equivalência (5)
11
Teste Funcional
Exemplo
Considere um programa que solicita do usuário um
inteiro positivo no intervalo entre 1 e 20 e então solicita
uma cadeia de caracteres desse comprimento. Após
isso, o programa solicita um caractere e retorna a
posição em que o caractere está presente na cadeia. O
usuário tem a opção de procurar vários caracteres.
12
Teste Funcional
Exemplo (2)
Considerando as entradas
13
Teste Funcional
Exemplo (3)
T: de 1 a 20
CC: qualquer caractere (não possui classe de
equivalência)
C : qualquer caractere
O: sim / não
14
Teste Funcional
Exemplo (4)
15
Teste Funcional
Exemplo (5)
Classe de equivalência:
O Sim Não
19
Teste Funcional
Critério de Análise do valor limite
A experiência mostra que testar valores limites tem
maior probabilidade de achar defeitos
Idéia
20
Teste Funcional
Critério de Análise do valor limite - Exemplo
Casos de teste para o critério de Análise do valor limite
n
21
Teste Funcional
Critério de Teste funcional sistemático
Combinação dos critérios de Particionamento por
equivalência e Análise do valor limite
Valores numéricos
24
Teste Funcional
Critério de Teste funcional sistemático
Diretrizes para facilitar a identificação dos casos de teste (3)
Valores ilegais
25
Teste Funcional
Critério de Teste funcional sistemático
Diretrizes para facilitar a identificação dos casos de teste (4)
Números reais
Selecionar zero
Selecionar números bem pequenos
26
Teste Funcional
Critério de Teste funcional sistemático
Diretrizes para facilitar a identificação dos casos de teste (6)
Arranjos
27
Teste Funcional
Critério de Teste funcional sistemático
Diretrizes para facilitar a identificação dos casos de teste (7)
String ou texto
28
Teste Funcional (lembrete)
Exemplo
Analisando o domínio de entradas:
T: de 1 a 20
CC: qualquer caractere (não possui classe de
equivalência)
C : qualquer caractere
O: sim / não
29
Teste Funcional (lembrete)
Exemplo
Analisando o domínio de saídas:
30
Teste Funcional (lembrete)
Exemplo
Classe de equivalência:
Variável Classes de Classes de equivalência
de equivalência válidas inválidas
entrada
T 1<=T<=20 T<1 e T>20
O Sim Não
31
Teste Funcional
Critério de Teste funcional sistemático
Exemplo
Entradas Saída esperada
T CC C O
a Entre com um inteiro entre 1 e 20
1.0 Entre com um inteiro entre 1 e 20
1 ! ‘ ‘ n O caractere ‘ ‘ não pertence a cadeia
1 } ~ n O caractere ~ não pertence a cadeia
20 !”#$%&()*+’/01234567 ! s O caractere ! Aparece na posição 1
“ s O caractere “ aparece na posição 2
+ s O caractere + aparece na posição 10
6 s O caractere 6 aparece na posição 19
7 n O caracter 7 aparece na posição 20
2 ab B Não O caractere b aparece na posição 2
3 a2b 2 n O caractere 2 aparece na posição 2 32
Teste Funcional
Critério de Teste funcional sistemático
Avaliação do critério
33
Teste Funcional
Critério Grafo Causa-Efeito
Critérios anteriores não exploram combinações de
dados de entrada
34
Teste Funcional
Critério Grafo Causa-Efeito (2)
Passos para derivar casos de teste:
Dividir a especificação em partes
grafos grandes são complexos
Identificar causas e efeitos na especificação e atribui-los um número
Causas: estímulos que provoquem uma resposta do sistema
NOT
Identidade
1 2 1 2
Se nó “1” é 1, então nó “2” é 1; senão nó “2” é 0 Se nó “1” é 1, então nó “2” é 0; senão nó “2” é 1
1 1
OR AND
2 4 3
3 2
Se nó “1” ou “2” ou “3” é 1, então nó “4” é 1; senão nó Se ambos nós “1” e “2” são 1, então nó “3” é 1; senão
“4” é 0 nó “3” é 0
36
Teste Funcional
Critério Grafo Causa-Efeito
Exemplo
Programa para “imprimir mensagens”
Ler 2 caracteres e imprimir mensagens da seguinte forma
Se o primeiro caractere for “A” ou “B” o segundo caractere deve ser um digito (situação correta)
Se o primeiro caractere for incorreto, enviar mensagem X
Se o segundo caractere for incorreto, enviar mensagem Y
Causas:
1 - Caractere da coluna 1 é “A”
2 - Caractere da coluna 1 é “B”
3 - Caractere da coluna 2 é um dígito
Efeitos:
70 - Situação correta
71 - A mensagem X é enviada
72 - A mensagem Y é enviada
37
Teste Funcional
Critério Grafo Causa-Efeito
Exemplo (2)
1 71
E
11
2 70
3 72
38
Teste Funcional
Critério Grafo Causa-Efeito
Restrições 1
1 I
2
E
2 2
1 1 1
O M
R
2 2 2
Restrições:
E: no máximo 1 entre 1 e 2 pode ser igual a 1(1 e 2 não podem ser 1 simultaneamente
I: no mínimo 1 entre 1, 2 e 3 deve ser igual a 1(1, 2 e 3 não podem ser 0 simultaneamente
O: um e somente 1 entre 1 e 2 deve ser igual a 1
R: para que 1 seja igual a 1, 2 deve ser igual a 1
M: se o efeito 1 é 1 o efeito 2 é forçado a ser 0
39
Teste Funcional
Critério Grafo Causa-Efeito
Exemplo (3)
Construir tabela de decisão
Efeitos (ações ) que ocorrem para todas as combinações de causas
(condições)
Se pode ocorrer n causas a tabela terá 2n entradas
Passos:
Selecionar um efeito para estar no estado presente, isto é, com valor 1.
Rastrear o grafo para trás encontrando combinações de causas que fazem o efeito 1
Quando nó for OR e a saída deva ser 1 nunca atribuir mais de uma entrada com o
valor 1 simultaneamente
Quando o nó for AND e a saída deva ser 0 todas as combinações de entrada que
levem a saída 0 devem ser enumeradas
Quando o nó for AND e a saída deva ser 0 somente uma condição em que todas
as entradas sejam 0 precisa ser enumerada
Criar uma coluna na tabela de decisão para cada combinação
Determinar para cada combinação os estados de todos os outros efeitos e colocar na
tabela 40
Teste Funcional
Critério Grafo Causa-Efeito
Exemplo (4)
Construir tabela de decisão
1 0 0 1 0 1
2 0 0 0 1 0
3 0 1 1 1 0
70 0 0 1 1 0
71 1 1 0 0 0
72 1 0 0 0 1
41
Teste Funcional
Critério Grafo Causa-Efeito
Exemplo (5)
Converter cada coluna para um caso de teste
42
Teste Funcional
Critério Grafo Causa-Efeito
Outro Exemplo
Exemplo do Programa de Cadeia de Caracteres
Causas
1 - Inteiro positivo no intervalo de 1 a 20
Efeitos
20 – Inteiro fora do intervalo
23 – Término do programa
43
Teste Funcional
Critério Grafo Causa-Efeito
Outro Exemplo (2)
Grafo causa efeito para a Cadeia de Caracteres
1 20
21
2
22
3 23
44
Teste Funcional
Critério Grafo Causa-Efeito
Outro Exemplo (3)
Tabela de decisão para Cadeia de Caracteres
1 0 1 1 -
2 - 1 0 -
3 - 1 1 0
20 1 0 0 0
21 0 1 0 0
22 0 0 1 0
23 0 0 0 1
45
Teste Funcional
Critério Grafo Causa-Efeito
Outro Exemplo (4)
Dados de teste para o grafo
Entrada Saída Esperada
T CC C O
23 Entre com um inteiro entre 1
e 20
3 abc c O caractere c aparece na
posição 3
s
x O caractere x não pertence à
cadeia
k O caractere k não pertence à
cadeia
n
46
Teste Funcional
Critério Grafo Causa-Efeito
Avaliação
Critério exercita combinações de dados de teste que possivelmente não
seriam considerados
Os resultados esperados fazem parte da tabela de decisão
Complexidade em se desenvolver grafo booleano
Quando o número de causas e efeitos é muito grande
Complexidade na conversão do grafo para a tabela de decisão
Solução: identificar subproblemas e desenvolver subgrafos
47
Teste Funcional
Critério Error Guessing
Abordagem ad-hoc
48
Teste funcional
Considerações finais
Requer apenas a especificação do produto