Engenharia de Software
Técnicas de Testes de Software
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Técnicas de Teste de Software
Técnicas Funcionais
 Classe de Equivalência
 Valor de Fronteira
 Tabela de Decisão
 Pairwise
 Teste de Caso de Uso
Técnicas Estruturais
 Fluxo de controle
 Fluxo de dados
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Classe de Equivalência
Objetivo: reduzir a quantidade de casos de teste e
manter uma cobertura razoável.
Classes de equivalência: consiste de um conjunto de
dados onde cada elemento do produto é tratado da
mesma forma pelo sistema (intervalo de valores).
Um grupo de testes formam uma classe de
equivalência se você acredita que:
 Todos eles testam a mesma coisa
 Se um elemento gera um erro, os demais provavelmente
gerarão.
 Se um elemento não gera um erro, os demais provavelmente
não gerarão.
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Classe de Equivalência
 Exemplo: Um módulo de um sistema de recursos
humanos decide se pode ou não empregar uma
pessoa, de acordo com as seguintes regras:
 0 – 16 => Não contrate
 16 – 18 => Pode contratar com tempo parcial
 18 – 55 => Pode contratar com tempo integral
 55 – 99 => Não contrate
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Classe de Equivalência
 Implementação I
If (applicantAge == 0) hireStatus="NO";
If (applicantAge == 1) hireStatus="NO";
… If (applicantAge == 14) hireStatus="NO";
If (applicantAge == 15) hireStatus="NO";
If (applicantAge == 16) hireStatus="PART";
If (applicantAge == 17) hireStatus="PART";
If (applicantAge == 18) hireStatus="FULL";
If (applicantAge == 19) hireStatus="FULL";
… If (applicantAge == 53) hireStatus="FULL";
If (applicantAge == 54) hireStatus="FULL";
If (applicantAge == 55) hireStatus="NO";
If (applicantAge == 56) hireStatus="NO";
… If (applicantAge == 98) hireStatus="NO";
If (applicantAge == 99) hireStatus="NO";
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Classe de Equivalência
 Implementação II
If (applicantAge >= 0 && applicantAge <=16)
hireStatus="NO";
If (applicantAge >= 16 && applicantAge <=18)
hireStatus="PART";
If (applicantAge >= 18 && applicantAge <=55)
hireStatus="FULL";
If (applicantAge >= 55 && applicantAge <=99)
hireStatus="NO";
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Classe de Equivalência
 Implementação III
If (applicantAge >= 0 && applicantAge <=16)
hireStatus="NO";
If (applicantAge >= 16 && applicantAge <=18)
hireStatus="PART";
If (applicantAge >= 18 && applicantAge <=41)
hireStatus="FULL";
// strange statements follow
If (applicantAge == 42 && applicantName == "Lee")
hireStatus="HIRE NOW AT HUGE SALARY";
If (applicantAge == 42 && applicantName <> "Lee")
hireStatus="FULL";
// end of strange statements
If (applicantAge >= 43 && applicantAge <=55)
hireStatus="FULL";
If (applicantAge >= 55 && applicantAge <=99)
hireStatus="NO";
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Classe de Equivalência
 Passos para usar a técnica:
Primeiro, identificar as classes de equivalência.
Segundo, criar um caso de teste para cada classe
de equivalência
Terceiro, criar casos de teste adicionais para cada
classe de equivalência se existe recursos
disponíveis *
 criar casos de teste preventivos(válidos e
inválidos)
* Casos de teste adicionais raramente descobrem defeitos
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Classe de Equivalência
 Aplicabilidade:
 Pode ser aplicada igualmente aos níveis
de teste unitário, integração, sistema e
aceitação;
 É recomendada para sistemas que
recebam entradas que podem variar num
determinado intervalo
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Valor de Fronteira
 Definição: técnica que, baseada na
especificação e no sistema, testa a
fronteira das classes de equivalência.
 Objetivo: encontrar a origem dos erros
escondidos na fronteira das classes de
equivalência.
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Valor de Fronteira
 Exemplo 1: defeito na especificação
 0 – 16 => Não contrate
16 – 18 => Pode contratar com tempo parcial
18 – 55 => Pode contratar com tempo integral
55 – 99 => Não contrate
 Exemplo 2: defeito no código fonte
If (applicantAge >= 0 && applicantAge <=16)
hireStatus="NO";
If (applicantAge >= 16 && applicantAge <=18)
hireStatus="PART";
If (applicantAge >= 18 && applicantAge <=55)
hireStatus="FULL";
If (applicantAge >= 55 && applicantAge <=99)
hireStatus="NO";
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Valor de Fronteira
Passos para usar a técnica:
Primeiro, identificar as classes de equivalência.
Segundo, identificar as fronteiras de cada classe
de equivalência
Terceiro, criar casos de teste para cada fronteira
escolhendo um valor na fronteira, um valor abaixo
da fronteira e um valor acima da fronteira
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Valor de Fronteira
 Casos de teste:
0 – 15 => Não contrate
16 – 17 => Pode contratar com tempo
parcial
18 – 54 => Pode contratar com tempo
integral
55 – 99 => Não contrate
Código
Idade
CT001
-1
CT002
0
CT003
1
CT004
15
CT005
CT006
16
17
CT007
17
CT008
18
CT009
19
CT010
54
CT011
CT012
55
56
CT013
98
CT014
99
CT015
100
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Resultado
Valor de Fronteira
 Aplicabilidade:
 Pode ser aplicada igualmente aos níveis
de teste unitário, integração, sistema e
aceitação;
 É recomendada para sistemas que
recebam entradas que podem variar num
determinado intervalo
 É necessário existir uma documentação
que defina as fronteiras entre as entradas
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Valor de Fronteira
 Exercício 1:
 Um módulo de um sistema acadêmico avalia a
situação anual de um aluno baseado na sua
média global. A avaliação segue a seguinte regra:
 se mediaAluno <= 5 o aluno é reprovado diretamente
 se 5 <= mediaAluno < 7 o aluno vai para recuperação
 se mediaAluno >= 7 o aluno é aprovado por média
 0 <= mediaAluno <= 10
Aplique a técnica Valor de Fronteira para
derivar os casos de testes que achar
necessário
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Valor de Fronteira
 Exercício 2:
 Um módulo de um sistema acadêmico avalia a situação
anual de um aluno baseado na sua média grobal.A
avaliação segue a seguinte regra:
 se mediaAluno <= 5 o aluno é reprovado diretamente
 se mediaAluno = 5 e percentualFalta <= 10% o aluno vai
para recuperação
 se 5 <= mediaAluno < 7 o aluno vai para recuperação
 se mediaAluno >= 7 o aluno é aprovado por média
 se mediaAluno >= 7 e percentualFalta >= 70% o aluno vai
para recuperação
 0 <= mediaAluno <= 10
Aplique a técnica Valor de Fronteira para derivar os
casos de testes que achar necessário
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Tabela de Decisão
 Introdução:
 São usadas para registrar complexas regras de
negócio do sistema
 Elas podem servir como um guia para criar casos
de teste
Tabelas de decisão é uma ferramenta muito
importante para a vida de um testador
Muitos analistas, arquitetos, programadores e
testadores não são familiarizados com essa
técnica.
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Tabela de Decisão
 Representação:
Regra 1
Regra 2
…
Regra p
Condições
Condição-1
Condição-2
…
Condição-m
Ações
Ação-1
Ação-2
…
Ação-n
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Tabela de Decisão
 Exemplo 1:
Tabela de decisão binária
Regra 1
Regra 2
Regra 3
Regra 4
Casado?
Sim
Sim
Não
Não
Torcedor do meu
time?
Sim
Não
Sim
Não
60
25
50
0
Condições
Ações
Desconto (R$)
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Tabela de Decisão
 Exemplo 2:
Tabela de decisão com múltiplas ações
Regra 1
Regra 2
Regra 3
Regra 4
Condição-1
Sim
Sim
Não
Não
Condição-2
Sim
Não
Sim
Não
Ação-1
executar X
executar Y
executar X
executar Z
Ação -2
executar A
executar B
executar B
executar B
Condições
Ação
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Tabela de Decisão
 Exemplo 3:
Tabela de decisão com condições não binárias
Regra 1
Regra 2
Regra 3
Regra 4
Condição-1
0–1
1–10
10–100
100–1000
Condição-2
<5
5
6 or 7
>7
Ação-1
executar X
executar Y
executar X
executar Z
Ação-2
executar A
executar B
executar B
executar B
Condições
Ações
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Tabela de Decisão
 Convertendo uma tabela de decisão
para uma tabela de casos de teste:
Tabela de decisão com condições não binárias
Regra 1
Regra 2
Regra 3
Regra 4
Condição-1
0–1
1–10
10–100
100–1000
Condição-2
<5
5
6 or 7
>7
Ação-1
executar X
executar Y
executar X
executar Z
Ação-2
executar A
executar B
executar B
executar B
Condições
Ações
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Tabela de Decisão
Exemplo convertido:
Código
Condição-1
Condição -2
Resultados esperados
CT001
0
3
executar X / executar A
CT002
5
5
executar Y / executar B
CT003
50
7
executar X / executar B
CT004
500
10
executar Z / executar B
OBS: para adicionar mais casos de teste a tabela, podemos usar
a técnica Valor de Fronteira.
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Tabela de Decisão
 Aplicabilidade:
 Geralmente é usado quando o sistema
precisa implementar regras de negócio
complexas
 é aplicada quando as regras podem ser
representadas como uma combinação de
condições
 quando as condições têm ações discretas
associadas com elas.
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Tabela de Decisão
 Exercício:
 Um módulo de um sistema acadêmico avalia a situação
anual de um aluno baseado na sua média global. A
avaliação segue a seguinte regra:
 se mediaAluno <= 5 o aluno é reprovado diretamente
 se mediaAluno = 5 e percentualFalta <= 10% o aluno para
recuperação
 se 5 <= mediaAluno < 7 o aluno vai para recuperação
 se mediaAluno >= 7 o aluno é aprovado por média
 se mediaAluno >= 7 e percentualFalta >= 70% o aluno vai
para recuperação
 0 <= mediaAluno <= 10
Aplique a técnica Tabela de Decisão para derivar os
casos de testes que achar necessário
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Pairwise
 Introdução:
Situação. Um website precisa operar corretamente com os seguintes
browsers: Internet Explorer 5.0, 5.5, e 6.0, Netscape 6.0, 6.1, e 7.0,
Mozilla 1.1, e Opera 7; usando de diferentes plug-ins: RealPlayer,
MediaPlayer, ou Nenhum; os clientes rodam em diferentes sistemas
operacionais: Windows 95, 98, ME, NT, 2000, e XP; recebendo
páginas de diferentes servidores: IIS, Apache, e WebLogic; o servidor
roda em em diferentes sistemas operacionais: Windows NT, 2000, e
Linux.
Combinações WEB:
 8 browsers
 3 plug-ins
 6 SO cliente
 3 servidores web
 3 SO servidor
TOTAL: 1.296 combinações
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Pairwise
 A solução:
 A resposta não é tentar testar todas as
combinações para todos os valores de
todas variáveis, mas testar todos os pares
(all pairs) de variáveis
Isto reduz significativamente o número de
testes que precisam ser criados e
executados
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Pairwise
 Exemplo 1:
 4 entradas
 Cada entrada pode receber de 1 a 3
valores diferentes.
 Combinações: 34 = 81 testes
 Pairwise: 9 testes
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Pairwise
 Exemplo 2:
 13 entradas
 Cada entrada pode receber de 1 a 3 valores
diferentes.
 Combinações: 313 = 1.594.323 testes
 Pairwise: 15 testes
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Pairwise
 Exemplo 3:
 20 entradas
 Cada entrada pode receber de 1 a 10
valores diferentes.
 Combinações: 1020 testes
 Pairwise: 180 testes
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Pairwise
 Relatos:
 Brownlie of AT&T : detectou 28% mais
defeitos que o plano de testes com 1500
casos de testes, em 50% menos tempo
 National Institute of Standards and
Technology: poderia ter detectado 98%
dos defeitos nos softwares médicos
 Mozilla Web browser: poderia ter
detectado 76% dos defeitos encontrados
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Pairwise
 Por que Pairwise trabalha tão bem?
 Não existe nenhuma resposta
científica
 Uma hipótese é que pairwise testa
todos os defeitos single-mode e doublemode
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Pairwise
 Implementação:
Arrays ortogonais
Algoritmo AllPairs
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Pairwise
 Arrays ortogonais :
Descoberto por Euler
Popularizou com uso em teste de hardware
É um array bi-dimensional de números
(array[m][n])
 Representação: Ln(Xm), onde X é o número de
entradas a combinar 2 a 2 (X = 1..X)
 Tem a seguinte propriedade: escolhida duas
colunas do array, é possível encontrar todas as
combinações de X.
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Pairwise
 Exemplo 1:
X = 3, combinações 2 a 2:{1,1}, {1,2}, {1,3}, {2,1},
{2,2}, {2,3}, {3,1}, {3,2}, e {3,3}.
Array Ortogonal L9(34)
1
2
3
4
1
1
1
1
1
2
1
2
2
2
3
1
3
3
3
4
2
1
2
3
5
2
2
3
1
6
2
3
1
2
7
3
1
3
2
8
3
2
1
3
9
3
3
2
1
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Pairwise
 Array ortogonal com colunas com diferentes intervalos
Array Ortogonal L18(2137)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
1
1
1
2
2
2
3
3
3
1
1
1
2
2
2
3
3
3
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
4
1
2
3
1
2
3
2
3
1
3
1
2
2
3
1
3
1
2
5
1
2
3
2
3
1
1
2
3
3
1
2
3
1
2
2
3
1
6
1
2
3
2
3
1
3
1
2
2
3
1
1
2
3
3
1
2
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
7
1
2
3
3
1
2
2
3
1
2
3
1
3
1
2
1
2
3
8
1
2
3
3
1
2
3
1
2
1
2
3
2
3
1
2
3
1
Pairwise
 Passos para usar arrays ortogonais:
 1. Identificar as variáveis
 2. Determinar os valores que cada variável pode
receber
 3. Localizar uma array ortogonal que tenha uma
coluna para cada variável e seus valores
 4. Mapear as atribuições de teste no array
ortogonal
 5. Extrair os casos de teste
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Pairwise
 Exemplo:
Situação. Um website precisa operar corretamente com os seguintes
browsers: Internet Explorer 5.0, 5.5, e 6.0, Netscape 6.0, 6.1, e 7.0,
Mozilla 1.1, e Opera 7; usando de diferentes plug-ins: RealPlayer,
MediaPlayer, ou Nenhum; os clientes rodam em diferentes sistemas
operacionais: Windows 95, 98, ME, NT, 2000, e XP; recebendo
páginas de diferentes servidores: IIS, Apache, e WebLogic; o servidor
roda em em diferentes sistemas operacionais: Windows NT, 2000, e
Linux.
Combinações WEB:
 8 browsers
 3 plug-ins
 6 SO cliente
 3 servidores web
 3 SO servidor
TOTAL: 1.296 combinações
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Pairwise

1. Identificar as variáveis
As variáveis são:





Browser
Plug-in
Sistema operacional cliente
Servidor web
Sistema operacional servidor
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Pairwise

2. Determinar os valores de cada
variável
Os valores são:
 Browser = Internet Explorer 5.0, 5.5 e 6.0, Netscape
6.0, 6.1 e 7.0, Mozilla 1.1 e Opera 7 (8 valores)
 Plug-in = None, RealPlayer e MediaPlayer (3 valores)
 Sistema operacional cliente = Windows 95, 98, ME,
NT, 2000 e XP (6 valores)
 Servidor web = IIS, Apache e WebLogic (3 valores)
 Sistema operacional servidor = Windows NT, 2000 e
Linux (3 valores)
Combinações: 8 x 3 x 6 x 3 x 3 = 1.296
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Pairwise
 3. Localizar uma array ortogonal que
tenha uma coluna para cada variável e
seus valores





Um array com 5 colunas = 5 variáveis
1 coluna com suporte aos valores de 1 a 8
3 colunas com suporte aos valores de 1 a 3
1 coluna com suporte aos valores de 1 a 6
O array seria o seguinte: 816133 (uma coluna de
1 a 8; uma coluna de 1 a 6; 3 colunas de 1 a 3)
 Este array existe ?
 Se não existe pegamos o menor dos maiores
arrays ortogonais
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Pairwise
 Onde encontrar o array ?
http://www.research.att.com/~njas/oadir/index.ht
ml
 Array mais adequado: L64(8243) = 64 casos
de teste
 95% casos de teste a menos (1.296)
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Pairwise

4. Mapear as atribuições de teste no
array ortogonal
 Coluna 1 = Browser
 Valores:








1 ↔ IE 5.0
2 ↔ IE 5.5
3 ↔ IE 6.0
4 ↔ Netscape 6.0
5 ↔ Netscape 6.1
6 ↔ Netscape 7.0
7 ↔ Mozilla 1.1
8 ↔ Opera 7
Resultado Parcial
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Pairwise

4. Mapear as atribuições de teste no
array ortogonal
 Coluna 2 = Plug-In
 Valores:




1 ↔ None
2 ↔ RealPlayer
3 ↔ MediaPlayer
4 ↔ Not used (at this time)
Resultado Parcial
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Pairwise

4. Mapear as atribuições de teste no
array ortogonal
 Coluna 3 = Sistema operacional cliente
 Valores:








1 ↔Windows 95
2 ↔ Windows 98
3 ↔ Windows ME
4 ↔ Windows NT
5 ↔ Windows 2000
6 ↔ Windows XP
7 ↔ Não usado
8 ↔ Não usado
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Pairwise

4. Mapear as atribuições de teste no
array ortogonal
 Coluna 4 = Servidor WEB
 Valores:




1 ↔ IIS
2 ↔ Apache
3 ↔ WebLogic
4 ↔ Não usado
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Pairwise

4. Mapear as atribuições de teste no
array ortogonal
 Coluna 5 = Sistema operacional servidor
 Valores:




1 ↔ Windows NT
2 ↔ Windows 2000
3 ↔ Linux
4 ↔ Não usado
Resultado Final
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Pairwise
 O que fazer com as colunas / células não
usadas do array ?
 Colunas podem ser deletadas
 E as linhas que tem células não usadas ?
 Não podem ser deletadas, para manter a
ortogonalidade
 Elas precisam ser substituídas por valores
válidos
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Pairwise

5. Extrair os casos de teste
 Cada linha do array é um caso de teste
 Precisar ser complementado com os resultados
esperados
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Pairwise
Algoritmo Allpairs:
O testador não precisa procurar os arrays
ortogonais para seus testes
Geração automática dos pares
Ferramenta AETG:
http://aetgweb.argreenhouse.com.
Ferramenta AllPairs
 http://www.satisfice.com
AllPairs Entrada
AllPairs Saída
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Pairwise
Algoritmo Allpairs:
 ~ siginifica um “Don’t care” (não importa)
 A ferramenta AllPairs escolhe os valores menos usados
para substituir pelo ~
Por que obteve 48 casos de teste?
Resposta: por causa da natureza não-balanceada no algoritmo
 Todos os casos de testes são válidos ?
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Teste de caso de uso
Jacobson define um "use case" como um cenário que descreve o uso
de um sistema por um ator para atingir um objetivo específico.
Um "cenário" é uma seqüência de passos que descreve interações
entre o ator e o sistema.
Testes sobre casos de uso são orientados a transações
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Teste de caso de uso
O valor de um caso de uso:
captura os requisitos funcionais do sistema na perspectiva do
usuário
Documentação independente da linguagem de programação
Pode ser usado para envolver ativamente os usuários na validação
dos requisitos
Pode ser uma documentação base para componentes, classes,
estrutura de base de dados e relações do sistema
Serve como uma base para desenvolver casos de teste do sistema.
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Teste de caso de uso
Caso de Uso – Modelagem UML
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Teste de caso de uso
Caso de Uso – Especificação
Main Success Scenario
A: Actor
S: System
Extensions
Step
Action
1
A: Selects "Register for a course"
2
A: Selects course (e.g. Math 1060)
3
S: Displays course description
4
A: Selects section (Mon & Wed 9:00am)
5
S: Displays section days and times
6
A: Accepts
7
S: Adds course/section to student's course list
2a
Course does not exist
S: Display message and exit
4a
Section does not exist
S: Display message and exit
4b
Section is full
S: Display message and exit
6a
Student does not accept
S: Display message and exit
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Teste de caso de uso
Boas práticas para geração dos casos de teste
 criar no mínimo um caso de teste para o fluxo principal e caso de
testes para cada extensão.
 Usar as técnicas classe de equivalência e valor de fronteira, quando
necessário, para selecionar dados de entrada
 Avaliar o risco das transações. Projetar menos casos de teste para
riscos menores e mais casos de teste para riscos maiores.
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Teste de caso de uso
 iniciar com dados normais para as transações mais freqüentes
 com base nas fronteiras, fornecer dados válidos e inválidos.
 Escolher transações que não são muitos usadas, mas são vitais para o
sistema
 violar pré-condições (se isso pode acontecer no problema real).
 verificar se a transação de caminho mais longo foi alcançada
 executar transações em ordens lógicas diferentes do cenário normal
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Teste de caso de uso
Pense nas operações inesperadas que o usuário executará
Seja investigador
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Fluxo de dados
A maioria dos programadores já encontraram esse tipo de situação:
main()
{
int x;
if (x==42){ ...}
}
Teste de fluxo de dados é uma ferramenta poderosa para detectar uso
impróprio de valores de variáveis no código fonte.
É necessário ter conhecimento do código fonte.
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Fluxo de dados
Variáveis tem um ciclo de vida definido. Elas são criadas, são usadas, e
são destruídas.
FORTRAN e BASIC: criação e destruição automática
C, C++, e Java): criação formal; Variáveis são explicitamente declaradas:
int x; // x is created as an integer
string y; // y is created as a string
Variáveis são usadas para alguma computação (a=b+1) ou usadas em
uma sentença condicional (if (a>42)). Em ambas, é importante a variável
ter sido inicializada antes do seu uso.
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Fluxo de dados
Existem três possibilidades de ações sobre uma variável no código fonte:
 ~d – a variável não existe(~) e depois ela é definida (correta)
 ~u – a variável não existe e depois ela é usada (incorreta)
 ~k – a variável não existe e depois ela é destruída(Killed) (incorreta)
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Fluxo de dados
Considere a seguinte seqüência de defined (d), used (u) e killed (k):
 dd – suspeito. Provavelmente um erro.
 du – correto. Fluxo normal.
 dk – suspeito. Provavelmente um erro.
 ud – correto. Fluxo aceitável.
 uu – correto. Fluxo aceitável.
 uk – correto. Fluxo normal.
 kd – correto. Fluxo aceitável.
 ku – incorreto. Sempre é um erro.
 kk – suspeito. Provavelmente um erro.
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Fluxo de dados
Verificar quebra do padrão:
definir, usar, destruir
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Fluxo de dados
Os padrões define-use-kill
para x (tomados em pares
ao percorrermos os
caminhos) são:
 ~define – correto
 define-define – suspeito
 define-use - correto
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Fluxo de dados
Os padrões define-use-kill
para y (tomados em pares
ao percorrermos os
caminhos) são:
 ~use – suspeito
 use-define – correto
 define-use – correto
 use-kill – correto
 define-kill – suspeito
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Fluxo de dados
Os padrões define-use-kill
para z (tomados em pares
ao percorrermos os
caminhos) são:
 ~kill – incorreto
 kill-use – suspeito
 use-use – correto
 use-define – correto
 kill-kill – suspeito
 kill-define – correto
 define-use – correto
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Fluxo de Controle
Essa abordagem de teste identifica os caminhos de execução no
código de um módulo de um programa e então cria e executa casos de
teste para cobrir esses caminhos.
Grafos de Fluxo
 Grafos documentam a estrutura de controle do módulo
 Os grafos consistem dos seguintes elementos:
Blocos de Processos
Pontos de Decisão
Pontos de Junção
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Fluxo de Controle
Bloco de Processo
Pontos de Decisão
Pontos de Junção
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Fluxo de Controle
Exemplo:
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Fluxo de Controle
if (a>0) {x=x+1;}
if (b==3) {y=0;}
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Fluxo de Controle
if (a>0 && c==1) {x=x+1;}
if (b==3 || d<0) {y=0;}
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Fluxo de Controle
Teste do Caminho Base (Tom McCabe)
O processo estruturado consiste dos seguintes passos:
 Derivar o grafo do fluxo de controle do módulo
 Cálcular a Complexidade Ciclomática (C)
 Selecionar um conjunto mínimo dos caminhos independentes
(nonlooping) = C
 Criar um caso de teste para cada caminho básico
 Executar casos de testes
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Fluxo de Controle
Exemplo:
McCabe define:
C = arestas - nós + 2
Então, para o exemplo
temos:
C = 24 - 19 + 2 = 7
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Fluxo de Controle
Exemplo:
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Fluxo de Controle
Exemplo:
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Fluxo de Controle
Exemplo:
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Fluxo de Controle
Exemplo:
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Fluxo de Controle
Exemplo:
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Fluxo de Controle
Exemplo:
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Fluxo de Controle
Exemplo:
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Fluxo de Controle
Exemplo:
•ABDEGKMQS
•ACDEGKMQS
•ABDFILORS
•ABDEHKMQS
•ABDEGKNQS
•ACDFJLORS
•ACDFILPRS
Este conjunto de casos de teste irá garantir tanto cobertura de
comandos (nós) e decisões (arestas), mas não garante cobertura de
caminhos.
Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho
Download

Testes de software - técnicas - fa7-trabalhos