Você está na página 1de 81

Engenharia de Software

Tcnicas de Testes de Software

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Tcnicas de Teste de Software


Tcnicas Funcionais
Classe de Equivalncia
Valor de Fronteira
Tabela de Deciso
Pairwise
Teste de Caso de Uso

Tcnicas Estruturais
Fluxo de controle
Fluxo de dados

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Classe de Equivalncia
Objetivo: reduzir a quantidade de casos de teste e
manter uma cobertura razovel.
Classes de equivalncia: 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
equivalncia se voc acredita que:
Todos eles testam a mesma coisa
Se um elemento gera um erro, os demais provavelmente
geraro.
Se um elemento no gera um erro, os demais provavelmente
no geraro.

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Classe de Equivalncia
Exemplo: Um mdulo de um sistema de recursos
humanos decide se pode ou no empregar uma
pessoa, de acordo com as seguintes regras:

0 16 => No contrate
16 18 => Pode contratar com tempo parcial
18 55 => Pode contratar com tempo integral
55 99 => No contrate

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Classe de Equivalncia
Implementao 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 Informao
Engenharia de Software Prof. Ciro Coelho

Classe de Equivalncia
Implementao 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 Informao


Engenharia de Software Prof. Ciro Coelho

Classe de Equivalncia
Implementao 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 Informao
Engenharia de Software Prof. Ciro Coelho

Classe de Equivalncia
Passos para usar a tcnica:
Primeiro, identificar as classes de equivalncia.
Segundo, criar um caso de teste para cada classe
de equivalncia
Terceiro, criar casos de teste adicionais para cada
classe de equivalncia se existe recursos
disponveis *
criar casos de teste preventivos(vlidos e invlidos)

* Casos de teste adicionais raramente descobrem defeitos

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Classe de Equivalncia
Aplicabilidade:
Pode ser aplicada igualmente aos nveis
de teste unitrio, integrao, sistema e
aceitao;
recomendada para sistemas que
recebam entradas que podem variar num
determinado intervalo

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Valor de Fronteira
Definio: tcnica que, baseada na
especificao e no sistema, testa a
fronteira das classes de equivalncia.
Objetivo: encontrar a origem dos erros
escondidos na fronteira das classes de
equivalncia.

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Valor de Fronteira
Exemplo 1: defeito na especificao
0 16 => No contrate
16 18 => Pode contratar com tempo parcial
18 55 => Pode contratar com tempo integral
55 99 => No contrate

Exemplo 2: defeito no cdigo 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 Informao
Engenharia de Software Prof. Ciro Coelho

Valor de Fronteira
Passos para usar a tcnica:
Primeiro, identificar as classes de equivalncia.
Segundo, identificar as fronteiras de cada classe
de equivalncia
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 Informao


Engenharia de Software Prof. Ciro Coelho

Valor de Fronteira
Casos de teste:
0 15 => No contrate
16 17 => Pode contratar com tempo
parcial
18 54 => Pode contratar com tempo
integral
55 99 => No contrate

Cdigo
CT001
CT002

Idade
-1
0

Resultado

CT003
CT004
CT005
CT006
CT007

1
15
16
17
17

CT008
CT009

18
19

CT010
CT011
CT012
CT013

54
55
56
98

CT014
CT015

99
100

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Valor de Fronteira
Aplicabilidade:
Pode ser aplicada igualmente aos nveis
de teste unitrio, integrao, sistema e
aceitao;
recomendada para sistemas que
recebam entradas que podem variar num
determinado intervalo
necessrio existir uma documentao
que defina as fronteiras entre as entradas

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Valor de Fronteira
Exerccio 1:
Um mdulo de um sistema acadmico avalia a
situao anual de um aluno baseado na sua mdia
global. A avaliao segue a seguinte regra:
se mediaAluno <= 5 o aluno reprovado diretamente
se 5 <= mediaAluno < 7 o aluno vai para recuperao
se mediaAluno >= 7 o aluno aprovado por mdia
0 <= mediaAluno <= 10

Aplique a tcnica Valor de Fronteira para derivar


os casos de testes que achar necessrio

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Valor de Fronteira
Exerccio 2:
Um mdulo de um sistema acadmico avalia a situao anual de um
aluno baseado na sua mdia grobal.A avaliao segue a seguinte
regra:
se mediaAluno <= 5 o aluno reprovado diretamente
se mediaAluno = 5 e percentualFalta <= 10% o aluno vai para
recuperao
se 5 <= mediaAluno < 7 o aluno vai para recuperao
se mediaAluno >= 7 o aluno aprovado por mdia
se mediaAluno >= 7 e percentualFalta >= 70% o aluno vai para
recuperao
0 <= mediaAluno <= 10

Aplique a tcnica Valor de Fronteira para derivar os casos de


testes que achar necessrio

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Tabela de Deciso
Introduo:
So usadas para registrar complexas regras de
negcio do sistema
Elas podem servir como um guia para criar casos
de teste
Tabelas de deciso uma ferramenta muito
importante para a vida de um testador
Muitos analistas, arquitetos, programadores e
testadores no so familiarizados com essa
tcnica.

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Tabela de Deciso
Representao:
Regra 1

Regra 2

Regra p

Condies

Condio-1

Condio-2

Condio-m

Aes

Ao-1

Ao-2

Ao-n

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Tabela de Deciso
Exemplo 1:
Tabela de deciso binria
Regra 1

Regra 2

Regra 3

Regra 4

Casado?

Sim

Sim

No

No

Torcedor do meu
time?

Sim

No

Sim

No

Aes

60

25

50

Condies

Desconto

(R$)

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Tabela de Deciso
Exemplo 2:
Tabela de deciso com mltiplas aes
Regra 1

Regra 2

Regra 3

Regra 4

Condies

Condio-1

Sim

Sim

No

No

Condio-2

Sim

No

Sim

No

Ao

Ao-1

executarX

executarY

executarX

executarZ

Ao-2

executarA

executarB

executarB

executarB

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Tabela de Deciso
Exemplo 3:
Tabela de deciso com condies no binrias
Regra 1

Regra 2

Regra 3

Regra 4

Condies

Condio-1

01

110

10100

1001000

Condio-2

<5

6or7

>7

Aes

Ao-1

executarX

executarY

executarX

executarZ

Ao-2

executarA

executarB

executarB

executarB

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Tabela de Deciso
Convertendo uma tabela de deciso para uma tabela de
casos de teste:
Tabela de deciso com condies no binrias
Regra 1

Regra 2

Regra 3

Regra 4

Condies

Condio-1

01

110

10100

1001000

Condio-2

<5

6or7

>7

Aes

Ao-1

executarX

executarY

executarX

executarZ

Ao-2

executarA

executarB

executarB

executarB

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Tabela de Deciso
Exemplo convertido:
Cdigo

Condio-1

Condio -2

Resultados esperados

CT001

executarX/executarA

CT002

executarY/executarB

CT003

50

executarX/executarB

CT004

500

10

executarZ/executarB

OBS: para adicionar mais casos de teste a tabela, podemos usar


a tcnica Valor de Fronteira.
Faculdade 7 de Setembro Sistemas de Informao
Engenharia de Software Prof. Ciro Coelho

Tabela de Deciso
Aplicabilidade:
Geralmente usado quando o sistema
precisa implementar regras de negcio
complexas
aplicada quando as regras podem ser
representadas como uma combinao de
condies
quando as condies tm aes discretas
associadas com elas.
Faculdade 7 de Setembro Sistemas de Informao
Engenharia de Software Prof. Ciro Coelho

Tabela de Deciso
Exerccio:
Um mdulo de um sistema acadmico avalia a situao anual de um
aluno baseado na sua mdia global. A avaliao segue a seguinte
regra:
se mediaAluno <= 5 o aluno reprovado diretamente
se mediaAluno = 5 e percentualFalta <= 10% o aluno para recuperao
se 5 <= mediaAluno < 7 o aluno vai para recuperao
se mediaAluno >= 7 o aluno aprovado por mdia
se mediaAluno >= 7 e percentualFalta >= 70% o aluno vai para
recuperao
0 <= mediaAluno <= 10

Aplique a tcnica Tabela de Deciso para derivar os casos de


testes que achar necessrio

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Pairwise
Introduo:
Situao. 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 pginas
de diferentes servidores: IIS, Apache, e WebLogic; o servidor roda em
em diferentes sistemas operacionais: Windows NT, 2000, e Linux.

Combinaes WEB:
8 browsers
3 plug-ins
6 SO cliente
3 servidores web
3 SO servidor
TOTAL: 1.296 combinaes
Faculdade 7 de Setembro Sistemas de Informao
Engenharia de Software Prof. Ciro Coelho

Pairwise
A soluo:
A resposta no tentar testar todas as
combinaes para todos os valores de
todas variveis, mas testar todos os pares
(all pairs) de variveis
Isto reduz significativamente o nmero de
testes que precisam ser criados e
executados

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Pairwise
Exemplo 1:
4 entradas
Cada entrada pode receber de 1 a 3
valores diferentes.
Combinaes: 34 = 81 testes
Pairwise: 9 testes

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Pairwise
Exemplo 2:
13 entradas
Cada entrada pode receber de 1 a 3 valores
diferentes.
Combinaes: 313 = 1.594.323 testes
Pairwise: 15 testes

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Pairwise
Exemplo 3:
20 entradas
Cada entrada pode receber de 1 a 10
valores diferentes.
Combinaes: 1020 testes
Pairwise: 180 testes

Faculdade 7 de Setembro Sistemas de Informao


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 mdicos
Mozilla Web browser: poderia ter
detectado 76% dos defeitos encontrados

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Pairwise
Por que Pairwise trabalha to bem?
No existe nenhuma resposta
cientfica
Uma hiptese que pairwise testa
todos os defeitos single-mode e doublemode

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Pairwise
Implementao:
Arrays ortogonais
Algoritmo AllPairs

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Pairwise
Arrays ortogonais :
Descoberto por Euler
Popularizou com uso em teste de hardware
um array bi-dimensional de nmeros (array[m][n])
Representao: Ln(Xm), onde X o nmero de entradas a combinar 2 a 2 (X = 1..X)
Tem a seguinte propriedade: escolhida duas colunas do array, possvel encontrar todas as combinaes de X.

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Pairwise
Exemplo 1:
X = 3, combinaes 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

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Pairwise
Array ortogonal com colunas com diferentes intervalos
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

Array Ortogonal L18(2137)


3
4
5
1
1
1
2
2
2
3
3
3
1
1
2
2
2
3
3
3
1
1
2
1
2
3
2
3
1
3
1
3
3
2
1
1
3
2
2
1
2
3
2
3
1
3
1
2
1
3
2
2
1
3
3
2
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 Informao


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 variveis
2. Determinar os valores que cada varivel pode receber
3. Localizar uma array ortogonal que tenha uma coluna para cada varivel e seus valores
4. Mapear as atribuies de teste no array ortogonal
5. Extrair os casos de teste

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Pairwise
Exemplo:
Situao. 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 pginas
de diferentes servidores: IIS, Apache, e WebLogic; o servidor roda em
em diferentes sistemas operacionais: Windows NT, 2000, e Linux.
Combinaes WEB:
8 browsers
3 plug-ins
6 SO cliente
3 servidores web
3 SO servidor
TOTAL: 1.296 combinaes

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Pairwise

1. Identificar as variveis
As variveis so:

Browser
Plug-in
Sistema operacional cliente
Servidor web
Sistema operacional servidor

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Pairwise

2. Determinar os valores de cada varivel


Os valores so:

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)

Combinaes: 8 x 3 x 6 x 3 x 3 = 1.296

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Pairwise
3. Localizar uma array ortogonal que tenha uma coluna para cada varivel e seus valores

Um array com 5 colunas = 5 variveis


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 no existe pegamos o menor dos maiores
arrays ortogonais
Faculdade 7 de Setembro Sistemas de Informao
Engenharia de Software Prof. Ciro Coelho

Pairwise
Onde encontrar o array ? http://www.research.att.com/~njas/oadir/index.html
Array mais adequado: L64(8243) = 64 casos de teste
95% casos de teste a menos (1.296)

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Pairwise

4. Mapear as atribuies 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 Informao


Engenharia de Software Prof. Ciro Coelho

Pairwise

4. Mapear as atribuies 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 Informao


Engenharia de Software Prof. Ciro Coelho

Pairwise

4. Mapear as atribuies 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 No usado
8 No usado

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Pairwise

4. Mapear as atribuies de teste no array ortogonal


Coluna 4 = Servidor WEB
Valores:

1
2
3
4

IIS
Apache
WebLogic
No usado

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Pairwise

4. Mapear as atribuies de teste no array ortogonal


Coluna 5 = Sistema operacional servidor
Valores:
1 Windows NT
2 Windows 2000
3 Linux
4 No usado

Resultado Final

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Pairwise
O que fazer com as colunas / clulas no usadas do array ?
Colunas podem ser deletadas
E as linhas que tem clulas no usadas ?

No podem ser deletadas, para manter a


ortogonalidade
Elas precisam ser substitudas por valores
vlidos

Faculdade 7 de Setembro Sistemas de Informao


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 Informao


Engenharia de Software Prof. Ciro Coelho

Pairwise
Algoritmo Allpairs:
O testador no precisa procurar os arrays ortogonais para seus testes
Gerao automtica dos pares
Ferramenta AETG: http://aetgweb.argreenhouse.com.
Ferramenta AllPairs
http://www.satisfice.com

AllPairs Entrada
AllPairs Sada

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Pairwise
Algoritmo Allpairs:
~ siginifica um Dont care (no importa)
A ferramenta AllPairs escolhe os valores menos usados para substituir pelo ~
Por que obteve 48 casos de teste?

Resposta: por causa da natureza no-balanceada no algoritmo

Todos os casos de testes so vlidos ?

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Teste de caso de uso


Jacobsondefineum"usecase"comoumcenrioquedescreveouso
deumsistemaporumatorparaatingirumobjetivoespecfico.
Um"cenrio"umaseqnciadepassosquedescreveinteraes
entreoatoreosistema.
Testessobrecasosdeusosoorientadosatransaes

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Teste de caso de uso


Ovalordeumcasodeuso:
capturaosrequisitosfuncionaisdosistemanaperspectivado
usurio
Documentaoindependentedalinguagemdeprogramao
Podeserusadoparaenvolverativamenteosusuriosnavalidao
dosrequisitos
Podeserumadocumentaobaseparacomponentes,classes,
estruturadebasededadoserelaesdosistema
Servecomoumabaseparadesenvolvercasosdetestedosistema.

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Teste de caso de uso


CasodeUsoModelagemUML

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Teste de caso de uso


CasodeUsoEspecificao
Action
Step
1
2
Main Success Scenario
A: Actor
S: System

3
4
5
6
7

Extensions

A:Selects"Registerforacourse"
A:Selectscourse(e.g.Math1060)
S:Displayscoursedescription
A:Selectssection(Mon&Wed9:00am)
S:Displayssectiondaysandtimes
A:Accepts
S:Addscourse/sectiontostudent'scourselist

2a

Coursedoesnotexist
S:Displaymessageandexit

4a

Sectiondoesnotexist
S:Displaymessageandexit

4b

Sectionisfull
S:Displaymessageandexit

6a

Studentdoesnotaccept
S:Displaymessageandexit

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Teste de caso de uso


Boasprticasparageraodoscasosdeteste
criarnomnimoumcasodetesteparaofluxoprincipalecasode
testesparacadaextenso.
Usarastcnicasclasse de equivalncia e valor de fronteira, quando
necessrio,paraselecionardadosdeentrada
Avaliaroriscodastransaes.Projetarmenoscasosdetestepara
riscosmenoresemaiscasosdetesteparariscosmaiores.

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Teste de caso de uso


iniciarcomdadosnormaisparaastransaesmaisfreqentes
combasenasfronteiras,fornecerdadosvlidoseinvlidos.
Escolhertransaesquenosomuitosusadas,massovitaisparao
sistema
violarpr-condies(seissopodeacontecernoproblemareal).
verificarseatransaodecaminhomaislongofoialcanada
executartransaesemordenslgicasdiferentesdocenrionormal

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Teste de caso de uso


Pensenasoperaesinesperadasqueousurioexecutar
Sejainvestigador

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Fluxo de dados
Amaioriadosprogramadoresjencontraramessetipodesituao:
main()
{
int x;
if (x==42){ ...}
}

Testedefluxodedadosumaferramentapoderosaparadetectaruso
imprpriodevaloresdevariveisnocdigofonte.
necessrioterconhecimentodocdigofonte.

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Fluxo de dados
Variveistemumciclodevidadefinido.Elassocriadas,sousadas,e
sodestrudas.
FORTRANeBASIC:criaoedestruioautomtica
C,C++,eJava):criaoformal;Variveissoexplicitamentedeclaradas:
int x; // x is created as an integer
string y; // y is created as a string

Variveissousadasparaalgumacomputao(a=b+1)ouusadasem
umasentenacondicional(if(a>42)).Emambas,importanteavarivel
tersidoinicializadaantesdoseuuso.
Faculdade 7 de Setembro Sistemas de Informao
Engenharia de Software Prof. Ciro Coelho

Fluxo de dados
Existemtrspossibilidadesdeaessobreumavarivelnocdigofonte:
~davarivelnoexiste(~)edepoiseladefinida(correta)
~uavarivelnoexisteedepoiselausada(incorreta)
~kavarivelnoexisteedepoiseladestruda(Killed)(incorreta)

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Fluxo de dados
Considereaseguinteseqnciadedefined(d),used(u)ekilled(k):
dd suspeito. Provavelmente um erro.
du correto. Fluxo normal.
dk suspeito. Provavelmente um erro.
ud correto. Fluxo aceitvel.
uu correto. Fluxo aceitvel.
uk correto. Fluxo normal.
kd correto. Fluxo aceitvel.
ku incorreto. Sempre um erro.
kk suspeito. Provavelmente um erro.

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Fluxo de dados

Verificar quebra do padro:


definir, usar, destruir

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Fluxo de dados

Os padres define-use-kill
para x (tomados em pares
ao percorrermos os
caminhos) so:
~define correto
define-define suspeito
define-use - correto

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Fluxo de dados

Os padres define-use-kill
para y (tomados em pares
ao percorrermos os
caminhos) so:
~use suspeito
use-define correto
define-use correto
use-kill correto
define-kill suspeito

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Fluxo de dados
Os padres define-use-kill
para z (tomados em pares
ao percorrermos os
caminhos) so:
~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 Informao
Engenharia de Software Prof. Ciro Coelho

Fluxo de Controle
Essaabordagemdetesteidentificaoscaminhosdeexecuono
cdigodeummdulodeumprogramaeentocriaeexecutacasosde
testeparacobriressescaminhos.
GrafosdeFluxo
Grafosdocumentamaestruturadecontroledomdulo
Osgrafosconsistemdosseguinteselementos:
BlocosdeProcessos
PontosdeDeciso
PontosdeJuno

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Fluxo de Controle
BlocodeProcesso

PontosdeDeciso

PontosdeJuno

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Fluxo de Controle
Exemplo:

Faculdade 7 de Setembro Sistemas de Informao


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 Informao


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 Informao


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 mdulo
Clcular a Complexidade Ciclomtica (C)
Selecionar um conjunto mnimo dos caminhos independentes
(nonlooping) = C
Criar um caso de teste para cada caminho bsico
Executar casos de testes

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Fluxo de Controle
Exemplo:

McCabedefine:
C = arestas - ns + 2
Ento,paraoexemplo
temos:
C = 24 - 19 + 2 = 7

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Fluxo de Controle
Exemplo:

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Fluxo de Controle
Exemplo:

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Fluxo de Controle
Exemplo:

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Fluxo de Controle
Exemplo:

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Fluxo de Controle
Exemplo:

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Fluxo de Controle
Exemplo:

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Fluxo de Controle
Exemplo:

Faculdade 7 de Setembro Sistemas de Informao


Engenharia de Software Prof. Ciro Coelho

Fluxo de Controle
Exemplo:

ABDEGKMQS
ACDEGKMQS
ABDFILORS
ABDEHKMQS
ABDEGKNQS
ACDFJLORS
ACDFILPRS
Esteconjuntodecasosdetesteirgarantirtantocoberturade
comandos(ns)edecises(arestas),masnogarantecoberturade
caminhos.
Faculdade 7 de Setembro Sistemas de Informao
Engenharia de Software Prof. Ciro Coelho