Você está na página 1de 42

Fundamentos em

Teste de Software
Vinicius V. Pessoni
viniciuspessoni@gmail.com

Objetivos do treinamento
1. Epor os fundamentos de Teste de Software!
". #onceituar os $%veis de Teste!
&. 'etal(ar sobre as T)cnicas e Tipos de Teste!
*. +presentar as $ormas e Padr,es de Teste.

1. Fundamentos de Teste

+tividades de V-V
. + constru/0o de software depende da
(abilidade das pessoas 1erros acabam
surgindo2!
.+s atividades de V-V t3m a finalidade de
garantir o 4modo5 e 4o 6ue5 est7 sendo
constru%do!
.'ivididas em est7ticas 1n0o re6uer a
eecu/0o e eist3ncia de software2 e
din8micas 1eecu/0o do software2.


Objetivo do Teste
. 9edu:ir a probabilidade de incid3ncia de
erro no cliente
;
. <inimi:ar riscos ao neg=cio do cliente
;
. +tender as necessidades do cliente
1neg=cio> contratual> legal> etc.2
?
Maior satisfao do cliente

#onceitos
. E99O@ trata.se de uma a/0o (umana
1e.@ n0o entendimento de como eecutar um
c7lculo2
. 'EFEATO@ #ausado por um erro de
entendimento
1e.@ c=digo com f=rmula de c7lculo mal
escrita2
. F+BC+@ Tentativa de eecu/0o de um
defeito. 1e.@ eecu/0o de um c7lculo
gerando resultados indevidos2

O 6ue leva a Erros> 'efeitos e
Fal(as
. Press0o dos staDe(olders!
. Pra:os de atendimento E demandas
inade6uados!
. Ftili:a/0o de tecnologia inade6uada!
. Falta de (abilidade da e6uipe!
. $0o entendimento das necessidades do
cliente!
. Fator (umano.

Por 6ue testarG
. <otiva/0o por maior seguran/a aos
clientes!
. Oferecer maior continuidade do servi/o ao
neg=cio do cliente!
. <el(oria da 6ualidade dos softwares!
. Husca pela confiabilidade do software junto
aos clientes!
. Visando redu/0o de gastos em corre/0o de
bugs.

Iuanto E confiabilidade do software
Jan Fev <ar +br <ai Jun Jul +go Set
K
1
"
&
*
L
M
N
1
*
"
&
L
&
*
L
M
$ota
#onfiabilidade
Tempo
Fal(a ocorridaO
Fal(a ocorridaO

Iuanto ao custo do defeito
#oncep/0o Elabora/0o #onstru/0o Transi/0o
K
"KKK
*KKK
MKKK
PKKK
1KKKK
1"KKK
9Q
#usto do
'efeito
Tempo

Iuanto E 6ualidade do software
1ASO R1"M2
I
u
a
l
i
d
a
d
e

d
e

S
o
f
t
w
a
r
e
Haia
+lta
Poucos 'efeitos
<uitos 'efeitos
I
u
a
l
i
d
a
d
e

d
o
s

T
e
s
t
e
s
Haia
+lta
<uitos 'efeitos
Poucos 'efeitos

Iuanto testarG
. 9iscos eistentes@
S T)cnicos!
S Projetos!
S $eg=cio.
. 9estri/,es eistentes
S #ronograma!
S Financeiro.

Entendendo o 6ue ) TEST+9
4Testar ) analisar um programa com a inten/0o
de descobrir erros e defeitos.5 1<Ters2
4O teste de programas pode ser usado para
mostrar a presen/a de defeitos>
mas nunca para mostrar a sua aus3ncia.5
1'ijDstra2
Testar ) medir a 6ualidade e
funcionalidade de um sistema.

Iuando testarG
. Tradicional@
. Testes s0o reali:ados ao final da implementa/0o!
. Visam provar 6ue o software funciona!
. Pode ser eecutado por 6ual6uer profissional.

Iuando testarG
. <el(or Pr7tica@
. 9eali:ar testes durante o ciclo de vida do software.
. Provar 6ue o software n0o funciona!
. Fa:er uso de profissionais especiali:ados em teste
de software.

Princ%pios do Teste de Software
1. Teste demonstra presen/a de defeitos!
". Teste eaustivo ) imposs%vel!
&. Teste antecipado!
*. +grupamento de defeitos!
L. Paradoo do pesticida!
M. Teste depende do conteto!
N. + ilus0o da aus3ncia de erro.

Psicologia do Teste de Software
. Andepend3ncia nos testes
. Pr=prio desenvolvedor!
. Outro desenvolvedor!
. E6uipe de teste!
. Empresa de teste.
. Adentificar e relatar defeitos
. #uriosidade!
. Pessimismo profissional!
. Ser cr%tico!
. +ten/0o aos detal(es!
. Eperi3ncia em identificar defeitos!
. #omunica/0o eficiente com o desenvolvimento.

Psicologia do Teste de Software
. Andepend3ncia nos testes
. Pr=prio desenvolvedor!
. Outro desenvolvedor!
. E6uipe de teste!
. Empresa de teste.
. Adentificar e relatar defeitos
. #uriosidade!
. Pessimismo profissional!
. Ser cr%tico!
. +ten/0o aos detal(es!
. Eperi3ncia em identificar defeitos!
. #omunica/0o eficiente com o desenvolvimento.

Processo de Teste . P'#+

Fundamentos do Processo de
Teste de Software
Fm processo de teste b7sico deve contemplar@
. Planejamento e controle!
. +n7lise e modelagem!
. Amplementa/0o e eecu/0o!
. +valia/0o de crit)rios de sa%da e relat=rios!
. +tividade de encerramento dos testes.
. <el(oriaU#orretivaUPreventiva.

Entrada
Fundamentos do Processo de
Teste de Software 1AEEE 1""KN2
. Prover uma metodologia de trabal(o> ferramentas> e
profissionais de forma a colaborar com o processo de
desenvolvimento de software da organi:a/0o> onde@
Fun/,es
9egras
Tarefas Sa%das
Fun/,es
9egras
Tarefas

Fundamentos do Processo de
Teste de Software
. Principais fun/,es de um processo de teste@
. Gestor da Qualidade: respons7vel por garantir o cumprimento
dos processos!
. Gerente de Teste: respons7vel em definir e acompan(ar os
projetos de testes!
. Lder de Teste: respons7vel por auiliar tecnicamente e
coordenar as atividades de testes!
. Arquiteto de Teste: respons7vel pela disponibilidade de todo
ambiente de teste!
. Analista de Teste: respons7vel em modelar os cen7rios de
testes e gerar os scripts de testes automati:ados 6uando necess7rio!
. Testador: respons7vel em eecutar os testes e reportar os
resultados obtidos!
. Usurio: respons7vel pelos testes de aceita/0o 1cliente2.

Processo em 4V5
V
e
r
i
f
i
c
a
/
0
o
V
a
l
i
d
a
/
0
o

". $%veis de Testes

$%veis de Teste . Fnidade
. Fnidade 1programa> m=dulo> objetos ou classes2 de software a ser
testada separadamente!
. Fso de controladores 1drivers2 e simuladores 1stubs2!
. Funcionais> n0o.funcionais> estruturais> desempen(o> cobertura>
etc!
. +cesso ao c=digo fonte!
. Eecutado em ambiente de desenvolvimento!
. Eecutado pelo pr=prio desenvolvedor!
. $0o (7 registro de defeitos identificados> visto 6ue s0o corrigidos
imediatamente!
. T'' (Test Driven Development).

$%veis de Teste . Antegra/0o
. Testa a integra/0o entre os diversos componentes de software
criados!
. Sistemas> m=dulos> e6uipamentos> classes> etc!
. Funcionais> n0o.funcionais> desempen(o> estruturais> etc!
. #ontrole reali:ado em apenas um lado 1componente2!
. Podem ocorrer ap=s testes de unidade e ap=s testes de sistemas!
. 9egistro de defeitos depende do momento e de 6uem eecuta os
testes integrados!
. Foco dos testes apenas na comunica/0o dos componentes.

$%veis de Teste . Sistema
. Valida/0o do comportamento do sistema!
. E6uipe e ambiente de teste independente!
. Funcionais e n0o.funcionais!
. Testes baseados em documenta/0o> modelos> riscos> neg=cios> etc!
. 9egistro de defeitos efetivo.

$%veis de Teste . +ceite
. Valida/0o reali:ada pelos staDe(olders 1clientes> usu7rios> etc.2!
. Adentificar defeitos n0o ) o foco!
. Pode ser aplicada em momentos distintos 1usabilidade> re6uisitos>
etc.2!
. Teste de +ceite Operacional 1bacDup> recupera/0o> seguran/a>
etc.2!
. Teste de +ceite #ontrato 1cumprimento de acordo@ legisla/0o> etc.2!
. Testes +lfa e Heta> valida/,es reali:adas por clientes 1fora da
empresa desenvolvedora2.

&. Tipos de Testes

Tipos de Teste . Funcional
. Validar o funcionamento do sistema conforme especificado 1est7
construindo o produto certoG2!
. +s regras de neg=cio est0o sendo cumpridas.
. #onsidera o comportamento eterno do software!
. Pode ser eecutado em todos n%veis de teste.

Tipos de Teste V $0o Funcional
. Husca a valida/0o de aspectos n0o funcionais 1como est7
funcionandoG2 do software como@
. 'esempen(o> #arga> Stress> Fsabilidade> etc.
. #onsidera o comportamento interno do software!
. Tempo de resposta> envio de email> portabilidade> etc.
. Pode ser eecutado em todos n%veis de teste.

Tipos de Teste V Estrutural
. Husca a valida/0o de aspectos estruturais do software como@
. #obertura de c=digo> senten/a 1comandos> fun/,es2> decis0o>
etc.
. Weralmente utili:a.se ferramentas espec%ficas para eecu/0o
destas atividades.
. Pode ser eecutado em todos n%veis de teste.

Tipos de Teste V <udan/as
. Teste de #onfirma/0o> valida a remo/0o de defeitos!
. Teste de 9egress0o
. eecutado 6uando ocorre altera/0o de software ou ambiente!
. valida se n0o foram gerados novos defeitos.
. Podem ser eecutados em testes funcionais> n0o funcionais e
estruturais!
. Testes 6ue devem ser repetidos constantemente!
. #andidatos a automati:a/0o.

#lassifica/0o de Teste
. T)cnica #aia.Preta@
. 'eriva condi/,es e casos de teste de documenta/,es formais!
. Funcionais e n0o.funcionais do software!
. $0o considera aspectos internos 1c=digo2.
. T)cnica #aia.Hranca@
. #onsidera aspectos internos do software 1c=digo2!
. Foco nas estruturas dos c=digos 1cobertura2!
. 'eriva condi/,es e casos de testes de forma sist3mica.

T)cnicas de Testes . #aia.Preta
. Parti/0o de e6uival3ncia@ Wrupo de testes cujo resultado sejam
similares 1entrada> sa%da2
E.@ Para uma regra onde " X X 1K
Parti/0o 1 ? nYmeros menores 6ue "
Parti/0o " ? nYmeros entre " e 1K
Parti/0o & ? nYmeros superiores a 1K

T)cnicas de Testes . #aia.Preta
. +n7lise de valor limite@
. Etens0o da parti/0o de e6uival3ncia!
. <aior probabilidade de erros!
. Bimite v7lido e limite inv7lido!
E.@ Para uma regra onde " X X 1K
Bimite inv7lido ? 1 e 11
Bimite v7lido ? " e 1K

T)cnicas de Testes . #aia.Preta
. Tabela de decis0o@
. +n7lise de especifica/0o para identificar condi/,es e a/,es do sistema!
. 'efinir conjunto de condi/,es necess7rio para eecu/0o de uma ou mais
a/,es@
Iuantidade de 9egras@
Possibilidades@ " 1Sim ou $0o2
#ondi/,es@ &
Itde 9egras ? " " " ? P

T)cnicas de Testes . #aia.Preta
. Transi/0o de estados@
. Ftili:a.se do diagrama de transi/0o de estado!
. Os estados s0o identific7veis e finitos!
. Adentificar e eercitar todas transi/,es v7lidas e inv7lidas.

T)cnicas de Testes . #aia.Preta
. #aso de Fso@
. Antera/,es entre usu7rio e sistema gerando resultado relevante
. Preocupa/0o com as pr).condi/,es e p=s.condi/,es!
. #obrir os fluos eistentes 1principal> alternativos e ece/0o2!
. Tratar os pontos de etens0o.

T)cnicas de Testes . #aia.Hranca
. Teste e cobertura de Senten/a 1#omando2@
. +n7lise de cobertura de comandos eecut7veis eistentes no
c=digo!
. Ftili:ados para aumentar a cobertura dos testes.
. Teste e cobertura de 'ecis0o@
. Teste de controle de fluo!
. Ftili:ados para aumentar a cobertura dos testes.
. Observa/0o@ 1KKZ de cobertura de decis0o> garante 1KKZ de
cobertura de senten/a> mas $[O vice.versa.

T)cnicas de Testes . Eperi3ncia
. +ta6ue de fal(a@
. <apear pontos de poss%veis defeitos!
. Eperi3ncia com testes!
. #on(ecimento do softwareUneg=cio.
. Testes eplorat=rios@
. +us3ncia de especifica/,es!
. Pra:os curtos!
. #omplemento aos testes formais.

Escol(endo as t)cnicas de testes
. Fatores a serem considerados@
. Tipo de sistema!
. 9e6uisitos contratuais!
. #liente!
. Objetivos do teste!
. 9iscos do projeto!
. #iclo de desenvolvimento!
. <aturidade!
. Tempo!
. 'in(eiro> etc.