Académique Documents
Professionnel Documents
Culture Documents
de
So)ware
Centro
de
Inform-ca
-
Universidade
Federal
de
Pernambuco
Sistemas
de
Informao
Vinicius
Cardoso
Garcia
vcg@cin.ufpe.br
Slides
originais
elaborados
por
Ian
Sommerville
O
autor
permite
o
uso
e
a
modicao
dos
slides
para
ns
did-cos
Mo.vao
Ocorrncia de falhas humanas no processo de desenvolvimento de software considervel Processo de testes indispensvel na garantia de qualidade de software Custos associados s falhas de software justificam um processo de testes cuidadoso e bem planejado
Erro Estado intermedirio (instabilidade) Provm de uma falta Pode resultar em falha, se propagado at a sada
Conceitos fundamentais
- Validao vs. Verificao
Validao avaliao durante, ou ao final do ciclo de desenvolvimento de software para determinar se satisfaz aos requisitos especificados.
Verificao avaliao para determinar se os produtos de uma dada fase do ciclo de desenvolvimento satisfaz as condies impostas no inicio daquela.
7
Conceitos Fundamentais
Debugging vs. Testing [Amman, 2008]
Debugging: The process of finding a fault given a failure . Debugging is figuring out what's causing a problem you do know about . Testing: Evaluating software by observing its execution . Testing is trying to find problems you don't know about .
Conceitos Fundamentais
- Anlise Esttica
No
feita
em
cdgo
executavel.
Verica
contra
a
especicao
que
dene
a
estrutura
do
artefato.
Ex.:
Inspees.
60%
dos
defeitos
podem
ser
encontrados
com
anlise
est-ca.
No
verica
comportamentos
dinmicos.
Gilb
and
Graham
subs.tuem
testes
unitrios
por
inspeo[Sommerville,
2005].
Conceitos fundamentais
- Anlise Dinmica
Feito em cdigo executvel. Dada um valor de entrada, checa se a sada a esperada. Can be used to show the presence of bugs, but never to show their absence .[Meyer, 2008]
10
Teste de Modulo
Avalia o software com respeito a detalhes do design.
Teste de Integrao
Avalia o software com respeito ao design de subsistemas.
Teste de Sistemas
Avalia o software com respeito ao design da arquitetura.
Teste de Aceitao
Avalia o software com respeito a seus requisitos.
Alpha/Betha testing
Commercial Off-The-Shelf.
11
V-Model
V-Model
As
a-vidades
devem
ser
realizadas
em
paralelo
com
as
a-vidades
de
desenvolvimento.
Mostra
como
as
a-vidades
de
teste
(vericao
e
validao)
podem
ser
integradas
dentro
de
cada
fase
do
ciclo
de
vida..
12
Adapted fro
m: [http://ww
w.jot.fm/issu e
s/issue_200
7_05/colum
n1/]
13
Papis e Artefatos
Test
Plan Test
Case Test
Suite Test
Results Test
Environment
Congura-on Test
Script
Adapted from: [http://rup.hops-fp6.org/process/workflow/test/ov_tst_art.htm]
14
Noo de conabilidade
Algumas faltas escaparo inevitavelmente Tanto dos testes Quanto da depurao Falta pode ser mais ou menos perturbadora Dependendo do que se trate e em qual freqncia ir surgir para o usurio final
15
Noo de conabilidade
Assim, precisamos de uma referncia para decidir Quando liberar ou no sistema para uso Confiabilidade de software uma estimativa probabilstica Mede a freqncia com que um software ir executar sem falha
Em dado ambiente E por determinado perodo de tempo
Dados de Teste Entradas selecionadas para testar o software Casos de Teste Dados de teste, bem como sadas esperadas de acordo com a especificao (Veredicto) Cenrios especficos de execuo
17
Eccia de testes
A atividade de teste o processo de executar um programa com a inteno de descobrir um erro Um bom caso de teste aquele que apresenta uma elevada probabilidade de revelar um erro ainda no descoberto Um teste bem sucedido aquele que revela um erro ainda no descoberto
[if977]
Engenharia
de
SoLware
-
SI
-
CIn
-
UFPE
18
O
processo
de
teste
Teste
de
componentes
Teste
de
componentes
individuais
de
programa;
Geralmente
de
responsabilidade
do
desenvolvedor
do
componente
(exceto
algumas
para
sistemas
cr-cos);
Os
testes
so
derivados
da
experincia
do
desenvolvedor.
Teste
de
sistema
Teste
de
grupos
de
componentes
integrados
para
criar
um
sistema
ou
um
subsistema;
A
resposabilidade
de
uma
equipe
independente
de
teste;
Os
testes
so
baseados
em
uma
especicao
de
sistema.
[if977]
Engenharia
de
SoLware
-
SI
-
CIn
-
UFPE
19
Fases de teste
Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 20
Teste de defeitos
Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 22
Pol.cas
de
teste
Somente
testes
exaus-vos
podem
mostrar
que
um
programa
est
livre
de
defeitos.
Contudo,
testes
exaus-vos
so
impossveis.
As
pol-cas
de
teste
denem
a
abordagem
a
ser
usada
na
seleo
de
testes
de
sistema:
Todas
as
funes
acessadas
por
meio
de
menus
devem
ser
testadas;
As
combinaes
de
funes
acessadas
por
meio
dos
mesmos
menus
devem
ser
testadas;
Onde
as
entradas
de
usurio
so
fornecidas,
todas
as
funes
devem
ser
testadas
com
entradas
corretas
e
incorretas.
[if977]
Engenharia
de
SoLware
-
SI
-
CIn
-
UFPE
23
Teste
de
sistema
Envolve
a
integrao
de
dois
ou
mais
componentes
para
criar
um
sistema
ou
subsistema.
Pode
envolver
o
teste
de
um
incremento
para
ser
entregue
ao
cliente.
Duas
fases:
Teste
de
integrao
a
equipe
de
teste
tem
acesso
ao
cdigo
fonte
do
sistema
e
o
sistema
testado
medida
que
os
componentes
so
integrados.
Teste
de
releases
a
equipe
de
teste
testa
o
sistema
completo
a
ser
entregue
como
uma
caixa-preta.
[if977]
Engenharia
de
SoLware
-
SI
-
CIn
-
UFPE
24
Teste
de
integrao
Envolve
a
construo
de
um
sistema
a
par-r
de
seus
compontes
e
o
teste
do
sistema
resultante
dos
problemas
ocorridos
nas
interaes
entre
componentes.
Integrao
top-down
Desenvolver
o
esqueleto
do
sistema
e
preench-lo
com
componentes.
Integrao
bomom-up
Integrar
componentes
de
infra-estrutura
e,
em
seguida,
adicionar
componentes
funcionais.
Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 26
Teste
de
releases
o
processo
de
teste
de
um
release
de
sistema
que
ser
distribudo
aos
clientes.
A
meta
primria
aumentar
a
conana
do
fornecedor
de
que
o
sistema
atende
aos
seus
requisitos.
Teste
de
releases
,
geralmente,
um
teste
caixa-preta
ou
funcional
baseado
somente
na
especicao
de
sistema;
Os
testadores
no
tm
conhecimento
da
implementao
do
sistema.
[if977]
Engenharia
de
SoLware
-
SI
-
CIn
-
UFPE
27
Teste caixa-preta
Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 28
Diretrizes
de
teste
Diretrizes
so
recomendaes
para
a
equipe
de
teste
para
auxili-los
a
escolher
os
testes
que
revelaro
defeitos
no
sistema
Escolher
entradas
que
forcem
o
sistema
a
gerar
todas
as
mensagens
de
erro;
Projetar
entradas
que
causem
overow
dos
buers;
Repe-r
a
mesma
entrada
ou
srie
de
entradas
vrias
vezes;
Forar
a
gerao
de
sadas
invlidas;
Forar
resultados
de
clculo
a
serem
muito
grandes
ou
muito
pequenos.
[if977]
Engenharia
de
SoLware
-
SI
-
CIn
-
UFPE
29
Cenrio de teste
Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 30
Testes de sistema
Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 31
Casos
de
uso
Casos
de
uso
podem
ser
uma
base
para
derivar
os
testes
de
um
sistema.
Eles
ajudam
a
iden-car
as
operaes
a
serem
testadas
e
a
projetar
os
casos
de
teste
necessrios.
A
par-r
de
um
diagrama
de
seqncia
associado,
as
entradas
e
sadas
a
serem
criadas
para
os
testes
podem
ser
iden-cadas.
32
Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 33
Teste
de
desempenho
Parte
do
teste
de
releases
pode
envolver
teste
de
propriedades
emergentes
de
um
sistema,
tais
como
desempenho
e
conabilidade.
Testes
de
desempenho
envolve,
geralmente,
o
planejamento
de
uma
srie
de
testes
onde
a
carga
constantemente
aumentada
at
que
o
desempenho
do
sistema
se
torne
inaceitvel.
Transaes
em
BD
Terminais
[if977]
Engenharia
de
SoLware
-
SI
-
CIn
-
UFPE
34
Teste
de
estresse
So
exerccios
do
sistema
alm
de
sua
carga
mxima
de
projeto.
O
estresse
de
um
sistema
causa,
freqentemente,
o
surgimento
de
defeitos.
O
estresse
de
sistema
testa
o
comportamento
de
falha,
pois
os
sistemas
no
devem
falhar
catastrocamente.
O
teste
de
estresse
verica
uma
perda
inaceitvel
de
servio
ou
de
dados.
O
teste
de
estresse
par-cularmente
relevante
para
sistemas
distribudos
que
podem
exibir
degradao
severa
quando
uma
rede
se
torna
sobrecarregada.
[if977]
Engenharia
de
SoLware
-
SI
-
CIn
-
UFPE
35
Teste
de
estresse
Exemplos
Pouca
memria
ou
rea
em
disco,
alta
compe-o
por
recursos
compar-lhados
(ex:
vrios
acessos/ transaes
no
BD
ou
rede)
Exemplo:
pode-se
desejar
saber
se
um
sistema
de
transaes
bancrias
suporta
uma
carga
de
mais
de
100
transaes
por
segundo
ou
se
um
sistema
operacional
pode
manipular
mais
de
200
terminais
remotos
36
Tipos
de
teste
Teste
de
segurana
e
controle
de
acesso
Verica
se
todos
os
mecanismos
de
proteo
de
acesso
esto
funcionando
sa-sfatoriamente
Tipos
de
teste
Teste
de
congurao
ou
portabilidade
Verica
o
funcionamento
adequado
do
sistema
em
diferentes
conguraes
de
hardware/ soLware
O
que
testar
Compa-bilidade
do
soLware/hardware
Congurao
do
servidor
Tipos
de
conexes
com
a
Internet
Compa-bilidade
com
o
browser
[if977]
Engenharia
de
SoLware
-
SI
-
CIn
-
UFPE
38
Tipos
de
teste
Teste
de
instalao
e
desinstalao
Verica
a
correta
instalao
e
desinstalao
do
sistema
para
diferentes
plataformas
de
hardware/ soLware
e
opes
de
instalao
O
que
testar
Compa-bilidade
do
hardware
e
soLware
Funcionalidade
do
instalador/desinstalador
sob
ml-plas
opes/condies
de
instalao
GUI
do
programa
instalador/desinstalador
[if977]
Engenharia
de
SoLware
-
SI
-
CIn
-
UFPE
39
Tipos
de
teste
Teste
de
documentao
Verica
se
a
documentao
corresponde
informao
correta
e
apropriada.
Garante que o sistema funciona adequadamente durante um ciclo de a-vidades rela-vas ao negcio `
[if977]
Engenharia
de
SoLware
-
SI
-
CIn
-
UFPE
40
Teste
de
componentes
Teste
de
componente
ou
unitrio
o
processo
de
teste
de
componentes
individuais
isolados.
um
processo
de
teste
de
defeitos.
Os
componentes
podem
ser:
Funes
individuais
ou
mtodos
de
um
objeto;
Classes
de
objeto
com
vrios
atributos
e
mtodos;
Componentes
compostos
com
interfaces
denidas
usadas
para
acessar
sua
funcionalidade.
[if977]
Engenharia
de
SoLware
-
SI
-
CIn
-
UFPE
41
A
herana
torna
mais
diwcil
o
projeto
de
testes
de
classe
de
objeto
quando
as
informaes
a
serem
testadas
no
so
localizadas.
[if977]
Engenharia
de
SoLware
-
SI
-
CIn
-
UFPE
42
Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 43
Teste
de
interfaces
Os
obje-vos
so
detectar
defeitos
devido
a
erros
de
interface
ou
suposies
invlidas
sobre
interfaces.
par-cularmente
importante
para
o
desenvolvimento
orientado
a
objetos
quando
os
objetos
so
denidos
pelas
suas
interfaces.
[if977]
Engenharia
de
SoLware
-
SI
-
CIn
-
UFPE
45
Teste de interfaces
Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 46
Tipos
de
interfaces
Interfaces
de
parmetros
Os
dados
so
passados
de
um
procedimento
para
outro.
Interfaces
de
procedimentos
Um
subsistema
engloba
um
conjunto
de
procedimentos
para
serem
chamados
por
outros
subsistemas.
47
Erros
de
interface
Mau
uso
de
interface
Um
componente
chamador
chama
um
outro
componente
e
faz
mau
uso
de
sua
interface,
por
exemplo,
parmetros
em
ordem
errada.
Erros
de
-ming
Os
componentes
chamado
e
chamador
operam
em
velocidades
diferentes,
e
informaes
desatualizadas
so
acessadas.
[if977]
Engenharia
de
SoLware
-
SI
-
CIn
-
UFPE
48
Requisitos do LIBSYS
Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 52
Testes do LIBSYS
Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 53
Teste
de
par.es
Dados
de
entrada
e
resultados
de
sada
caem
freqentemente
em
classes
diferentes,
onde
todos
os
membros
de
uma
classe
so
relacionados.
Cada
uma
dessas
classes
uma
par.o
de
equivalncia
ou
domnios
onde
o
programa
se
comporta
de
maneira
equivalente
para
cada
membro
da
classe.
Casos
de
teste
devem
ser
escolhidos
a
par-r
de
cada
par-o.
[if977]
Engenharia
de
SoLware
-
SI
-
CIn
-
UFPE
54
Par.cionamento de equivalncia
Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 55
Par.es de equivalncia
Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 56
Teste
estrutural
Algumas
vezes
chamado
de
teste
caixa- branca.
a
derivao
de
casos
de
teste
de
acordo
com
a
estrutura
do
programa.
O
conhecimento
do
programa
usado
para
iden-car
casos
de
teste
adicionais.
O
obje-vo
exercitar
todas
as
declaraes
do
programa
(no
todas
as
combinaes
de
caminhos).
[if977]
Engenharia
de
SoLware
-
SI
-
CIn
-
UFPE
57
Teste estrutural
Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 58
Teste
de
caminho
O
obje-vo
do
teste
de
caminho
assegurar
que
o
conjunto
de
casos
de
teste
tal
que
cada
caminho
pelo
programa
executado
pelo
menos
uma
vez.
O
ponto
de
par-da
do
teste
de
caminho
um
uxograma
de
programa
que
mostra
os
ns
que
representam
as
decises
do
programa
e
arcos
que
representam
o
uxo
de
controle.
Declaraes
com
condies
so,
portanto,
ns
no
uxograma.
[if977]
Engenharia
de
SoLware
-
SI
-
CIn
-
UFPE
59
Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 60
Caminhos
independentes
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
14
1,
2,
3,
4,
5,
14
1,
2,
3,
4,
5,
6,
7,
11,
12,
5,
1,
2,
3,
4,
6,
7,
2,
11,
13,
5,
Casos
de
teste
devem
ser
derivados
de
tal
modo
que
todos
os
caminhos
sejam
executados.
Um
analisador
dinmico
de
programa
pode
ser
usado
para
vericar
se
os
caminhos
foram
executados.
[if977]
Engenharia
de
SoLware
-
SI
-
CIn
-
UFPE
61
Complexidade
ciclom.ca
CFG1 CFG2 CFG3
V(g)= 1 2 + 2 = 1
V(g)= 5 6 + 2 = 1
Ian
Sommerville,
Engenharia
de
SoLware,
8.
edio.
Captulo
23
V(g)= 8 6 + 2 = 4
63
Complexidade
ciclom.ca
Baixa
a
moderada
(abaixo
de
20)
indica
um
programa
simples
Alta
(acima
de
20)
indica
um
programa
complexo
Muita
alta
(acima
de
50)
caracteriza
um
programa
muito
diwcil
de
testar
64
Complexidade
ciclom.ca
Sinal
de
estrutura
de
controle
de
uxo
complicada
No
captura
outros
aspectos
da
diculdade
lgica
que
podem
levar
a
diculdades
no
teste
Poucas
evidncias
de
que
uma
ferramenta
de
previso
de
esforo
de
teste
mais
convel
do
que
linhas
de
cdigo
65
Automao
de
teste
Teste
uma
fase
dispendiosa
do
processo.
Os
workbenches
de
teste
fornecem
uma
variedade
de
ferramentas
para
reduzir
o
tempo
necessrio
e
os
custos
totais
de
teste.
Sistemas
tais
como
o
JUnit
apiam
a
execuo
autom-ca
de
testes.
A
maioria
dos
workbenches
de
teste
so
sistemas
abertos
porque
as
necessidades
de
teste
so
especcas
da
organizao.
Eles
so,
algumas
vezes,
diwceis
de
integrar
com
workbenches
de
projeto
e
anlise
fechados.
[if977]
Engenharia
de
SoLware
-
SI
-
CIn
-
UFPE
66
Um workbench de testes
Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 67
Leituras
recomendadas
SOMMERVILLE,
I.
Engenharia
de
SoLware.
9.
Ed.
So
Paulo:
Pearson
Educa-on,
2011
Captulo
23
68