Professional Documents
Culture Documents
de
Unidade
Centro
de
Inform-ca
-
Universidade
Federal
de
Pernambuco
Sistemas
de
Informao
Vinicius
Cardoso
Garcia
vcg@cin.ufpe.br
Slides
originais
elaborados
por
Alexandre
Vasconcelos
O
autor
permite
o
uso
e
a
modicao
dos
slides
para
ns
did-cos
Teste
de
unidade
Inves-gar
a
qualidade
de
componentes
individuais
(ex:
mtodos,
classes)
Obje-vo:
Testar
comportamento
(especicao)
e
estrutura
interna
(lgica
e
uxo
de
dados)
Driver
de
teste
programa
que
executa
o
mdulo
a
ser
testado
usando
os
Interface dados
do
caso
de
Estrutura de dados local Condies limite teste
e
verica
o
Caminhos independentes Caminhos de tratamento de erros veredicto
Casos de teste
Resultados
Par:cionamento
Determinando par-es
Selecionando representantes
Fronteiras
Estais-cas
indicam
que
h
uma
maior
susce-bilidade
a
erros
nas
fronteiras
de
par-es
(limites
dos
-pos)
Tanto
em
dados
vlidos
quanto
invlidos
Assim,
para
x
>
0,
no
bastaria
usar
qualquer
x
>
0
(par-cionamento)
Mas
sim
x
=
1
(vlido
no
limite)
e
x
=
0
(invlido
no
limite)
Fronteiras
A
tcnica
da
seleo
de
dados
pelas
fronteiras
muito
indicada
para
inves-gar
bom
funcionamento
de
Arrays
Vetores
Algoritmos
de
busca/ordenao
Etc.
10
11
1 1 2 3 4 2 3
1 2
...
n
2 3
bloco seqencial
if-then-else
seleo
case
while
repeat-until
repetio
12
y0 4
8 y0 10
13
Critrios
de
cobertura
Tipos
Cobertura
de
instrues
Cobertura
de
decises
Cobertura
de
condies
Cobertura
de
caminhos
14
Cobertura
de
instrues
1 y<0 2 3 5 p0 6 7 y<0 9 10
[if977]
Engenharia
de
SoNware
-
SI
-
CIn
-
UFPE
15
y0 4
Critrio: cada instruo deve ser executada pelo menos 1 vez ns predicados dados (4, 0)
8 y0
Cobertura
de
instrues
read x; y:= 0; 1 2 x mpar
x par 3
Satisfaz o critrio de cobertura de instrues, mas note que o ramo 2->4 no exercitado ns {1,2,3,4,5} {1,2,3,4,6} predicados x par negativo x par positivo dados -2 2
x0 6
16
Cobertura
de
decises
1 y<0 2 3 5 p0 6 7 y<0 9 10 8 y0
Critrio: cada expresso lgica em estruturas de controle avaliada pelo menos uma vez para verdadeiro e falso (cada ramo deve ser percorrido pelo menos 1 vez). Geralmente satisfaz cobertura de instrues desde que toda instruo esteja no mesmo caminho da cobertura de deciso.
y0 4
ramos
{(1,2), (2,3), (3,5), (5,6)
predicados dados
x, y < 0 x, y = 0 (4, -1) (4, 0)
(6,7), (7,6), (6,8), (8,9), (9,10)} {(1,2), (2,4), (4,5), (5,6), (6,7), (7,6), (6,8), (8, 10)}
17
Cobertura
de
decises
read x; y:= 0; 1 2 x mpar
ns {(1,2)(2,3),(3,4),(4,5)} predicados x par negativo x par positivo dados -2 3
x par 3
x<0 5
{(1,2),(2,4),(4,6)}
x0 6 write y;
[if977]
Engenharia
de
SoNware
-
SI
-
CIn
-
UFPE
18
Cobertura
de
decises
c
1.
if
a
>=
0
and
a
<=
200
2.
then
m
:=
1
3.
else
m
:=
3
4.
Dep.
em
a...
ramos {(1,2), (2,4)} {(1,3), (3,4)} dados a=5 a = -5
[if977]
Engenharia
de
SoNware
-
SI
-
CIn
-
UFPE
19
c
2
c
3
Cobertura
de
decises/condies
c
1.
if
a
>=
0
and
a
<=
200
2.
then
m
:=
1
3.
else
m
:=
3
4.
Dep.
em
a...
ramos {(1,1A), (1A, 2), (2,4)} {(1,1A), (1A,3), (3,4)} {(1,3), (3,4)} dados a=5 a = 500 a = -5 1
a0
1A
a 200
2
Critrio: cada condio em uma deciso assume pelo menos uma vez todos os possveis resultados
20
21
Exemplo
Suponha
uma
classe
com
mtodos
inserir,
remover,
consultar,
etc.
Ento,
seqncias
como:
consultar(x)
->
inserir(x)
->
remover(x)
inserir(x)
->
inserir(x)
inserir(x)
->
consultar(x)
remover(x)
->
consultar(x)
22
23
Bibliograa
Liskov,
B.
et
al.
Program
Development
in
Java
Captulo
10
24