Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

1
Técnicas de teste
DE CAIXA PRETA
conteúdo
1. Particionamento de Equivalência (PE)
2. Análise de Valores Limite (AVL)
3. Teste de Tabela de Decisão
4. Teste de Transição de Estado
2
Particionamento
De Equivalência
TÉNICAS DE TESTE
Particionamento de 
Equivalência (PE)
Análise de Valores Limite 
(AVL)
Teste de Tabela de 
Decisão
Teste de Transição de 
Estado
CAIXA PRETA
Teste de Comandos 
e Cobertura de 
Comandos
Testes de Desvios e 
Cobertura de Desvios
CAIXA BRANCA
Adivinhação de Erros
Teste Exploratório
BASEADO NA 
EXPERIÊNCIA
Teste Baseado em 
Checklist
TÉCNICAS DE TESTE
3
PRINCÍPIO DE TESTE DE SOFTWARE
Testes Exaustivos são 
Impossíveis!
TESTES EXAUSTIVOS SÃO IMPOSSÍVEIS.
A
B
I2
I6
I5I3 I4
C D
I1
4
TESTES EXAUSTIVOS SÃO IMPOSSÍVEIS.
A
B
I2
I6
I5I3 I4
C D
I1
Considere um trecho de 
Código com 4 estruturas 
de decisão
TESTES EXAUSTIVOS SÃO IMPOSSÍVEIS.
A
B
I2
I6
I5I3 I4
C D
I1
E 6 instruções
5
TESTES EXAUSTIVOS SÃO IMPOSSÍVEIS.
A
B
I2
I6
I5I3 I4
C D
I1
Quantos caminhos 
existem?
TESTES EXAUSTIVOS SÃO IMPOSSÍVEIS.
A
B
I2
I6
I5I3 I4
C D
I11. Caminho: A, I1, I6
2. Caminho: !A, B, D, I5, I6
3. Caminho: !A, B!, D, I4, I6
4. Caminho: !A, !B, C, I3, I6
5. Caminho: !A, !B, !C, I2, I6
6
TESTES EXAUSTIVOS SÃO IMPOSSÍVEIS.
1. Caminho: A, I1, I6
2. Caminho: !A, B, D, I5, I6
3. Caminho: !A, B!, D, I4, I6
4. Caminho: !A, !B, C, I3, I6
5. Caminho: !A, !B, !C, I2, I6
A
B
I2
I6
I5I3 I4
C D
I1
TESTES EXAUSTIVOS SÃO IMPOSSÍVEIS.
1. Caminho: A, I1, I6
2. Caminho: !A, B, D, I5, I6
3. Caminho: !A, B!, D, I4, I6
4. Caminho: !A, !B, C, I3, I6
5. Caminho: !A, !B, !C, I2, I6
A
B
I2
I6
I5I3 I4
C D
I1
7
TESTES EXAUSTIVOS SÃO IMPOSSÍVEIS.
1. Caminho: A, I1, I6
2. Caminho: !A, B, D, I5, I6
3. Caminho: !A, B!, D, I4, I6
4. Caminho: !A, !B, C, I3, I6
5. Caminho: !A, !B, !C, I2, I6
A
B
I2
I6
I5I3 I4
C D
I1
TESTES EXAUSTIVOS SÃO IMPOSSÍVEIS.
1. Caminho: A, I1, I6
2. Caminho: !A, B, D, I5, I6
3. Caminho: !A, B!, D, I4, I6
4. Caminho: !A, !B, C, I3, I6
5. Caminho: !A, !B, !C, I2, I6
A
B
I2
I6
I5I3 I4
C D
I1
8
TESTES EXAUSTIVOS SÃO IMPOSSÍVEIS.
3 iterações do loop 
teremos 125 caminhos 
possíveis.
A
B
I2
I6
I5I3 I4
C D
I1
3 Vezes
TESTES EXAUSTIVOS SÃO IMPOSSÍVEIS.
20 iterações do loop teremos 
95.367.431.640.625
caminhos possíveis.
A
B
I2
I6
I5I3 I4
C D
I1
20 Vezes
9
TESTES EXAUSTIVOS SÃO IMPOSSÍVEIS.
• Realizar um teste exaustivo, cobrindo 
todas as combinações possíveis, é 
geralmente impraticável.
• Durante a atividade de teste, o testador 
é limitado a usar apenas um 
subconjunto das entradas possíveis.
TESTES EXAUSTIVOS SÃO IMPOSSÍVEIS.
• Este subconjunto deve ser selecionado 
de forma a maximizar a probabilidade 
de identificar defeitos no programa.
• Prioriza-se a eficiência na descoberta 
de defeitos sobre a abrangência total 
das entradas possíveis.
10
PARTICIONAMENTO DE EQUIVALÊNCIA (PE)
A técnica de Particionamento 
de Equivalência busca superar
a impossibilidade de testes 
completos.
PARTICIONAMENTO DE EQUIVALÊNCIA (PE)
• Embora possa haver um número enorme 
de possíveis entradas;
• O número de comportamentos esperados 
de um programa nessas entradas é 
geralmente finito.
11
• Esse número é especialmente limitado;
• Quando consideramos comportamentos 
relacionados a aspectos específicos da 
operação da aplicação.
PARTICIONAMENTO DE EQUIVALÊNCIA (PE)
EXEMPLO 1 – TAXAS DE IMPOSTO
• Um sistema define o valor do imposto de 
acordo com a renda.
• O imposto pode ser de 0%, 19%, 33% ou 45%. 
• Existem potencialmente infinitos valores 
possíveis para a renda;
• Mas apenas 4 tipos de decisões possíveis são 
tomadas pelo sistema.
12
EXEMPLO 2 – IMPRIMIR FOLHA
• Um usuário preenche um formulário da 
web e depois deseja imprimi-lo;
• A impressão pode ser frente ou frente 
e verso;
• Existem várias maneiras de preencher 
um formulário, especialmente se for 
complexo. 
EXEMPLO 2 – IMPRIMIR FOLHA
O que queremos testar neste caso são 
apenas 2 tipos de comportamento: 
1. A impressão correta quando for 
frente;
2. A impressão correta quando for 
frente e verso.
13
EXEMPLO 3 – COMPRA DE INGRESSOS
• O usuário preenche um formulário, 
incluindo o campo "idade". 
• Em seguida, ele pode comprar um 
ingresso; 
• Com o procedimento sendo diferente 
dependendo da idade dele.
EXEMPLO 3 – COMPRA DE INGRESSOS
Escolher 
Opção
Preencher 
Formulário
Mensagem 
de Erro
Logout
Compra 
Menor Idade
Compra 
Maior Idade
Incorreto
Correto
Sair
Comprar 
Ingresso
Idade = 18
Existem muitas possibilidades para 
preencher o formulário, mas apenas 
4 ações possíveis
14
AÇÃO 1 – MENSAGEM DE ERRO
Escolher 
Opção
Preencher 
Formulário
Mensagem 
de Erro
Logout
Compra 
Menor Idade
Compra 
Maior Idade
Incorreto
Correto
Sair
Comprar 
Ingresso
Idade = 18
AÇÃO 2 – LOGOUT
Escolher 
Opção
Preencher 
Formulário
Mensagem 
de Erro
Logout
Compra 
Menor Idade
Compra 
Maior Idade
Incorreto
Correto
Sair
Comprar 
Ingresso
Idade = 18
15
AÇÃO 3 – COMPRA MENOR DE IDADE
Escolher 
Opção
Preencher 
Formulário
Mensagem 
de Erro
Logout
Compra 
Menor Idade
Compra 
Maior Idade
Incorreto
Correto
Sair
Comprar 
Ingresso
Idade = 18
AÇÃO 4 – COMPRA MAIOR DE IDADE
Escolher 
Opção
Preencher 
Formulário
Mensagem 
de Erro
Logout
Compra 
Menor Idade
Compra 
Maior Idade
Incorreto
Correto
Sair
Comprar 
Ingresso
Idade = 18
16
PARTICIONAMENTO DE EQUIVALÊNCIA (PE)
Normalmente é possível reduzir o 
comportamento de teste de um 
programa para um número finito de 
variantes.
CLASSES DE EQUIVALÊNCIA
O método de particionamento de 
equivalência divide um domínio dado 
em subconjuntos chamados 
partições ou classes de equivalência
17
CLASSES DE EQUIVALÊNCIA
• De forma que para cada 2 
elementos de uma mesma partição
• Temos o mesmo comportamento do 
programa.
EXEMPLO – CLASSES DE EQUIVALÊNCIA
• Se um sistema atribui um desconto 
para estudantes;
• Então todos os estudantes formarão 
uma partição de equivalência;
• Correspondendo à atribuição do 
desconto.
18
CLASSES DE EQUIVALÊNCIA
• Do ponto de vista do testador, valores 
pertencentes à mesma partição são 
tratados da mesma forma. 
• Portanto, cada elemento de uma 
determinada partição é uma escolha 
igualmente boa para teste.
CLASSES DE EQUIVALÊNCIA
• Se um elemento detectar um defeito, 
qualquer outro também detecta; 
• Se não detectar, os outros também 
não detectam.
19
CLASSES DE EQUIVALÊNCIA
O critério reduz o domínio de 
entrada a um tamanho passível de 
ser tratado durante a atividade de 
teste
Programa
P
D(P)
DOMÍNIO DE ENTRADA 
DO Programa
EXEMPLO: CLASSES DE EQUIVALÊNCIA
Um museu oferece meia-entrada na 
plataforma de compras de ingressos 
online para:
1. Crianças/adolescentes de 6 a 18 anos; 
2. Idosos (60 anos ou mais);
3. Estudantes acima de 18 anos;
4. Professores das redes pública e privada de 
ensino.
20
EXEMPLO: CLASSES DE EQUIVALÊNCIA
• Caso de Teste: testar a funcionalidade 
de atribuir desconto de meia entrada;
• Técnica: Particionamento de 
Equivalência (PE)
Programa
P
D(P)
DOMÍNIO DE ENTRADA 
DO Programa
Visitantes do museu
EXEMPLO: CLASSES DE EQUIVALÊNCIA
Classes de Equivalência: 4 classes
• Valores pertencentes à mesma classe 
são tratados da mesma forma. 
• Cada elemento de uma determinada 
classe é uma escolha igualmente boa 
para teste.
Estudantes
Programa
P
Crianças e 
Adolescentes
Idosos
Professores
D(P)
21
EXEMPLO: CLASSES DE EQUIVALÊNCIA
• A técnica de particionamento de 
equivalência é versátil;
• Pode ser utilizada em qualquer 
situação:
• Em qualquer nível de teste 
• Em qualquer tipo de teste. 
1. TESTE 
FUNCIONAL
2. TESTE NÃO 
FUNCIONAL
3. TESTE CAIXA 
BRANCA
4. TESTE CAIXA 
PRETA
EXEMPLO: CLASSES DE EQUIVALÊNCIA
• Isso ocorre porque se resume à divisãodos dados possíveis em grupos. 
• Essa técnica pode ser aplicada para: 
• Domínios de Entrada;
• Domínios de Saída;
• Domínios Internos: variáveis que não 
são diretamente fornecidas na entrada 
nem retornadas na saída. 
1. TESTE 
FUNCIONAL
2. TESTE NÃO 
FUNCIONAL
3. TESTE CAIXA 
BRANCA
4. TESTE CAIXA 
PRETA
22
EXEMPLO: CLASSES DE EQUIVALÊNCIA
• O domínio que dividimos em partições 
de equivalência não precisa ser um 
domínio numérico; 
• Pode ser qualquer conjunto não vazio.
Programa
P
D(P)
DOMÍNIO DE ENTRADA 
DO Programa
DOMÍNIOS PARA APLICAR TÉCNICAS DE P.E.
• Números Naturais: divisão em números pares e 
ímpares.
• Palavras: divisão por comprimento da palavra, uma 
letra, duas letras, etc.
• Dados Temporais: divisão por ano de nascimento, 
por mês em um determinado ano, etc.
• Variáveis Categóricas: Windows, Linux, macOS
• Exemplo: divisão em partições de um único 
elemento, ({Windows}, {Linux}, {macOS}).
Programa
P
D(P)
DOMÍNIO DE ENTRADA 
DO Programa
23
CORRETUDE DO PARTICIONAMENTO
É muito importante que a partição que façamos 
seja correta, o que significa que:
1. Cada elemento do domínio pertence 
exatamente a uma partição de equivalência.
2. Nenhuma partição de equivalência está vazia.
CORRETUDE DO PARTICIONAMENTO
CORRETO ✓ INCORRETO ✕ INCORRETO ✕
24
EXEMPLO 1 - CORRETUDE DO PARTICIONAMENTO | TRIÂNGULOS
• Um programa lê 3 valores inteiros não 
negativos de uma caixa de diálogo de 
entrada. 
• Os 3 valores representam os comprimentos 
dos lados de um triângulo. 
• O programa exibe uma mensagem 
informando se o triângulo é escaleno, 
isósceles, equilátero ou não é um triângulo.
EXEMPLO 1 - CORRETUDE DO PARTICIONAMENTO | TRIÂNGULOS
Equilátero Isósceles Escaleno
25
EXEMPLO 1 - CORRETUDE DO PARTICIONAMENTO | TRIÂNGULOS
Suponhamos que queiramos aplicar a técnica 
de Partições de Equivalência (EP)
• Domínio de Entrada: conjunto de todas as possíveis 
triplas (a, b, c) de inteiros não negativos;
• Domínio de Saída: o tipo de triângulo.
〈 (2, 2, 4), Inexistente 〉
EXEMPLO 1 - CORRETUDE DO PARTICIONAMENTO | TRIÂNGULOS
• Parece natural dividir o domínio de 
entrada em 4 partições ou classes
• Correspondentes às 4 possíveis 
saídas mencionadas anteriormente. 
Inexistente
Programa
P
Equilátero
Isósceles
Escaleno
D(P)
26
EXEMPLO 1 - CORRETUDE DO PARTICIONAMENTO | TRIÂNGULOS
• No entanto, ao analisar mais de perto;
• Descobre-se que todo triângulo equilátero
também é um triângulo isósceles;
• Estamos lidando com uma partição de 
equivalência, que é um subconjunto adequado 
de outra partição Equilátero Isósceles
EXEMPLO 1 - CORRETUDE DO PARTICIONAMENTO | TRIÂNGULOS
• Equilátero: triângulo no qual todos os 3 
lados têm o mesmo comprimento
• Todos os 3 ângulos internos são iguais, 
cada um medindo 60 graus.
Equilátero Isósceles
27
EXEMPLO 1 - CORRETUDE DO PARTICIONAMENTO | TRIÂNGULOS
• Isósceles: Um triângulo isósceles é 
um triângulo com pelo menos 2 
lados de igual comprimento. 
• Isso significa que pelo menos 2 
lados do triângulo são iguais.
Equilátero Isósceles
EXEMPLO 1 - CORRETUDE DO PARTICIONAMENTO | TRIÂNGULOS
• Todo triângulo equilátero é também um 
triângulo isósceles. 
• Vocês lembram que o triângulo equilátero 
possui 3 lados iguais? 
• Então, temos pelo menos 2 lados são 
iguais, assim como no triângulo isósceles.
(40, 40, 40)
(40, 40, 40)
(90, 90, 70)
Equilátero
Isósceles
28
EXEMPLO 1 - CORRETUDE DO PARTICIONAMENTO | TRIÂNGULOS
A. Entradas representando triângulos 
equiláteros;
B. Entradas representando triângulos 
isósceles, que não são equiláteros;
C. Entradas representando triângulos 
escalenos;
D. Entradas que se enquadram na 
categoria "não é um triângulo”.
〈 (10, 10, 10), Equilátero 〉
〈 (70, 70, 70), Equilátero 〉
〈 (40, 40, 40), Equilátero 〉
〈 (60, 60, 40), Isósceles 〉
〈 (50, 30, 50), Isósceles 〉
〈 (90, 90, 70), Isósceles 〉
〈 (50, 70, 90), Escaleno 〉
〈 (30, 40, 60), Escaleno 〉
〈 (30, 20, 40), Escaleno 〉
〈 (1, 2, 3), Inexistente 〉
〈 (2, 5, 10), Inexistente 〉
A
B
C
D
EXEMPLO 1 - CORRETUDE DO PARTICIONAMENTO | TRIÂNGULOS
Agora, essa divisão está correta
• Cada tripla de números fornecidos 
como entrada;
• Corresponde exatamente a uma 
das 4 partições possíveis acima.
〈 (10, 10, 10), Equilátero 〉
〈 (70, 70, 70), Equilátero 〉
〈 (40, 40, 40), Equilátero 〉
〈 (60, 60, 40), Isósceles 〉
〈 (50, 30, 50), Isósceles 〉
〈 (90, 90, 70), Isósceles 〉
〈 (50, 70, 90), Escaleno 〉
〈 (30, 40, 60), Escaleno 〉
〈 (30, 20, 40), Escaleno 〉
〈 (1, 2, 3), Inexistente 〉
〈 (2, 5, 10), Inexistente 〉
EQUILÁTERO
Isósceles Não Equiláteros
Escalenos
Inexistente
29
EXEMPLO 2 - ORDENAÇÃO
Queremos classificar o conjunto de 
todas as possíveis sequências finitas 
de números em relação à sua 
ordenação.
EXEMPLO 2 - CORRETUDE DO PARTICIONAMENTO | ORDENAÇÃO
Uma divisão natural de equivalência desses 
dados em partições de equivalência poderia ser 
assim: 
A. Sequências Ascendentes;
B. Sequências Descendentes
C. Sequências Não Ordenadas. 
(1, 2, 3, 4 , 5)
(5, 4, 3, 2, 1)
(5, 1, 5, 2, 3)
A
B
C
30
EXEMPLO 2 - CORRETUDE DO PARTICIONAMENTO | ORDENAÇÃO
Uma sequência de um único elemento 
é tanto uma sequência ascendente 
quanto uma sequência descendente.
(3)
EXEMPLO 2 - CORRETUDE DO PARTICIONAMENTO | ORDENAÇÃO
Onde classificar a sequência 
vazia (contendo 0 elementos)?
( )
31
EXEMPLO 2 - CORRETUDE DO PARTICIONAMENTO | ORDENAÇÃO
A divisão correta deve levar 
em conta esses "casos limite"
EXEMPLO 2 - CORRETUDE DO PARTICIONAMENTO | ORDENAÇÃO
• Partição 1: a sequência vazia;
• Partição 2: todas as sequências de um único 
elemento;
• Partição 3: todas as sequências ascendentes 
com pelo menos dois elementos;
• Partição 4: todas as sequências descendentes 
com pelo menos dois elementos;
• Partição 5: todas as sequências não 
ordenadas com mais de dois elementos;
( )
(1)
(2)
(3)
(1, 2, 3, 4, 5)
(1, 2, 3)
(1, 2)
P1
P2
P3
(5, 4, 3, 2, 1)
(3, 2, 1)
(2, 1)
P4
(5, 1, 4, 2, 3)
(1, 3, 2) P5
32
PARTIÇÕES VÁLIDAS
• Partições Válidas: contêm valores "normais", 
"corretos", ou seja, valores esperados (aceitos) 
pelo sistema;
• Valores Válidos, são:
• Aqueles que devem ser processados pelo 
sistema;
• Aqueles para os quais a especificação define 
seu processamento.
PARTIÇÕES INVÁLIDAS
• Partições Válidas: contêm valores que o 
componente ou sistema deve rejeitar;
• Exemplo: dados com sintaxe incorreta, 
excedendo intervalos aceitáveis, etc. 
• Valores Incorretos, são:
• Aqueles que devem ser ignorados ou 
rejeitados pelo sistema.
• Aqueles para os quais a especificação não 
define seu processamento.
33
EXEMPLO 2 - ORDENAÇÃO
• As 5 partições identificadas são 
consideradas válidas;
• Pois contêm dados corretos 
esperados pelo sistema.
( )
(1)
(2)
(3)
(1, 2, 3, 4, 5)
(1, 2, 3)
(1, 2)
P1
P2
P3
(5, 4, 3, 2, 1)
(3, 2, 1)
(2, 1)
P4
(5, 1, 4, 2, 3)
(1, 3, 2) P5
EXEMPLO 2 - ORDENAÇÃO
Partição Inválida: aquelas que contêm 
elementos que não são strings 
numéricas.
(“A”, “D”, “C”, “E”)
(“!”, “3”, “2”) P6
34
DERIVANDO CASOS DE TESTES
• Na técnica de particionamento de equivalência 
(EP), os itens de cobertura são as partições de 
equivalência.
• O conjunto mínimo de casos de teste para 
alcançar 100% de cobertura
• É aquele que inclui cada partição de 
equivalência.
DOMÍNIO UNIDIMENSIONAL - DERIVANDO CASOS DE TESTES
• Domínio Unidimensional: um único 
domínio e uma única divisão; 
• O número mínimo de casos de teste 
é igual ao número de partições de 
equivalência identificadas.
D(P)
CASOS DE TESTE Programa
T
DOMÍNIO DE ENTRADA 
DO Programa
35
DOMÍNIO MULTIDIMENSIONAL - DERIVANDO CASOS DE TESTES
• Domínio Multidimensional: mais de 
um domínio
• O número de casos de teste 
depende de como tratamos as 
combinações de partições inválidas 
• E possíveis dependências entre 
valores e partições de diferentes 
domínios.
D(P)
CASOS DE TESTE Programa
T
DOMÍNIO DE ENTRADA 
DOPrograma
COBERTURA DE TESTES | PARTIÇÕES DE EQUIVALÊNCIA (PE)
A cobertura, geralmente expressa como uma 
porcentagem, é medida como:
A. O número de partições de equivalência 
testadas usando pelo menos um valor;
B. Número total de partições de equivalência 
definidas;
36
EXEMPLO – COBERTURA DE TESTES | PESEL
• O PESEL é o número de identificação pessoal 
do cidadão usado pelo governo polonês;
• Cada cidadão polonês tem um número de 
PESEL único;
• É composto por 11 dígitos.
O formato dos números de PESEL é 
YYMMDDZZZXQ
EXEMPLO – COBERTURA DE TESTES | PESEL
• YYMMDD: representa a data de nascimento, com 
informações do século codificadas no campo do 
mês;
• ZZZ: é um número de identificação único.
• X: indica o sexo, onde números pares representam 
feminino e números ímpares representam 
masculino.
• Q: é um dígito de verificação usado para verificar a 
validade do PESEL.
O formato dos números de PESEL é 
YYMMDDZZZXQ
37
CLASSES DE EQUIVALÊNCIA | PESEL
Nascimento: 1800 - 1899
Entrada
PESEL
Correto
PESEL
Incorreto
Menor
De Idade
Maior
De Idade
Sintaxe
Inválida
Semântica
Inválida
Nascimento: 1900 - 1999
Nascimento: 2000 - 2006
Nascimento: 2007 - 2099
Nascimento: 2100 - 2199
Nascimento: 2200 - 2299
Somente Dígitos (Curto)
Somente Dígitos (Longo)
Caracteres Proibidos
Digito Verificador Incorreto
Número de Dia Errado
Outros Problemas
EXEMPLO – COBERTURA DE TESTES | PESEL
Definimos os seguintes casos de teste:
• PESEL de um adulto nascido em 1898.
• PESEL de um adulto nascido em 1999.
• PESEL = "1234" (muito curto).
D(P)
CASOS DE TESTE Programa
T
DOMÍNIO DE ENTRADA 
DO Programa
38
EXEMPLO – COBERTURA DE TESTES | PESEL
• Este conjunto de 3 casos de teste
• Cobre 3 das 12 partições de 
equivalência identificadas
• Alcançando uma cobertura de 25%.
DOMÍNIO MULTIDIMENSIONAL - DERIVANDO CASOS DE TESTES
Uma abordagem alternativa é necessária 
quando os testes precisam abranger 
partições de equivalência de múltiplos 
domínios simultaneamente.
39
DOMÍNIO MULTIDIMENSIONAL - DERIVANDO CASOS DE TESTES
• Nessa situação, é uma boa prática não criar 
casos de teste que cubram duas ou mais 
partições inválidas;
• Devido ao que é chamado de “Defect Masking“ 
(Mascaramento de Defeitos)
DEFECT MASKING – MASCARAMENTO DE DEFEITOS
• Definição: Defeito que não é detectado por 
um conjunto de testes.
• Causas: Pode ocorrer quando testes não 
cobrem todas as situações possíveis.
• Consequências: Defeitos permanecem não 
detectados, resultando em falhas no software
40
DERIVANDO CASOS DE TESTES | DOMÍNIO MULTIDIMENSIONAL
1. Crie o menor número possível de casos de 
teste 
• Compostos apenas por dados de teste de 
partições válidas;
• Que cubram todas as partições válidas de 
todos os domínios.
CASOS DE TESTE
T
DERIVANDO CASOS DE TESTES | DOMÍNIO MULTIDIMENSIONAL
2. Para cada partição inválida não coberta:
• Crie um caso de teste separado ;
• No qual os dados dessa partição ocorrerão; 
• E todos os outros dados virão das partições 
válidas.
CASOS DE TESTE
T
41
EXEMPLO - DERIVANDO CASOS DE TESTES | MULTIDIMENSIONAL
• Um sistema dá uma nota para um 
estudante com base em 2 dados: 
• Exercícios: 0 - 50 
• Prova: 0 - 50 
• O aluno passa no curso se a pontuação 
total exceder 50. 
EXEMPLO - DERIVANDO CASOS DE TESTES | MULTIDIMENSIONAL
Os dados de entrada do caso de teste 
consistirão em duas partes: 
1. Pontos de Exercícios
2. Pontos de Prova. 
D(P)
CASOS DE TESTE Programa
T
DOMÍNIO DE ENTRADA 
DO Programa
42
EXEMPLO - DERIVANDO CASOS DE TESTES | MULTIDIMENSIONAL
Domínio da variável A = “Notas de Exercício”
• (A1) Partição Válida: números de 0 a 50.
• (A2) Partição Inválida: números menores que 0.
• (A3) Partição Inválida: números maiores que 50.
Notas de
Exercícios
0 50.00
A2
A1
A3
A
EXEMPLO - DERIVANDO CASOS DE TESTES | MULTIDIMENSIONAL
Domínio da variável B = “Nota de Prova”
• (B1) Partição Válida: números de 0 a 50.
• (B2) Partição Inválida: números menores que 0.
• (B3) Partição Inválida: números maiores que 50.
Nota de
Prova
0 50.00
B2
B1
B3
B
43
EXEMPLO - DERIVANDO CASOS DE TESTES | MULTIDIMENSIONAL
Queremos cobrir todas as partições de 
equivalência dos 2 domínios, A e B. 
Notas de
Exercícios
0 50.00
A2
A1
A3
A Nota de
Prova
0 50.00
B2
B1
B3
B
EXEMPLO - DERIVANDO CASOS DE TESTES | MULTIDIMENSIONAL
As partições válidas são A1 e B1
Notas de
Exercícios
0 50.00
A2
A1
A3
A Nota de
Prova
0 50.00
B2
B1
B3
B
44
EXEMPLO - DERIVANDO CASOS DE TESTES | MULTIDIMENSIONAL
Todas as outras (A2, A3, B2, B3) são 
partições Inválidas. 
Notas de
Exercícios
0 50.00
A2
A1
A3
A Nota de
Prova
0 50.00
B2
B1
B3
B
EXEMPLO - DERIVANDO CASOS DE TESTES | MULTIDIMENSIONAL
• Cada caso de teste contém como dados de 
entrada: 
• Pontos de exercício;
• Pontos de prova;
• Cada caso de teste deve cobrir uma partição 
de cada domínio. 
Notas de
Exercícios
0 50.00
A2
A1
A3
A
Nota de
Prova
0 50.00
B2
B1
B3
B
45
EXEMPLO - DERIVANDO CASOS DE TESTES | MULTIDIMENSIONAL
1. Cobrimos as partições válidas primeiro
• Como só temos uma partição válida em cada 
domínio;
• Um caso de teste é suficiente, por exemplo:
• TC1: A = 25, B = 30
• Cobrindo a partição válida A1 e a partição 
válida B1.
Notas de
Exercícios
0 50.00
A2
A1
A3
A
Nota de
Prova
0 50.00
B2
B1
B3
B
EXEMPLO - DERIVANDO CASOS DE TESTES | MULTIDIMENSIONAL
• Temos 2 partições inválidas para cobrir em A e 
2 em B. 
• Precisamos de mais 4 casos de teste em que 
essas partições serão testadas 
individualmente;
Notas de
Exercícios
0 50.00
A2
A1
A3
A
Nota de
Prova
0 50.00
B2
B1
B3
B
46
EXEMPLO - DERIVANDO CASOS DE TESTES | MULTIDIMENSIONAL
• TC 2: A = -8, B = 35
• Cobrindo a partição inválida A2; 
• Adicionalmente cobre B1
Notas de
Exercícios
0 50.00
A2
A1
A3
A
Nota de
Prova
0 50.00
B2
B1
B3
B
EXEMPLO - DERIVANDO CASOS DE TESTES | MULTIDIMENSIONAL
• TC 3: A = 48, B = -11
• Cobrindo a partição inválida B2; 
• Adicionalmente cobre A1.
Notas de
Exercícios
0 50.00
A2
A1
A3
A
Nota de
Prova
0 50.00
B2
B1
B3
B
47
EXEMPLO - DERIVANDO CASOS DE TESTES | MULTIDIMENSIONAL
• TC 4: A = 64, B = 4
• Cobrindo a partição inválida A3; 
• Adicionalmente cobre B1
Notas de
Exercícios
0 50.00
A2
A1
A3
A
Nota de
Prova
0 50.00
B2
B1
B3
B
EXEMPLO - DERIVANDO CASOS DE TESTES | MULTIDIMENSIONAL
• TC 5: A = 12, B = 154
• Cobrindo a partição inválida B3;
• Adicionalmente cobre A1.
Notas de
Exercícios
0 50.00
A2
A1
A3
A
Nota de
Prova
0 50.00
B2
B1
B3
B
48
EXEMPLO – DEFECT MASKING| DOMÍNIO MULTIDIMENSIONAL
• Se estivéssemos testando uma situação em que 
ambos os valores viessem de partições inválidas;
• Poderia ocorrer o fenômeno de “Defect Masking".
EXEMPLO – DEFECT MASKING| DOMÍNIO MULTIDIMENSIONAL
Suponha que o sistema verifique que um aluno 
tenha passado em uma disciplinaatravés do 
seguinte procedimento
49
EXEMPLO – DEFECT MASKING| DOMÍNIO MULTIDIMENSIONAL
ENTRADA: Nota de Exercícios, Nota de Prova
SE ((Nota de Exercícios + Nota de Prova) > 50) ENTÃO
RETORNE “Aprovado”
SENÃO
RETORNE “Reprovado”
EXEMPLO – DEFECT MASKING| DOMÍNIO MULTIDIMENSIONAL
Agora considere o seguinte caso de teste:
• TC6: A = -28, B = 105
• Cobre as partições inválidas A2 e B3.
Notas de
Exercícios
0 50.00
A2
A1
A3
A
Nota de
Prova
0 50.00
B2
B1
B3
B
50
EXEMPLO – DEFECT MASKING| DOMÍNIO MULTIDIMENSIONAL
• Nessa situação, a pontuação total será: 
-28 + 105 = 77
• Portanto, o sistema retornará um 
resultado de “Aprovado”
ENTRADA: Nota de Exercícios, Nota de Prova
SE ((Nota de Exercícios + Nota de Prova) > 50) ENTÃO
RETORNE “Aprovado”
SENÃO
RETORNE “Reprovado”
EXEMPLO – DEFECT MASKING| DOMÍNIO MULTIDIMENSIONAL
• Apesar das entradas estarem incorretas;
• Este é um exemplo de como o defeito em um 
dos valores pode ser mascarado pelo outro;
• Resultando em um comportamento 
aparentemente correto do sistema.
Notas de
Exercícios
0 50.00
A2
A1
A3
A
Nota de
Prova
0 50.00
B2
B1
B3
B
51
COBERTURA DE CADA ESCOLHA
• Aplicada ao caso multidimensional, ou seja, 
no caso em que há mais de um domínio
• Cada caso de teste cobre uma partição da 
distribuição de cada domínio.
• Essa cobertura é um dos tipos mais 
simples (e fracos) aplicados ao caso 
multidimensional.
COBERTURA – CADA ESCOLHA
• Ela requer que cada partição de cada domínio 
seja testada pelo menos uma vez; 
• Na prática, utilizando este método, o testador 
tenta fazer com que o próximo caso de teste;
• Cubra o maior número possível de itens de 
cobertura previamente não cobertos.
52
EXEMPLO: COBERTURA – CADA ESCOLHA
• Estamos testando um software de prateleira 
para venda geral. 
• Isso significa que precisamos testá-lo em 
diferentes ambientes. 
• O programa funciona com diferentes sistemas 
operacionais e navegadores. 
• Portanto, é necessário testar o funcionamento 
de diferentes navegadores em diferentes 
sistemas operacionais. 
EXEMPLO: COBERTURA – CADA ESCOLHA
Vamos assumir que temos os 
seguintes 4 navegadores para testar:
• Google Chrome (GC)
• Firefox (F)
• Safari (S)
• Opera (O)
53
EXEMPLO: COBERTURA – CADA ESCOLHA
E os seguintes três sistemas operacionais:
• Windows (W)
• Linux (L)
• iOS
EXEMPLO: COBERTURA – CADA ESCOLHA
• Para simplificar, não incluímos versões específicas 
de sistemas operacionais ou navegadores. 
• Cada tipo de navegador forma uma partição de 
equivalência de um único elemento, 
• Resultando em quatro partições: {GC}, {F}, {S} e {O}. 
1.{GC}
2.{F}
3.{S}
4.{O}
54
EXEMPLO: COBERTURA – CADA ESCOLHA
• Cada sistema operacional, por sua vez, 
cria 1 partição de equivalência de um 
único elemento;
• Resultando em um total de três 
partições: {W}, {L} e {iOS}.
1.{W}
2.{L}
3.{iOS}
EXEMPLO: COBERTURA – CADA ESCOLHA
• Para cada partição identificada, deve haver um 
caso de teste cobrindo um valor dessa 
partição. 
• Os casos de teste são representados por um 
par de dados de teste: (tipo de navegador, 
sistema operacional). 
1.{GC}
2.{F}
3.{S}
4.{O}
1.{W}
2.{L}
3.{iOS}
55
EXEMPLO: COBERTURA – CADA ESCOLHA
No exemplo, 4 casos de teste são suficientes para 
atender ao critério de cobertura, por exemplo:
• TC1: (GC, W)
• TC2: (F, L)
• TC3: (S, iOS)
• TC4: (O, W)
1.{GC}
2.{F}
3.{S}
4.{O}
1.{W}
2.{L}
3.{iOS}
TIPOS DE PROBLEMAS DETECTADOS
• A técnica de particionamento de 
equivalência identifica problemas 
decorrentes do processamento de 
dados defeituosos;
• Problemas decorrentes de erros no 
modelo de domínio.
56
análise
De Valores Limite
TÉNICAS DE TESTE
Particionamento de 
Equivalência (PE)
Análise de Valores Limite 
(AVL)
Teste de Tabela de 
Decisão
Teste de Transição de 
Estado
CAIXA PRETA
Teste de Comandos 
e Cobertura de 
Comandos
Testes de Desvios e 
Cobertura de Desvios
CAIXA BRANCA
Adivinhação de Erros
Teste Exploratório
BASEADO NA 
EXPERIÊNCIA
Teste Baseado em 
Checklist
TÉCNICAS DE TESTE
57
ANÁLISE DE VALOR LIMITE - BOUNDARY VALUE ANALYSIS (BVA)
• Análise de Valor Limite (Boundary Value
Analysis - BVA)
• Técnica construída sobre a técnica de 
Particionamento de Equivalência (PE);
• É versátil e detecta problemas semelhantes ao 
Particionamento de Equivalência (PE);
ANÁLISE DE VALOR LIMITE - BOUNDARY VALUE ANALYSIS (BVA)
• A diferença está na seleção de elementos 
específicos das partições de equivalência para 
teste na Análise de Valor Limite .
• Na Análise de Valor Limite, escolhemos os 
elementos que estão nos limites dessas 
partições para teste.
58
ANÁLISE DE VALOR LIMITE - BOUNDARY VALUE ANALYSIS (BVA)
• Um valor limite de uma partição é o menor ou 
o maior elemento dessa partição.
• Para falar de "menor" e "maior", é necessário 
definir uma relação de ordem nos elementos 
do domínio
ANÁLISE DE VALOR LIMITE - BOUNDARY VALUE ANALYSIS (BVA)
• A técnica BVA só pode ser aplicada a 
domínios cujos elementos estão ordenados 
por alguma relação de ordem, por exemplo: 
• Conjuntos de números naturais, inteiros ou 
reais;
• Valores relacionados a data ou hora.
59
VALORES DE FRONTEIRA
Os valores de fronteira são sempre 
definidos para uma partição de 
equivalência específica. 
EXEMPLO DE VALORES DE FRONTEIRA | IDADE
• Considere o domínio "idade", contendo 
os números naturais entre 1 e 120;
• Dividido em 2 classes de equivalência
(1, 2, ..., 18)
P1 – CRIANÇAS 
(19, 20, ..., 120)
P2 – ADULTOS 
60
EXEMPLO DE VALORES DE FRONTEIRA | IDADE
Valores de Fronteira 
• P1 – Crianças
• Menor: 1
• Maior: 18
(1, 2, ..., 18)
P1 – CRIANÇAS 
181
Valores de 
Fronteira
EXEMPLO DE VALORES DE FRONTEIRA | IDADE
Valores de Fronteira 
• P2 – Adultos
• Menor: 19
• Maior: 120
12019
Valores de 
Fronteira
(19, 20, ..., 120)
P2 – ADULTOS 
61
DERIVANDO CASOS DE TESTES
1. Identifique o domínio que você deseja 
analisar;
2. Realize o particionamento de equivalência 
deste domínio em partições de equivalência;
DERIVANDO CASOS DE TESTES
3. Para cada partição de equivalência 
identificada: 
• Determine seus valores de fronteira: 
• Às vezes a análise pode ser limitada 
apenas a certas partições;
• Pode não ser necessário levar em conta 
todas as partições de equivalência 
determinadas.
62
DERIVANDO CASOS DE TESTES
4. Para cada valor de fronteira
• Determine os itens de cobertura: os 
elementos a serem testados para este 
valor de fronteira.
DERIVANDO CASOS DE TESTES
Os valores de fronteira (condições de teste) 
não são necessariamente os mesmos que 
os elementos a serem selecionados para 
teste (itens de cobertura). 
63
DERIVANDO CASOS DE TESTES
• Isso dependerá de quais partições estamos 
considerando e da variante escolhida do 
método BVA. 
• Isso ocorre porque existem duas variantes 
principais do BVA
• BVA de 2 valores
• BVA de 3 valores.
BVA DE 2 VALORES
• Para cada valor de fronteira identificado, 
• Esse valor e seu vizinho mais próximo 
que não pertence à partição à qual o 
valor de fronteira pertence 
• São selecionados para teste.
7610
Valores de 
Fronteira
(1, 2, 3, 4, 5, 6)
P
64
BVA DE 3 VALORES
• Para cada valor de fronteira identificado;
• selecionamos esse valor e ambos os 
seus vizinhos para teste;
• Independentemente das partições a que 
pertencem.
765210
Valores de 
Fronteira
(1, 2, 3, 4, 5, 6)
P
EXEMPLO – ANÁLISE DE VALOR LIMITE
Um sistema oferece descontos em 
bilhetes para passageiros:
• Desconto Infantil: menores de 18 anos;
• Desconto Sênior: maiores de 65 anos;
• Sem Desconto: Passageiros com idade 
entre 18 e 65 anos.
65
PASSO 1. IDENTIFIQUE O DOMÍNIO
• A variável a ser analisada é a idade 
do passageiro; 
• Que é um númerointeiro não 
negativo.
D(P) = { 0, 1, 2,..., 127 }
PASSO 2. IDENTIFIQUE AS CLASSES DE EQUIVALÊNCIA
• P1 – Desconto Infantil
• P2 – Bilhete Regular
• P3 – Desconto Sênior
(0, 1, ..., 17)
P1 
(18, 19, ..., 64, 65)
P2
(66, 67, ..., 127)
P3
66
PASSO 3. IDENTIFIQUE VALORES DE FRONTEIRA
170
Valores de 
Fronteira
(0, 1, ..., 17)
P1 – DESCONTO INFANTIL 
6518
Valores de 
Fronteira
(18, 19, ..., 65)
P2 – BILHETE REGULAR 
12766
Valores de 
Fronteira
(66, 67, ..., 127)
P3 – DESCONTO SÊNIOR 
PASSO 4. IDENTIFIQUE OS VALORES A SEREM TESTADOS
• Se aplicarmos o BVA de 2 valores para 
todas as partições de equivalência;
• Todos os valores de fronteira identificados 
devem ser considerados para teste;
18170-1
Valores de 
Fronteira
(0, 1, ..., 17)
P1 – DESCONTO INFANTIL 
66651817
Valores de 
Fronteira
(18, 19, ..., 65)
P2 – BILHETE REGULAR 
1281276665
Valores de 
Fronteira
(66, 67, ..., 127)
P3 – DESCONTO SÊNIOR 
67
PASSO 4. IDENTIFIQUE OS VALORES A SEREM TESTADOS
Casos de Teste – BVA 2 Valores
• 〈(0, 17), Desconto Infantil 〉
• 〈(18, 65), Bilhete Regular 〉
• 〈(66, 127), Desconto Sênior 〉
170
Valores de 
Fronteira
(0, 1, ..., 17)
P1 – DESCONTO INFANTIL 
6518
Valores de 
Fronteira
(18, 19, ..., 65)
P2 – BILHETE REGULAR 
12766
Valores de 
Fronteira
(66, 67, ..., 127)
P3 – DESCONTO SÊNIOR 
PASSO 4. IDENTIFIQUE OS VALORES A SEREM TESTADOS
• Esses valores são suficientes
• Devido à simetria entre quaisquer 2 
valores de fronteira adjacentes de 
duas partições.
170
Valores de 
Fronteira
(0, 1, ..., 17)
P1 – DESCONTO INFANTIL 
6518
Valores de 
Fronteira
(18, 19, ..., 65)
P2 – BILHETE REGULAR 
12766
Valores de 
Fronteira
(66, 67, ..., 127)
P3 – DESCONTO SÊNIOR 
68
PASSO 4. IDENTIFIQUE OS VALORES A SEREM TESTADOS
• 65 como um valor de fronteira de P2 
tem um vizinho 66 de fora da partição
• Que também é um valor de fronteira 
de P3
• E seu vizinho de outra partição é 65.
• Supomos aqui que o valor -1 é 
inviável.
18170-1
Valores de 
Fronteira
(0, 1, ..., 17)
P1 – DESCONTO INFANTIL 
66651817
Valores de 
Fronteira
(18, 19, ..., 65)
P2 – BILHETE REGULAR 
1281276665
Valores de 
Fronteira
(66, 67, ..., 127)
P3 – DESCONTO SÊNIOR 
PASSO 4. IDENTIFIQUE OS VALORES A SEREM TESTADOS
Se aplicarmos o BVA de 3 valores 
para todas as partições de 
equivalência;
18171610-1
Valores de 
Fronteira
(0, 1, ..., 17)
P1 – DESCONTO INFANTIL 
666564191817
Valores de 
Fronteira
(18, 19, ..., 65)
P2 – BILHETE REGULAR 
128127126676665
Valores de 
Fronteira
(66, 67, ..., 127)
P3 – DESCONTO SÊNIOR 
69
PASSO 4. IDENTIFIQUE OS VALORES A SEREM TESTADOS
18171610-1
Valores de 
Fronteira
(0, 1, ..., 17)
P1 – DESCONTO INFANTIL 
666564191817
Valores de 
Fronteira
(18, 19, ..., 65)
P2 – BILHETE REGULAR 
128127126676665
Valores de 
Fronteira
(66, 67, ..., 127)
P3 – DESCONTO SÊNIOR 
Casos de Teste – BVA 3 Valores
• 〈(-1, 17), “Erro: Idade Inválida” 〉
• 〈(0, 17), Desconto Infantil 〉
• 〈(1, 16), Desconto Infantil 〉
• 〈(18, 65), Bilhete Regular 〉
• 〈(19, 64), Bilhete Regular 〉
• 〈(66, 127), Desconto Sênior 〉
• 〈(67, 126), Desconto Sênior 〉
• 〈(66, 128), “Erro: Idade Inválida” 〉
COBERTURA
Análise de Valor Limite os itens de 
cobertura são os valores limite das 
partições de equivalência.
70
COBERTURA - BVA DE 2 VALORES
A. Número de valores limite testados
B. Número total de valores limite 
identificados.
EXEMPLO - COBERTURA | BVA DE 2 VALORES
7610
Valores de 
Fronteira
(1, 2, 3, 4, 5, 6)
P
• Se testarmos 3 valores limites: { 0, 1, 6 } 
• Número total de Limites: 4
• Alcançamos uma cobertura de 75%.
71
COBERTURA - BVA DE 3 VALORES
A. Número de valores limite testados com 
seus vizinhos
B. Número total de valores limite 
identificados, incluindo seus vizinhos.
EXEMPLO - COBERTURA | BVA DE 3 VALORES
765210
Valores de 
Fronteira
(1, 2, 3, 4, 5, 6)
P
• Se testarmos 4 valores limites: { 0, 1, 5, 6 } 
• Número total de Limites: 6
• Alcançamos uma cobertura de 66,66%.
72
teste de tabela
De Decisão
TÉNICAS DE TESTE
Particionamento de 
Equivalência (PE)
Análise de Valores Limite 
(AVL)
Teste de Tabela de 
Decisão
Teste de Transição de 
Estado
CAIXA PRETA
Teste de Comandos 
e Cobertura de 
Comandos
Testes de Desvios e 
Cobertura de Desvios
CAIXA BRANCA
Adivinhação de Erros
Teste Exploratório
BASEADO NA 
EXPERIÊNCIA
Teste Baseado em 
Checklist
TÉCNICAS DE TESTE
73
TESTE DE TABELA DE DECISÃO
É uma técnica usada para verificar 
a correção das implementações 
de regras de negócio.
TESTE DE TABELA DE DECISÃO
Uma regra de negócio geralmente 
assume a forma de uma 
implicação lógica:
SE (condição) ENTÃO (ação);
74
EXEMPLO 1 – REGRAS DE NEGÓCIO
LEIA idadeCliente;
SE (idadeCliente 10000) ENTÃO
liberarEmprestimoBancario();
liberarCartaoGold();
75
EXEMPLO – TABELA DE DECISÃO
Regras de Negócio
87654321Condições
NNNNSSSSTem cartão fidelidade?
NNSSNNSSQuantidade total de compras > 1.000
NSNSNSNSFez compras nos últimos 30 dias?
87654321Ações
000005510Atribuir Desconto (%)
EXEMPLO – TABELA DE DECISÃO
• Um cliente possui um cartão de 
fidelidade 
• Fez compras no valor de 
R$1.250,00 até o momento
• A última compra ocorreu há 5 dias. 
Regras de Negócio
87654321Condições
NNNNSSSSTem cartão fidelidade?
NNSSNNSSQuantidade total de compras > 1.000
NSNSNSNSFez compras nos últimos 30 dias?
87654321Ações
000005510Atribuir Desconto (%)
76
EXEMPLO – TABELA DE DECISÃO
• Essa situação corresponde a regra 
de negócio 1;
• O sistema vai dar 10% de desconto 
para o cliente.
Regras de Negócio
87654321Condições
NNNNSSSSTem cartão fidelidade?
NNSSNNSSQuantidade total de compras > 1.000
NSNSNSNSFez compras nos últimos 30 dias?
87654321Ações
000005510Atribuir Desconto (%)
DERIVANDO CASOS DE TESTE DA TABELA DE DECISÃO
Regras de Negócio
87654321Condições
NNNNSSSSTem cartão fidelidade?
NNSSNNSSQuantidade total de compras > 1.000
NSNSNSNSFez compras nos últimos 30 dias?
87654321Ações
000005510Atribuir Desconto (%)
1. Identificar Condições Únicas;
2. Identificar Ações Correspondentes;
3. Gerar Combinações de Condições;
4. Determinar Ações para Cada 
Combinação;
5. Designar Casos de Teste e Avaliar Saídas.
77
PASSO 1 - IDENTIFICAR CONDIÇÕES ÚNICAS
• Identifique todas as condições 
possíveis, listando-as nas linhas 
superiores da tabela;
• Divida condições compostas, se 
necessário;
• Se baseie em especificações, 
conversas com o cliente e senso 
comum.
Regras de Negócio
87654321Condições
NNNNSSSSTem cartão fidelidade?
NNSSNNSSQuantidade total de compras > 1.000
NSNSNSNSFez compras nos últimos 30 dias?
87654321Ações
000005510Atribuir Desconto (%)
PASSO 2 - IDENTIFICAR AÇÕES
• Identifique todas as ações que dependem 
das condições;
• Liste nas linhas inferiores da tabela;
• Se baseie nas especificações e nas frases 
precedidas por palavras como: "então", 
"neste caso", "o sistema deve", etc.
Regras de Negócio
87654321Condições
NNNNSSSSTem cartão fidelidade?
NNSSNNSSQuantidade total de compras > 1.000
NSNSNSNSFez compras nos últimos 30 dias?
87654321Ações
000005510Atribuir Desconto (%)
78
PASSO 3 – GERAR COMBINAÇÕES DE CONDIÇÕES
• Crie todas as combinações de condições 
possíveis e remova aquelas inviáveis;
• Para cada combinação viável;
• Crie uma coluna separada na tabela com 
os valores de cada condição listados.
Regras de Negócio
87654321Condições
NNNNSSSSTem cartão fidelidade?
NNSSNNSSQuantidade total de compras > 1.000
NSNSNSNSFez compras nos últimos 30 dias?
87654321Ações
000005510Atribuir Desconto (%)
PASSO 4 - DETERMINAR AÇÕES PARA CADA COMBINAÇÃO
• Identifique as ações e sua execução para 
cada combinação de condições;
• Preencha a parte inferior da coluna 
correspondente na tabela de decisão.
Regras de Negócio
87654321Condições
NNNNSSSSTem cartão fidelidade?
NNSSNNSSQuantidade total de compras > 1.000NSNSNSNSFez compras nos últimos 30 dias?
87654321Ações
000005510Atribuir Desconto (%)
79
PASSO 5 - DESIGNAR CASOS DE TESTE E AVALIAR SAÍDAS
• Para cada coluna da tabela de decisão, 
atribua um caso de teste em que a 
entrada represente a combinação de 
condições especificadas. 
• O teste é bem-sucedido se, após a 
execução, o sistema tomar as ações 
conforme descrito na parte inferior da 
tabela, na coluna correspondente. 
• Essas entradas de ação representam a 
saída esperada para o caso de teste.
Regras de Negócio
87654321Condições
NNNNSSSSTem cartão fidelidade?
NNSSNNSSQuantidade total de compras > 1.000
NSNSNSNSFez compras nos últimos 30 dias?
87654321Ações
000005510Atribuir Desconto (%)
PASSO 5 - DESIGNAR CASOS DE TESTE E AVALIAR SAÍDAS
Regras de Negócio
87654321Condições
NNNNSSSSTem cartão fidelidade?
NNSSNNSSQuantidade total de compras > 1.000
NSNSNSNSFez compras nos últimos 30 dias?
87654321Ações
000005510Atribuir Desconto (%)
Casos de Teste
1. 〈(true, true, true), 10 〉
2. 〈(true, true, false), 5 〉
3. 〈(true, false, true), 5 〉
4. 〈(true, false, false), 0 〉
5. 〈(false, true, true), 0 〉
6. 〈(false, true, false), 0 〉
7. 〈(false, false, true), 0 〉
8. 〈(false, false, false), 0 〉
80
COMO DETERMINAR TODAS COMBINAÇÕES DE CONDIÇÕES?
• Se precisarmos determinar manualmente 
combinações de condições;
• E temos medo de que possamos perder 
algumas combinações;
• Podemos usar um método de árvore 
muito simples;
• Para determinar sistematicamente todas 
as combinações de condições.
COMO DETERMINAR TODAS COMBINAÇÕES DE CONDIÇÕES?
ValorCódigoVariável
AltoA
Rendimentos
BaixoB
JovemJ
Idade AdultoA
IdosoI
RuralR
Residência
UrbanaU
81
COMO DETERMINAR TODAS COMBINAÇÕES DE CONDIÇÕES?
IDADE
RESIDÊNCIA
RENDIMENTOSCriar uma árvore com todas as 
combinações de valores de trios 
(idade, rendimentos, residência).
COMO DETERMINAR TODAS COMBINAÇÕES DE CONDIÇÕES?
A B
J
UR
A
UR
I
UR
J
UR
A
UR
I
UR
IDADE
RESIDÊNCIA
RENDIMENTOS
Da raiz, derivar todas as 
possibilidades da primeira 
condição (rendimentos) para 
obter o primeiro nível da árvore.
82
COMO DETERMINAR TODAS COMBINAÇÕES DE CONDIÇÕES?
A B
J
UR
A
UR
I
UR
J
UR
A
UR
I
UR
IDADE
RESIDÊNCIA
RENDIMENTOS
• A partir de cada vértice do 
primeiro nível;
• derivar todas as possibilidades da 
segunda condição (idade);
• Para obter o segundo nível da 
árvore.
COMO DETERMINAR TODAS COMBINAÇÕES DE CONDIÇÕES?
A B
J
UR
A
UR
I
UR
J
UR
A
UR
I
UR
IDADE
RESIDÊNCIA
RENDIMENTOS
• A partir de cada vértice do 
segundo nível
• Derivar todos os possíveis valores 
da terceira condição (local de 
residência).
83
COMO DETERMINAR TODAS COMBINAÇÕES DE CONDIÇÕES?
A B
J
UR
A
UR
I
UR
J
UR
A
UR
I
UR
IDADE
RESIDÊNCIA
RENDIMENTOS
Se houver mais condições, 
proceder de forma análoga.
COMO DETERMINAR TODAS COMBINAÇÕES DE CONDIÇÕES?
A B
J
UR
A
UR
I
UR
J
UR
A
UR
I
UR
• Cada combinação de condições;
• Corresponde a uma série de rótulos de 
vértices ao longo dos caminhos da raiz;
• Para os vértices mais baixos da árvore.
84
COMO DETERMINAR TODAS COMBINAÇÕES DE CONDIÇÕES?
A B
J
UR
A
UR
I
UR
J
UR
A
UR
I
UR
• O número de combinações é igual 
ao número de vértices no nível 
mais baixo da árvore.
• No nosso caso 12 combinações
COMO DETERMINAR TODAS COMBINAÇÕES DE CONDIÇÕES?
A B
J
UR
A
UR
I
UR
J
UR
A
UR
I
UR
• Cada combinação pode ser 
inserida nas colunas da tabela de 
decisão
• Garantindo que nenhuma seja 
deixada de fora.
85
COMO DETERMINAR TODAS COMBINAÇÕES DE CONDIÇÕES?
A B
J
UR
A
UR
I
UR
J
UR
A
UR
I
UR
Regras de Negócio
121110987654321Condições
ARendimentos
JIdade
RResidência
COMO DETERMINAR TODAS COMBINAÇÕES DE CONDIÇÕES?
A B
J
UR
A
UR
I
UR
J
UR
A
UR
I
UR
Regras de Negócio
121110987654321Condições
AARendimentos
JJIdade
URResidência
86
COMO DETERMINAR TODAS COMBINAÇÕES DE CONDIÇÕES?
A B
J
UR
A
UR
I
UR
J
UR
A
UR
I
UR
Regras de Negócio
121110987654321Condições
AAARendimentos
AJJIdade
RURResidência
COMO DETERMINAR TODAS COMBINAÇÕES DE CONDIÇÕES?
A B
J
UR
A
UR
I
UR
J
UR
A
UR
I
UR
Regras de Negócio
121110987654321Condições
AAAARendimentos
AAJJIdade
URURResidência
87
COMO DETERMINAR TODAS COMBINAÇÕES DE CONDIÇÕES?
A B
J
UR
A
UR
I
UR
J
UR
A
UR
I
UR
Regras de Negócio
121110987654321Condições
AAAAARendimentos
IAAJJIdade
RURURResidência
COMO DETERMINAR TODAS COMBINAÇÕES DE CONDIÇÕES?
A B
J
UR
A
UR
I
UR
J
UR
A
UR
I
UR
Regras de Negócio
121110987654321Condições
AAAAAARendimentos
IIAAJJIdade
URURURResidência
88
COMO DETERMINAR TODAS COMBINAÇÕES DE CONDIÇÕES?
A B
J
UR
A
UR
I
UR
J
UR
A
UR
I
UR
Regras de Negócio
121110987654321Condições
BAAAAAARendimentos
JIIAAJJIdade
RURURURResidência
COMO DETERMINAR TODAS COMBINAÇÕES DE CONDIÇÕES?
A B
J
UR
A
UR
I
UR
J
UR
A
UR
I
UR
Regras de Negócio
121110987654321Condições
BBAAAAAARendimentos
JJIIAAJJIdade
URURURURResidência
89
COMO DETERMINAR TODAS COMBINAÇÕES DE CONDIÇÕES?
A B
J
UR
A
UR
I
UR
J
UR
A
UR
I
UR
Regras de Negócio
121110987654321Condições
BBBAAAAAARendimentos
AJJIIAAJJIdade
RURURURURResidência
COMO DETERMINAR TODAS COMBINAÇÕES DE CONDIÇÕES?
A B
J
UR
A
UR
I
UR
J
UR
A
UR
I
UR
Regras de Negócio
121110987654321Condições
BBBBAAAAAARendimentos
AAJJIIAAJJIdade
URURURURURResidência
90
COMO DETERMINAR TODAS COMBINAÇÕES DE CONDIÇÕES?
A B
J
UR
A
UR
I
UR
J
UR
A
UR
I
UR
Regras de Negócio
121110987654321Condições
BBBBBAAAAAARendimentos
IAAJJIIAAJJIdade
RURURURURURResidência
COMO DETERMINAR TODAS COMBINAÇÕES DE CONDIÇÕES?
A B
J
UR
A
UR
I
UR
J
UR
A
UR
I
UR
Regras de Negócio
121110987654321Condições
BBBBBBAAAAAARendimentos
IIAAJJIIAAJJIdade
URURURURURURResidência
91
COMBINAÇÕES INVIÁVEIS
• Em alguns casos, depois de listar todas as 
possíveis combinações de condições
• Você pode descobrir que algumas delas 
são inviáveis por várias razões.
Regras de Negócio
4321Condições
NNSSIdade > 18
NSNSIdade 18
NSNSIdade 18
NSNSIdade 18
NSNSIdade 18
NSNSIdade 1.000
NSNSNSNSFez compras nos últimos 30 dias?
87654321Ações
000005510Atribuir Desconto (%)
Casos de Teste
1. 〈(true, true, true), 10 〉
2. 〈(true, true, false), 5 〉
3. 〈(true, false, true), 5 〉
4. 〈(true, false, false), 0 〉
5. 〈(false, false, false), 0 〉
96
EXEMPLO 2 - COBERTURA
Regras de Negócio
87654321Condições
NNNNSSSSTem cartãofidelidade?
NNSSNNSSQuantidade total de compras > 1.000
NSNSNSNSFez compras nos últimos 30 dias?
87654321Ações
000005510Atribuir Desconto (%)
• Exercitarmos 5 casos de testes de 
colunas viáveis;
• Número total de colunas viáveis: 8
• Alcançamos uma cobertura de 5 / 8 
= 62,5%.
TESTE de
Transição de Estado
97
TÉNICAS DE TESTE
Particionamento de 
Equivalência (PE)
Análise de Valores Limite 
(AVL)
Teste de Tabela de 
Decisão
Teste de Transição de 
Estado
CAIXA PRETA
Teste de Comandos 
e Cobertura de 
Comandos
Testes de Desvios e 
Cobertura de Desvios
CAIXA BRANCA
Adivinhação de Erros
Teste Exploratório
BASEADO NA 
EXPERIÊNCIA
Teste Baseado em 
Checklist
TÉCNICAS DE TESTE
TESTE DE TRANSIÇÃO DE ESTADO
O teste de transição de estado é uma 
técnica utilizada para verificar o 
comportamento de um componente ou 
sistema. 
98
TESTE DE TRANSIÇÃO DE ESTADO
• Como um componente ou sistema, se 
comporta ao longo do tempo;
• E como ele muda de estado sob a 
influência de vários tipos de eventos.
Estado A
Estado B
Transição
Loop
Início
Fim
TESTE DE TRANSIÇÃO DE ESTADO
• O modelo que descreve esse aspecto 
comportamental é chamado de diagrama 
de transição de estado. 
• Na literatura, diferentes variantes desse 
modelo são chamadas de: 
• Autômato Finito; 
• Autômato de Estado Finito;
• Máquina de estados;
• Sistema de transição rotulada.
Estado A
Estado B
Transição
Loop
Início
Fim
99
DIAGRAMA DE TRANSIÇÃO DE ESTADO
discar/ x := 1
discar[xIncorreta CobertaCasos de Teste
S1 (B) ?S1 (B) ?
S3 (A) ?S1 (C) S3 (A) ?
S3 (C) ?S1 (C) S3 (C) ?
S4 (A) ?S1 (C) S3 (B) S4 (A) ?
S4 (B) ?S1 (C) S3 (B) S4 (B) ?
S4 (C) ?S1 (C) S3 (B) S4 (C) ?
Em nosso exemplo temos 6 transições 
inválidas para cobrir
1. S1 (B) ?
2. S3 (A) ?
3. S3 (C) ?
4. S4 (A) ?
5. S4 (B) ?
6. S4 (C) ?
Início
Fim
S1 S2
S3 S4
C
B
A
B
C
A
EXEMPLO: COBERTURA DE TODAS AS TRANSIÇÕES
Se conseguirmos disparar um evento 
que não está definido no modelo, 
podemos interpretá-lo de pelo menos 
duas maneiras
Início
Fim
S1 S2
S3 S4
C
B
A
B
C
A
111
EXEMPLO: COBERTURA DE TODAS AS TRANSIÇÕES
1. Se o sistema mudou de estado, isso deve 
ser considerado uma falha
• Como o modelo não permite tal transição, 
• Não deveria ser possível ativá-la.
Início
Fim
S1 S2
S3 S4
C
B
A
B
C
A
EXEMPLO: COBERTURA DE TODAS AS TRANSIÇÕES
2. Se o sistema não mudou de estado, então isso 
pode ser considerado um comportamento 
correto (ignorando o evento). 
• No entanto, devemos ter certeza de que 
semanticamente esta é uma situação aceitável.
Início
Fim
S1 S2
S3 S4
C
B
A
B
C
A
112
BIBLIOGRAFIA
STAPP, Lucjan; ROMAN, Adam; PILAETEN, Micha
ël. ISTQB – Certified Tester Foundation Level: A 
Self-Study Guide Syllabus v4.0. Chapter 2. Testing 
in the Context of a Software Development Cycle - Test 
Levels. Springer, 2023.
BIBLIOGRAFIA
MYERS, Glenford J.; BADGETT, Tom; SANDLER, 
Corey. The Art of Software Testing. Wiley, 2011.
113
BIBLIOGRAFIA
SOMMERVILLE, Ian. Engenharia de Software. Cap. 2 
– Processo de Software. pág. 18. Cap. 3 –
Desenvolvimento Ágil de Software. pág. 38. Pearson, 
2019.
BIBLIOGRAFIA
PRESSMAN, Roger S.; MAXIM, Bruce R. Engenharia 
de Software: Uma Abordagem Profissional. Cap. 
4.1 Modelos de Processos Prescritivos, pág. 41. 
AMGH, 2021.
114
BIBLIOGRAFIA
BOURQUE, Pierre.; FAIRLEY, Richard E. (Dick). 
SWEBOK V3.0. Chapter 8. Software Engineering 
Process, pág. 81. AMGH, 2021.
Diego Augusto Barros é bacharel em Sistemas de
Informação pela Pontifícia Universidade Católica de Minas
Gerais (2012) e mestre em Ciência da Computação pela
Universidade Federal de Minas Gerais (2015).
Sua pesquisa concentra-se nas áreas de Visualização de
Dados e Interação Humano-computador, e investiga
fatores cognitivos e perceptivos envolvidos na análise de
grandes conjuntos de dados, que resultam em novos
sistemas interativos para comunicação e análise visual.
Seus principais interesses nas áreas são: visualização de
informação, Visual Analytics, métodos de avaliação de
interfaces, interação com sistemas, tecnologias web,
sistemas de informação, engenharia de software e
informática na educação.
diegoaugustobarros.com
@diegoaugustobarros
@profdiegoaugusto
PROF. DIEGO AUGUSTO BARROS

Mais conteúdos dessa disciplina