Verificação, Validação e Testes
Transcript of Verificação, Validação e Testes
Verificação,ValidaçãoeTestes
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