Verificação, Validação e Testes

Preview:

Citation preview

Verificação,ValidaçãoeTestes

LeonardoGrestaPaulinoMurtaleomurta@ic.uff.br

Oqueé?•  “HerraréUmano!!!”– Masnossosusuáriosnãotemculpa

– PrecisamosfazeromáximoparaentregarsoJwaredequalidade

•  ObjeMvosdeVV&T– Assegurarqueestamosfazendodeformacorretaoprodutocorreto

LeonardoMurta Verificação,ValidaçãoeTestes 2

Ciclodepropagação

LeonardoMurta Verificação,ValidaçãoeTestes 3

1–Desenvolvedorcometeumengano(mistake)

2–SoJwarecomdefeito(fault)

3–Defeitoéexercitadoegeraumerro(error)

001101

2+2=5

4–SoJwarefalha(failure)

5–Usuáriosofreasconsequências

001101

max(1,0)à0

TestexDepuração

LeonardoMurta Verificação,ValidaçãoeTestes 4

1–Desenvolvedorcometeumengano(mistake)

2–SoJwarecomdefeito(fault)

3–Defeitoéexercitadoegeraumerro(error)

001101

2+2=5

4–SoJwarefalha(failure)

001101

max(1,0)à0

TestebuscaporfalhasouerrosexercitandoosoJwarecomoumtodooupartesdele

TestexDepuração

LeonardoMurta Verificação,ValidaçãoeTestes 5

1–Desenvolvedorcometeumengano(mistake)

2–SoJwarecomdefeito(fault)

3–Defeitoéexercitadoegeraumerro(error)

001101

2+2=5

4–SoJwarefalha(failure)

001101

max(1,0)à0

DepuraçãobuscaecorrigedefeitosquesãoresponsáveisporfalhasouerrosdosoJware

Vamosentãofazertestesparatodasaspossibilidadesexistentes!

LeonardoMurta Verificação,ValidaçãoeTestes 6

Vamosentãofazertestesparatodasaspossibilidadesexistentes!

•  Infelizmente,issoéimpossível•  Exemplo–  Programasimples,com2loopsaninhadosqueexecutam6vezescadae1if-then-elsedentro

– Aproximadamente236caminhosdeexecuçãopossíveis– Assumindoqueamáquinaexecuta1testepormilissegundo

–  Seriamnecessários2anosininterruptosdeprocessamento•  ImaginetestarexausMvamenteoDebianGNU/LINUX4,comsuas283MLOCs!!!

LeonardoMurta Verificação,ValidaçãoeTestes 7

VerificaçãoxValidação•  Verificação– EstamosfazendocorretamenteosoJware?– Aderênciaaosrequisitosespecificados

•  Validação– EstamosfazendoosoJwarecorreto?– Aderênciaaosrequisitosdesejadosdousuário

•  NãoadiantafazercomperfeiçãoumsoJwarequenãosejaoqueousuáriodeseja!

LeonardoMurta Verificação,ValidaçãoeTestes 8

VerificaçãoxValidação

LeonardoMurta Verificação,ValidaçãoeTestes 9

Requisitos Arquitetura Código

Verificação

LeonardoMurta Verificação,ValidaçãoeTestes 10

?

Verificação

LeonardoMurta Verificação,ValidaçãoeTestes 11

Desenvolvimento

Requisitos Arquitetura Código

Verificação

LeonardoMurta Verificação,ValidaçãoeTestes 12

Desenvolvimento

Verificação

Requisitos Arquitetura Código

TestedeUnidade

TestedeIntegração

Validação

LeonardoMurta Verificação,ValidaçãoeTestes 13

?

Validação

LeonardoMurta Verificação,ValidaçãoeTestes 14

Validação

Requisitos

Especificação

Validação

LeonardoMurta Verificação,ValidaçãoeTestes 15

Validação

Requisitos

TestedeAceitação(homologação)

Especificação

VerificaçãoxValidação

LeonardoMurta Verificação,ValidaçãoeTestes 16

Verificação

Anatomiadetestes

LeonardoMurta Verificação,ValidaçãoeTestes 17

Sistemasendotestado

Casodeteste

Oráculo

DadosestansMcos

Sistemaslegados

Valoresdeexemplo Especialista

Resultado

Dadosdeteste

Pontosimportantes•  Verificaçãonãoprecisaserfeitasomentequandoexistecódigo–  InspeçõessãotécnicasefeMvasparaidenMficaçãodedefeitos,mesmoantesdetercódigo

•  Testesdevemseraplicadosnaspartes,parasóentãoseraplicadonotodo–  Facilitaoisolamentoealocalizaçãoposteriordedefeitos

•  Quemfazostestes?–  Oprópriodesenvolvedor,emrelaçãoàspartes(testesdeunidade)

–  Umaequipeprópriaeindependentedetestes,emrelaçãoaotodo(testesdeintegração)

–  Ousuário(testesdeaceitação)LeonardoMurta Verificação,ValidaçãoeTestes 18

Pontosimportantes•  TestesnãosubsMtuemprodutosdequalidade– Produtosdebaixaqualidade,aoseremsubmeMdosatestes,precisarãoserrefeitos(retrabalho!!!)

•  ParaquetestessejamefeMvos,planejamentoéfundamental– Énecessárioestabelecerumobje>voclarodetestes– Éimportanteoalinhamentodostestescomosperfisdosusuários

LeonardoMurta Verificação,ValidaçãoeTestes 19

CaracterísMcasdeumbomcasodeteste

•  Teraltaprobabilidadedeencontrarerros– Conheceroprodutoeexploraraspectosdiferenciados

•  Nãoserredundante– Estabelecerclaramenteopropósitodecadateste(planejamento)

•  Nãoserdemasiadamentecomplexo–  Decomporostestesdeformaquecadatestefoqueemsomenteumobje>vo

LeonardoMurta Verificação,ValidaçãoeTestes 20

Exercício•  Etapa1–  Codifiquenopapelumalgoritmoparaordenação–  Definaalgunstestesparaessealgoritmo

•  Etapa2–  Insirapropositalmenteumdefeitonoseualgoritmo

•  Etapa3–  Passeoseualgoritmoparaoutrogrupoerecebaoalgoritmodeoutrogrupo

–  Apliqueseustestessobreoalgoritmorecebido–  Seustestesforamcapazesdedetectarafalhanoalgoritmo?

LeonardoMurta Verificação,ValidaçãoeTestes 21

Testecaixabrancaxcaixapreta•  DuasestratégiasdisMntasparaelaboraçãodetestes•  Testecaixabranca–  Tambémconhecidocomotesteestrutural–  Conheceointeriordoproduto–  UMlizaesseconhecimentonadefiniçãodaestratégiadeteste–  Encontraerros

•  Testecaixapreta–  Tambémconhecidocomotestefuncional–  Nãoconheceointeriordoproduto–  UMlizasomenteosrequisitosnadefiniçãodaestratégiadeteste–  Encontrafalhas

LeonardoMurta Verificação,ValidaçãoeTestes 22

Metadotestecaixabranca•  GaranMrquetodososcaminhosindependentesforamexercitadosaomenosumavez– Umcaminhoindependenteéumcaminhoqueexercitaalgumanovainstruçãooucondiçãodoprograma

•  GaranMrquetodasasdecisõeslógicasforamexercitadasdonosdoissenMdos(V/F)

•  GaranMrquetodososloopsforamexercitadosnosseusvaloresdefronteira

•  GaranMrqueasestruturasdedadosinternasforamexercitadasparaassegurarasuaintegridade

LeonardoMurta Verificação,ValidaçãoeTestes 23

Testedefumaça•  Metáforaafumaçageradaporcircuitoeletrônicocomdefeitonasuaprimeiraexecução

•  Consisteemfazerumtestesuperficialqueindicaaviabilidadederodarosdemaistestes–  TodasaspartessãocombinadaseégeradoumbuilddosoJware

–  EssebuildésubmeMdoatestesbásicos

–  EsseprocessoérepeMdofrequentemente(e.g.,diariamente)

LeonardoMurta Verificação,ValidaçãoeTestes 24

Testesdeunidade•  Focoemtestarcaminhosespecíficosdoproduto(caixabranca)

•  Visater100%decobertura– Nestecaso,100%decoberturarepresentandoaexecuçãodetodasaslinhasdocódigo

–  Jávimosqueéimpossívelter100%decoberturaparatodososcaminhospossíveisdeexecução!!!

•  Normalmentecapturaerrosdecálculos,comparaçõesefluxodecontrole–  Éfundamentaltestarasfronteiras–  Ex.:valores-1,0,n,(n+1)paraumloopde0an

LeonardoMurta Verificação,ValidaçãoeTestes 25

Testesdeunidade(Drivers&stubs)

•  Paraviabilizarotestedeunidade,énecessárioconstruirdriversestubs

LeonardoMurta Verificação,ValidaçãoeTestes 26

Parteasertestada

Driver

Stub1 Stub2

Chamadaafuncionalidadesaseremtestadas

Chamadasafuncionalidadesqueretornamvalorespredefinidos

Testesdeunidade•  Esenãodertempoparafazertodosostestesdeunidade?– Seconcentreaomenosnaspartescommaiorcomplexidade

– Paraissoénecessáriocalcularacomplexidadeciclomá>cadaspartes

•  ComplexidadeciclomáMcaéonúmerodecaminhosindependentesdeumprograma

LeonardoMurta Verificação,ValidaçãoeTestes 27

Projetodetestes•  Métododeconjuntobásico(basisset)–  Visaexercitaraomenosumaveztodasassentenças

deumprograma–  Sebaseianografodefluxo(flowgraph)doprograma

enasuacomplexidadeciclomáMca–  Permiteencontrarquantossãooscaminhos

independentesdeteste–  Permiteencontrarpossíveisconjuntosmínimosde

caminhosindependentesdeteste

LeonardoMurta Verificação,ValidaçãoeTestes 28

Projetodetestes1.  Gerarografodefluxos(flowgraph)paracada

parte(método,procedimento,função,etc.)•  sentençaa;sentençab;sentençac;...(1)

•  ifa(1)thenb(2)elsec(3)endif(4)

LeonardoMurta Verificação,ValidaçãoeTestes 29

12

34

1

Projetodetestes•  whilea(1)dob(2)endwhile(3)[ou]•  fora(1)dob(2)endfor(3)

•  doa(1)whileb(2)enddo(3)[ou]•  repeata(1)unMlb(2)enddo(3)

LeonardoMurta Verificação,ValidaçãoeTestes 30

1 2 3

1 2 3

Projetodetestes•  switcha(1)caseb(2);casec(3)cased(4)...

endswitch(5)

•  Tratamentoespecialparaexpressõesbooleanas–  ifa(1)OUb(2)thenc(3)elsed(4)endif(5)

LeonardoMurta Verificação,ValidaçãoeTestes 31

1

2

3 5

4

13

25

4

Projetodetestes2.  CalcularacomplexidadeciclomáMcadografode

fluxos

•  V(G)=E–N+2–  Géografodefluxo–  V(G)éacomplexidadeciclomáMcadografodefluxo

G–  EéonúmerodearestasdografoG–  NéonúmerodevérMcesdografoG

LeonardoMurta Verificação,ValidaçãoeTestes 32

Projetodetestes3.  IdenMficarV(G)caminhosindependentesque

formemoconjuntobásico–  Fazerumabuscaemprofundidadepeloscaminhos

possíveis,sempreadicionandoalgumaarestanova

4.  Elaborarcasosdetestecomvaloresdeentradaqueexercitemcadaumdoscaminhosindependentesdoconjuntobásico

LeonardoMurta Verificação,ValidaçãoeTestes 33

Exemplo(quicksort)publicList<String>ordena(List<String>listaDesordenada){List<String>listaOrdenada=newArrayList<String>();if(listaDesordenada.size()>1){Stringpivo=listaDesordenada.get(0);List<String>listaMenoresDesordenada=newArrayList<String>();List<String>listaMaioresDesordenada=newArrayList<String>();for(inti=1;i<listaDesordenada.size();i++){Stringelemento=listaDesordenada.get(i);if(elemento.compareTo(pivo)<0){listaMenoresDesordenada.add(elemento);}else{listaMaioresDesordenada.add(elemento);}}listaOrdenada.addAll(ordena(listaMenoresDesordenada));listaOrdenada.add(pivo);listaOrdenada.addAll(ordena(listaMaioresDesordenada));}else{listaOrdenada.addAll(listaDesordenada);}returnlistaOrdenada;}

LeonardoMurta Verificação,ValidaçãoeTestes 34

Extraçãodografodefluxo...publicList<String>ordena(List<String>listaDesordenada){List<String>listaOrdenada=newArrayList<String>();if(listaDesordenada.size()>1){Stringpivo=listaDesordenada.get(0);List<String>listaMenoresDesordenada=newArrayList<String>();List<String>listaMaioresDesordenada=newArrayList<String>();for(inti=1;i<listaDesordenada.size();i++){Stringelemento=listaDesordenada.get(i);if(elemento.compareTo(pivo)<0){listaMenoresDesordenada.add(elemento)}else{listaMaioresDesordenada.add(elemento);}}listaOrdenada.addAll(ordena(listaMenoresDesordenada));listaOrdenada.add(pivo);listaOrdenada.addAll(ordena(listaMaioresDesordenada));}else{listaOrdenada.addAll(listaDesordenada);}returnlistaOrdenada;}

LeonardoMurta Verificação,ValidaçãoeTestes 35

1

3

4

75

9810

12 13

2

6

11

14

GrafodefluxoecomplexidadeciclomáMca

•  V(G)=E–N+2=16–14+2=4–  Teste1:1,2,12,13,14–  Teste2:1,2,3,4,10,11,13,14(impossível)–  Teste3:1,2,3,4,5,6,7,9,4,10,11,13,14–  Teste4:1,2,3,4,5,6,8,9,4,10,11,13,14

LeonardoMurta Verificação,ValidaçãoeTestes 36

2

3

1

4 5 1067

89 11

12

13 14

Exemplo(teste1comJUnit)

@Testpublicvoidteste1(){List<String>listaDesordenada=Arrays.asList("abc");List<String>oraculo=Arrays.asList("abc");List<String>resultado=quicksort.ordena(listaDesordenada);assertEquals(oraculo,resultado);}

LeonardoMurta Verificação,ValidaçãoeTestes 37

Exemplo(teste2comJUnit)

@Testpublicvoidteste2(){List<String>listaDesordenada=Arrays.asList("def","abc");List<String>oraculo=Arrays.asList("abc","def");List<String>resultado=quicksort.ordena(listaDesordenada);assertEquals(oraculo,resultado);}

LeonardoMurta Verificação,ValidaçãoeTestes 38

Exemplo(teste3comJUnit)

@Testpublicvoidteste3(){List<String>listaDesordenada=Arrays.asList("abc","def");List<String>oraculo=Arrays.asList("abc","def");List<String>resultado=quicksort.ordena(listaDesordenada);assertEquals(oraculo,resultado);}

LeonardoMurta Verificação,ValidaçãoeTestes 39

Exemplo(resultadonoJUnit)

LeonardoMurta Verificação,ValidaçãoeTestes 40

Exemplo(quicksortcomdefeito)publicList<String>ordena(List<String>listaDesordenada){List<String>listaOrdenada=newArrayList<String>();if(listaDesordenada.size()>1){Stringpivo=listaDesordenada.get(0);List<String>listaMenoresDesordenada=newArrayList<String>();List<String>listaMaioresDesordenada=newArrayList<String>();for(inti=1;i<listaDesordenada.size()-1;i++){Stringelemento=listaDesordenada.get(i);if(elemento.compareTo(pivo)<0){listaMenoresDesordenada.add(elemento)}else{listaMaioresDesordenada.add(elemento);}}listaOrdenada.addAll(ordena(listaMenoresDesordenada));listaOrdenada.add(pivo);listaOrdenada.addAll(ordena(listaMaioresDesordenada));}else{listaOrdenada.addAll(listaDesordenada);}returnlistaOrdenada;}

LeonardoMurta Verificação,ValidaçãoeTestes 41

Exemplo(resultadonoJUnitcomdefeito)

LeonardoMurta Verificação,ValidaçãoeTestes 42

Exemplo(coberturadostestescomEMMA)

LeonardoMurta Verificação,ValidaçãoeTestes 43

Exemplo(coberturadostestescomEMMA)

LeonardoMurta Verificação,ValidaçãoeTestes 44

Exemplo(coberturadoteste1comEMMA)

LeonardoMurta Verificação,ValidaçãoeTestes 45

Exemplo(coberturadoteste1comEMMA)

LeonardoMurta Verificação,ValidaçãoeTestes 46

Projetodetestes(outrasestratégias)

•  Testesbaseadosemdefeitos– VisaidenMficarosMposdedefeitomaisprováveis– Projetatestesquesãoeficazesnadescobertadeerrosoriundosdessesdefeitos

•  Testesbaseadosemcenários– Projetatestesemfunçãodosprincipaiscenáriosdeusodosistema,enãonasfuncionalidadesdosistema

– Éguiadopelousuário,enãopelaestruturaLeonardoMurta Verificação,ValidaçãoeTestes 47

Tratamentodeexceções•  ÉumaboapráMcaconstruirsoJwarecapazdetratarassuasprópriasexceções(erros)

•  Nestecaso,otratamentodeexceçõesprecisatambémsertestado– Amensagemquedescreveaexceçãoécompreensível?– Amensagemcorrespondeaoerro?– OmecanismouMlizadoparaotratamentoéapropriado?– AmensagempermiMráqueosdesenvolvedoreslocalizemodefeito?

LeonardoMurta Verificação,ValidaçãoeTestes 48

Exercício•  ApliquejUnit(ouqualqueroutroxUnit)sobrealgumapartedotrabalhodocurso

•  ExibaacoberturadetestesuMlizandoEMMA(ouqualqueroutraferramenta)

•  Dica:oNetBeanstemambasasferramentas– h�p://www.netbeans.org–  JUnitjávemnadistribuiçãopadrãodoNetBeans– EMMAéumplugin-h�p://codecoverage.netbeans.org

LeonardoMurta Verificação,ValidaçãoeTestes 49

Exercícios•  Tragaumexemplodacriaçãodestubscoma

ferramentaMockito,EasyMockoujMock(oualgumaoutraquevocêconheça)–  h�p://www.mockito.org–  h�p://www.easymock.org–  h�p://www.jmock.org

LeonardoMurta Verificação,ValidaçãoeTestes 50

DesenvolvimentoDirigidoaTestes(TDD–métodoágil)

•  Inverteaordem,colocandotesteantesdacodificação(testfirst)1.  Otesteéconstruídoantesdaimplementaçãoda

funcionalidade2.  Otestedevefalharnessemomento(vermelho)3.  Éfeitoocódigomaissimplescapazdeatenderaoteste

(verde)4.  OcódigoérefatoradocomoobjeMvodeaumentara

qualidadedoproduto5.  Retornaaopasso1enquantoMveremnovas

funcionalidadesaseremimplementadas

LeonardoMurta Verificação,ValidaçãoeTestes 51

Testesdeintegração•  Focoemcombinaraspartesdoprodutoetestaraspartesemconjunto

•  Visaanalisaroprodutoemtermosdeentradasesaídas(caixapreta)– Eventualmentetestatambémcaminhosespecíficosdegranderelevância

LeonardoMurta Verificação,ValidaçãoeTestes 52

Estratégiasparaintegração•  Bigbang–  Jogaforaosdriversestubs,conectatodasaspartes,eexecutatodosostestesdeintegração

– Geranormalmenteumgrandenúmerodeerros–  Tornadi�cilaaMvidadededepuração

•  Incremental– Aospoucos,segundoalgumcritério,driversestubssãosubsMtuídosporpartesreaisdosoJware,eostestesdeintegraçãosãoexecutados

– OserrosaparecemgradaMvamente– OespaçodebuscaparaaMvidadededepuraçãoémenor

LeonardoMurta Verificação,ValidaçãoeTestes 53

Exercício•  AssumaqueosvérMcesabaixosejamclassesdeumsistema

orientadoaobjetos,easarestasassuasdependênciasondeAàBsignificaAdependedeB.–  Qualcritériodeintegraçãoincrementalvocêadotaria?–  QualMpodebusca(larguraouprofundidade)implementaessecritério?

–  QualseriaumapossívelordemdeintegraçãoassumindoqueaclasseAéresponsávelpelainicializaçãodosistema(classeraiz)?

F

G

J

H

I

B

A

C

D

E

LeonardoMurta 54Verificação,ValidaçãoeTestes

Integraçãotop-down•  AparteraizdaárvorededependênciastemseusstubsgradaMvamentesubsMtuídosporpartesreaisdosistema

LeonardoMurta Verificação,ValidaçãoeTestes 55

ADriverStubB

StubC

BDriver StubD

CDriverStubE

StubF

...

...

ADriver

B StubD

CStubE

StubF

...

Integraçãobo?om-up•  AspartesfolhadaárvorededependênciastêmseusdriversgradaMvamentesubsMtuídosporpartesreaisdosistema

LeonardoMurta Verificação,ValidaçãoeTestes 56

ADriverStubB

StubC

BDriver StubD

CDriverStubE

StubF

...

...

ADriverStubB

StubC

BDriver

CDriver

...F

E

D

Top-downxbo?om-up•  Integraçãotop-down,apesardefazersenMdo,manteráousodestubsportodosospassosdeintegraçãoincremental,menosoúlMmo

•  Integraçãobo?om-updefatosubsMtuigradaMvamentestubsporpartesreais– Ostestesmanipulamdadosprocessadosenãoconstruídosporstubs

LeonardoMurta Verificação,ValidaçãoeTestes 57

Exercício•  Definaaestratégiaaseradotadapeloseugrupoparatestesdeintegraçãodotrabalhodocurso

LeonardoMurta Verificação,ValidaçãoeTestes 58

Testedesistema•  TranscendeosoJware•  Ocorredepoisdosdemaisteste

•  VisagaranMrqueosoJwarefuncionacorretamentecomosdemaiselementosdosistema

•  Exemplo– Hardware-in-the-loop

LeonardoMurta Verificação,ValidaçãoeTestes 59

Testedesistema(Mpos)

•  Testederecuperação–  Forçasituaçõesextremas–  Verificacomoosistemasecomportaposteriormente

•  Testedesegurança–  Verificaseosistematembrechasquepossibiliteminvasões

–  Emalgunscasos,hackerssãocontratadosparaessefim•  Testedeestresse(carga)–  SubmeteosoJwareaumaelevadademandadeuMlização–  Verificacomoaqualidadedeserviçovariaemfunçãodessademanda

LeonardoMurta Verificação,ValidaçãoeTestes 60

Exemplo(Selenium–gravaçãoereprodução)

LeonardoMurta Verificação,ValidaçãoeTestes 61

Exemplo(Selenium–exportação)

LeonardoMurta Verificação,ValidaçãoeTestes 62

Exemplo(Selenium–exportadoparaJUnit)

packagecom.example.tests;importcom.thoughtworks.selenium.*;importjava.uMl.regex.Pa�ern;publicclassUnMtledextendsSeleneseTestCase{

publicvoidsetUp()throwsExcepMon{ setUp("h�p://www.google.com.br/","*chrome");}publicvoidtestUnMtled()throwsExcepMon{ selenium.open("/"); selenium.type("q","EngenhariadeSoJwareuff"); selenium.click("btnG"); selenium.waitForPageToLoad("30000"); selenium.click("//ol[@id='rso']/li[1]/h3/a/em"); selenium.waitForPageToLoad("30000"); verifyTrue(selenium.isTextPresent("LeonardoGrestaPaulinoMurta"));}

}

LeonardoMurta Verificação,ValidaçãoeTestes 63

Exemplo(jMeter–configuraçãodacarga)

LeonardoMurta Verificação,ValidaçãoeTestes 64

Exemplo(jMeter–adiçãodetestador)

LeonardoMurta Verificação,ValidaçãoeTestes 65

Exemplo(jMeter–resultados)

LeonardoMurta Verificação,ValidaçãoeTestes 66

Exemplo(profilingdeCPU)

LeonardoMurta Verificação,ValidaçãoeTestes 67

Exemplo(profilingdememória)

LeonardoMurta Verificação,ValidaçãoeTestes 68

Exercício•  UMlizeSelenium,jMeteroualgumprofilersobreotrabalhodocursoeapresenteosresultadosobMdos

LeonardoMurta Verificação,ValidaçãoeTestes 69

Testederegressão•  NãoémaisumMpodeteste,massimumpapelquepodeserempenhadopordiferentesMposdeteste

•  Visaevitarquedefeitosjácorrigidosretornemaoproduto

•  Muitousadoemtestesdeintegração,ondetestesanterioressãoaplicados

LeonardoMurta Verificação,ValidaçãoeTestes 70

Testesdeaceitação•  Focoemapresentaroprodutoaousuárioparaqueoprodutosejahomologado

•  Visaestabelecercritériosparaaceitação– Funcionais– Comportamentais– Dedesempenho

•  Tiposdetestedeaceitação– Alfa– Beta

LeonardoMurta Verificação,ValidaçãoeTestes 71

Cenárionpicodevalidação

LeonardoMurta Verificação,ValidaçãoeTestes 72

Sistemasendotestado

Testesformais(critérios,planos,etc.)

Testesinformais(adhoc)Semanasoumeses

SistemaanMgo(manualou

automaMzado)

UMlizaçãoemparalelo

Testesalfa

LeonardoMurta Verificação,ValidaçãoeTestes 73

Sistemasendotestado

Usa

Ambientecontrolado(e.g.,localdodesenvolvimento)

Observa

(numeroreduzido)

Testesbeta

LeonardoMurta Verificação,ValidaçãoeTestes 74

Sistemasendotestado

Usa

Ambientereal(e.g.,localdeprodução)

Reportaproblemas

SistemadeControledeSolicitações

Referências•  Pilone,D.;Miles,R.;2008.HeadFirstSoJwareDevelopment.O’ReillyMedia.

•  Pressman,R.S.;2004.SoJwareEngineering:APracMMoner’sApproach.6ed.McGraw-Hill.

LeonardoMurta 75Verificação,ValidaçãoeTestes

Verificação,ValidaçãoeTestes

LeonardoGrestaPaulinoMurtaleomurta@ic.uff.br

Recommended