Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
35
35
Captulos 18 e 19
35
35
35
35
35
Se erros gra!es forem encontrados com regularidade EF a qualidade e a confia4ilidade de software s(o suspeitas Se erros facilmente corrig:!eis forem encontrados EF a qualidade e a confia4ilidade do software est(o aceit!eis ou os testes s(o inadequados para re!elar erros gra!es Se n(o for encontrado erro EF a configura'(o de teste n(o foi suficientemente ela4orada e que erros est(o escondidos no software
Tcnicas de Teste(
Tcnicas e Estratgias de Teste de Software 35
<3 Testes Estruturais !ai"a Branca# Gaseia3se num minucioso e)ame dos detalhes procedimentais. S(o testados os caminhos lHgicos atra!s do software# fornecendo3se casos de teste que pIem ; pro!a con%untos espec:ficos de condi'Ies eJou la'os. = $ Testes %uncionais !ai"a &reta# 5efere3se aos testes que s(o reali/ados a partir das especifica'Ies das interfaces *entradas e sa:das- do programa. S(o usados para demonstrar que as fun'Ies dos softwares s(o operacionais# que a entrada adequadamente aceita e a sa:da corretamente produ/idaB que a integridade das informa'Ies e)ternas mantida. = $ Testes Baseados e' Erros KL Gaseiam3se na inclus(o de erros propositais *artificiais- como forma de re!elar erros e)istentes pre!iamente *naturais-. <L 0ornecem indicadores para gerenciar o processo de teste *porcentagem de erros remanescentes# qualidade dos casos de testes-
35
35
35
)a&inho %ndependente
Qualquer caminho atra!s do programa que introdu/a pelo menos um no!o con%unto de instru'Ies de processamento ou uma no!a condi'(o.
35
&on%unto Gsico para o ,rafo de 0lu)o !a'in(o +: <3<< !a'in(o ,: <3=333N353<K3<3<< !a'in(o -: <3=333P3Q3R3<K3<3<< !a'in(o .: <3=333P3S3R3<K3<3<<
,rafo de 0lu)o
35
)o&ple$idade )iclo&+tica
M uma mtrica de software que proporciona uma medida quantitati!a da comple)idade lHgica de um programa. Quando usado no conte)to do mtodo de teste de caminho 4sico# o !alor computado da comple)idade ciclomtica define o nTmero de ca'in(os independentes do con%unto 4sico de um programa e oferece um li'ite '"i'o para o nTmero de testes que de!e ser reali/ado para garantir que todas as instru'Ies se%am e)ecutadas pelo menos uma !e/. " comple)idade ciclomtica computada numa das 3 formas seguintes: <3 . nTmero de regiIes do grfico de flu)o. =3 6*,- E E3?U= onde E o nTmero de ramos do grafo e ? o nTmero de nHs do grafo de flu)o , 33 6*,- E $U< onde $ o nTmero de nHs predicati!os *nHs que contm uma condi'(o- contidos no grafo de flu)o ,
Tcnicas e Estratgias de Teste de Software 35
35
. !alor de 6*,- oferece um limite m)imo no nTmero de testes que de!e ser pro%etado e e)ecutado para garantir a co4ertura de todas as instru'Ies de programa.
35
35
procedimento MAIOR(A:VETOR; T:inteiro; var MAX:inteiro); variaveis I,M:inteiro Inicio M A[1]; I ; en!"anto I T #a$a se A[I] % M ent&o MA[I] II'1 sen&o II'1 #im se /, 0, 1, 2, Tcnicas 3e , Estratgias de Teste de Software 35 #im en!"anto MAXM; #im do procedimento
&omple)idade &iclomtica <3 . grafo de flu)o tem 3 regiIes =3 6*,- E R ramos 3 Q nHs U = E 3 33 6*,- E = nHs predicati!os U < E 3 " &omple)idade &iclomtica 3
Tcnicas e Estratgias de Teste de Software 35
&aminhos &aminho <: &aminho =: &aminho 3: <# =# 3# R# <K <# =# 3# N# 5# P# Q# 3# R# <K <# =# 3# N# S# Q# 3# R# <K
35
35
procedimento MAIOR(A:VETOR; T:inteiro; var MAX:inteiro); variaveis I,M:inteiro Inicio /, 0, 1, 2, 3, 4, 5, 6, 7, /8 , M A[1]; I ; en!"anto I T #a$a se A[I] % M ent&o MA[I] II'1 sen&o II'1 #im se #im en!"anto MAXM; #im do procedimento
&aminhos !a'in(o +: <# =# 3# R# <K "E*<#3TEK 5esultado Esperado EF @a)E< !a'in(o ,: <# =# 3# N# 5# P# Q# 3# R# <K "E*<#3TE= 5esultado Esperado EF @a)E3 !a'in(o -: <# =# 3# N# S# Q# 3# R# <K "E*3#<TE= 5esultado Esperado EF @a)E3
35
35
-articiona&ento de E9#i!al:ncia
M um mtodo de teste que di!ide o do'1nio de entrada de um programa em classes de dados e0uival2ncia# a partir das quais os casos de teste podem ser deri!ados. <3 Se o dom:nio de entrada e)igir um intervalo# s(o definidas uma classe de equi!alncia !lida e duas classes de equi!alncia in!lidas. =3 Se o dom:nio de entrada e)igir um valor espec1fico# s(o definidas uma classe de equi!alncia !lida e duas classes de equi!alncia in!lidas. 33 Se o dom:nio de entrada especificar um mem4ro de um con)unto# uma classe de equi!alncia !lida e uma classe de equi!alncia in!lida s(o definidas. N3 Se o dom:nio de entrada for *ooleano# uma classe de equi!alncia !lida e uma classe de equi!alncia in!lida s(o definidas. .s casos de teste s(o definidos para cada classe de equi!alncia
35
35
35
35
35
35
Teste de Unidade: concentra3se em cada unidade do software# de acordo com o que implementado no cHdigo fonte. >tili/a as tcnicas de teste de cai)a 4ranca e cai)a preta. Teste de Integrao: concentra3se no pro%eto e na constru'(o da arquitetura de software. >tili/a principalmente as tcnicas de teste de cai)a preta. Teste de Validao: os requisitos esta4elecidos como parte da anlise de requisitos de software s(o !alidados em rela'(o ao software que foi constru:do. "lfa3 e Geta3teste. Teste de Siste'a: o software e outros elementos do sistema s(o testados como um todo. Teste de seguran'a e recupera'(o.
Tcnicas e Estratgias de Teste de Software 35
Teste de =nidade
" interface com o mHdulo testada para ter a garantia de que as informa'Ies fluem para dentro e para fora da unidade de programa que se encontra so4 teste. " estrutura de dados local e)aminada para ter a garantia de que dados arma/enados temporariamente mantm sua integridade durante todos os passos de e)ecuc(o. "s condi7es de li'ite s(o testadas para ter a garantia de que o mHdulo opera adequadamente nos limites esta4elecidos para demarcarem ou restringirem o processamento. Todos os ca'in(os independentes atra!s da estrutura de controle s(o e)ercitados para ter a garantia de que todas as instru'Ies de um mHdulo foram e)ecutadas pelo menos uma !e/. Todos os ca'in(os de trata'ento de erros s(o testados.
35
>m !e/ que o mHdulo n(o um programa indi!idual# um software driver eJou stu* de!e ser desen!ol!ido para cada unidade de teste. Driver 3 na maioria das aplica'Ies um programa principal que aceita dados de caso de teste# passa tais dados para o mHdulo a ser testado e imprime os dados rele!antes. Stu* ou programa simulado 3 ser!em para su4stituir mHdulos que este%am su4ordinados *chamados pelo- ao mHdulo a ser testado. >sa a interface do mHdulo su4ordinado# pode fa/er manipula'(o de dados m:nima# imprime !erifica'(o de entrada e retorna.
Tcnicas e Estratgias de Teste de Software 35
Teste de %ntegrao
. o4%eti!o # a partir dos mHdulos testados ao n:!el de unidade# construir a estrutura de programa que foi determinada pelo pro%eto.
35
Integrao op!"own
.s mHdulos s(o integrados mo!imentando3se de cima para 4ai)o# atra!s da hierarquia de controle# iniciando3se do mHdulo de controle principal. .s mHdulos su4ordinados ao mHdulo de controle principal s(o incorporados ; estrutura de uma maneira dept($first *primeiro pela profundidade- ou *readt($first *primeiramente pela largura-.
35
Teste de %ntegrao
, %ntegrao Top,Down
$assos do processo de integra'(o: <3 . mHdulo de controle usado como um driver de teste e os stu*s s(o su4stitu:dos para todos os mHdulos diretamente su4ordinados ao mHdulo de controle principal. =3 ependendo da a4ordagem de integra'(o escolhida# os stu*s su4ordinados s(o su4stitu:dos# um de cada !e/ por mHdulos reais. 33 Testes s(o reali/ados ; medida que cada mHdulo integrado. N3 urante a conclus(o de cada con%unto de testes# outro stu* su4stitu:do pelo mHdulo real. 53 Teste de regresso 3 *isto # a reali/a'(o de todos ou de alguns dos testes anteriores- pode ser reali/ado a fim de garantir que no!os erros n(o tenham sido introdu/idos.
35
Teste de ;alidao
"o trmino da ati!idade de teste de integra'(o# o software est completamente montado como um pacote# erros de interface foram desco4ertos e corrigidos e uma srie final de testes de software 3 os testes de validao 3 pode iniciar3se. " !alida'(o 4em sucedida quando o software funciona de uma maneira ra/oa!elmente esperada pelo cliente. " Especificao de :e0uisitos de Soft;are contm os crit6rios de validao que formam a 4ase para uma a4ordagem ao teste de !alida'(o. " !alida'(o do software demonstram a conformidade com os requisitos. . plano e o procedimento de teste s(o pro%etados para garantir que: todos os requisitos funcionais se%am satisfeitos todos os requisitos de desempenho se%am conseguidos a documenta'(o este%a correta outros requisitos se%am cumpridos: porta4ilidade# compati4ilidade# remo'(o de erros e manuteni4ilidade
Tcnicas e Estratgias de Teste de Software 35
Teste de ;alidao
, Re!iso de )onfig#rao
>m elemento importante do processo de !alida'(o a reviso de configurao ou auditoria/ . propHsito dessa re!is(o garantir que todos os elementos da configura'(o de software tenham sido adequadamente desen!ol!idos# est(o catalogados e tm os detalhes necessrios para apoiar a fase de manuten'(o do ciclo de !ida do software.
35
Teste de ;alidao
M !irtualmente imposs:!el que se pre!e%a como o cliente real'ente usar um programa. "s instru'Ies de uso podem ser mal3interpretadas# com4ina'Ies estranhas de dados podem ser regularmente usadas# sa:das que pareciam claras ao analista podem ser inintelig:!eis para um usurio em campo.
S.0TD"5E &>ST.@+[" . $"5" >@ &1+E?TE 3
s(o reali/ados testes de aceitao# reali/ados pelo usurio final para capacit3lo e para !alidar todos os requisitos. pode !ariar de um test drive informal a uma srie de testes plane%ados.
S.0TD"5E ESE?6.16+ . &.@. >@ $5. >T. $"5" @>+T.S &1+E?TES 3
Teste <lfa 3 M le!ado a efeito por um cliente nas instala'Ies do desen!ol!edor. . software usado num am4iente controlado com o desen!ol!edor Volhando so4re os om4rosV do usurio e registrando erros e pro4lemas de uso. Teste Beta 3 reali/ado nas instala'Ies do cliente pelo usurio final do software. . desen!ol!edor n(o est presente. . cliente registra os pro4lemas *reais ou imaginriosque s(o encontrados e relata3os ao desen!ol!edor a inter!alos regulares.
Tcnicas e Estratgias de Teste de Software 35
Teste de Siste&a
. software apenas um elemento de um sistema 4aseado em computador mais amplo. . teste de siste'a en!ol!e uma srie de diferentes testes# cu%o propHsito primordial por completamente ; pro!a o sistema 4aseado em computador. $ro4lema &lssico da ati!idade de teste de sistema: Vapontar o dedoV 3 quando ocorre um erro# o desen!ol!edor de um elemento do sistema culpa outro pelo pro4lema. . engenheiro de software de!e antecipar os pro4lemas potenciais da interface: <3 pro%etar caminhos de tratamento de erros que testem todas as informa'Ies que chegam de outros elementos do sistema. =3 reali/ar uma srie de testes que simulem dados ruins ou outros erros em potencial na interface do software. 33 registrar os resultados de teste para usar como Vpro!aV se algum lhe apontar o dedo. N3 participar do plane%amento e pro%eto dos testes do sistema para garantir que o software se%a adequadamente testado.
35
Teste de Siste&a
, Teste de Rec#perao
@uitos sistemas 4aseados em computador precisam recuperar3se de falhas e retomar o processamento dentro de um tempo pre!iamente especificado. Em certos casos# o sistema de!e tolerar falhas# isto # o processamento de falhas n(o de!e fa/er com que uma fun'(o glo4al de sistema cesse. Em outros casos# uma falha do sistema de!e ser corrigida dentro de um per:odo pre!iamente especificadoB caso contrrio# gra!es pre%u:/os econ\micos ocorrer(o. . teste de recuperao um teste de sistema que for'a o software a falhar de di!ersas maneiras e !erifica se a recupera'(o adequadamente e)ecutada.
35
Teste de Siste&a
, Teste de Seg#rana
Qualquer sistema 4aseado em computador que gerencie informa'Ies delicadas ou pro!oque a'Ies que possam impropriamente pre%udicar *ou 4eneficiar- pessoas constitui um al!o para o acesso imprHprio ou ilegal. . teste de segurana tenta !erificar se todos os mecanismos de prote'(o em4utidos num sistema o proteger(o# de fato# de acessos inde!idos. urante o teste de seguran'a# o analista desempenha o papel de pessoa que dese%a penetrar no sistema. Qualquer coisa !ale] adquirir senhas mediante contatos e)ternos atacar o sistema com software customi/ado pro%etado para derru4ar quaisquer defesas que tenham sido constru:das desarmar o sistema# negando ser!i'o a outros pro!ocar erros intencionalmente# esperando acess3lo durante a recupera'(o VfolhearV atra!s de dados inseguros esperando desco4rir a cha!e para a entrada no sistema.
Tcnicas e Estratgias de Teste de Software 35
. papel do pro%etista do sistema fa/er com que o acesso custe mais do que o !alor da informa'(o que ser o4tida.
35
Ferra&entas de "#to&atizao
e!ido a comple)idade dos softwares atuais# qualquer estratgia de teste sem suporte de ferramentas automati/adas tende a ser tra4alhosa e propensa a enganos. >ma ferramenta de teste redu/ a inter!en'(o humana nos resultados o4tidos# aumentando a qualidade e a produti!idade da ati!idade de teste. +nfluencia diretamente a confia4ilidade do software testado. Ela de!eria : <NL <5L <PL <SL $rodu/ir casos de teste que mostrassem o comportamento errado do programaB 1istar o erros re!elados e a sua locali/a'(oB $5.TESTE *>05,S- para programas em $ascalJ"nlise de 0lu)o de ados @othra *>?+&"@$- para programas em 0ortranJ"nlise de @utantes
E)emplos "cadmicos:
<QL $roteum *$rogram Testing >sing @utants- *>?+&"@$- para programas em & J"nlise de @utantes
35
$ropIe3se uma estratgia de testar cada classe indi!idualmente# onde os casos de teste pro%etados para o teste de uma classe34ase possam ser apro!eitados para o teste das su43 classes. " tcnica hierrquica pois condu/ida pelo ordenamento da rela'(o de heran'asB M incremental pois usa todos os resultados de testar um n:!el de hierarquia anterior para redu/ir esfor'os desnecessrios nos n:!eis su4sequentes =<L Teste de Sistema 3 .^
35