Testes de software para desenvolvedores de software

Post on 21-Jan-2018

57 views 5 download

Transcript of Testes de software para desenvolvedores de software

TestesdeSo)wareparadesenvolvedoresdeso)ware

FundamentosePrá/cas

SergioLimaRubyDeveloper

ScrumteammemberJunhode2017

TestesdeSo)wareAgenda

1. Minhaexperiênciacomtestes2. OQueéTestedeSo)ware3. Porquerazãotemosquetestar?4. Fundamentos5. Oquetestesdeso)warepodemindicar…

6. Oquepodesertestado?

TestesdeSo)wareAgenda

7.Mindsetsdiferentes:DeveloperxTester8.AWvidadesdoTeste.Duasgrandesramificações.9.NíveisouFasesdoTeste.10.TécnicasdeModelagemdeTeste.

Minhaexperiênciacomtestes

Minhaexperiênciacomtestes

Minhaexperiênciacomtestes

•  TestesautomaWzadosemRubyeemRubyOnRails.

•  Curso“FundamentosdoTestedeSo)ware”.

•  PreparaçãoparaoexameCTFL,CerWfiedTesterFoundaWonLevel.

O Que é Teste de Software

O Que é Teste de Software

“Testaréanalisarumprogramacomaintençãodedescobrirerrosedefeitos.”(GlenfordMyers)

O Que é Teste de Software

“TesteéoprocessoqueconsisteemtodasasaWvidadesdociclodevida,tantoestáWcasquantodinâmicas,voltadasparaoplanejamento,preparaçãoeavaliaçãode…so)ware…afimdedeterminarseelassaWsfazemosrequisitosespecificados…”(GlossáriodetermosdoISTQB,TheInternaWonalSo)wareTesWngQualificaWonsBoard.)

Porquerazãotemosquetestar?

Porquerazãotemosquetestar?

•  Qualaorigemdanecessidadedostestes?

•  Ondenasceessanecessidade?

•  Qualaorigem?

Porquerazãotemosquetestar?

•  Erros?•  Comoaparecemoserros?•  Podemosparardeproduzirerros?

Porquerazãotemosquetestar?

“OserhumanoéincapazderealizaraWvidadessemerros.”

Porquerazãotemosquetestar?

Principalcausadasfalhas:•  Processodedesenvolvimentoimaturo.•  Pressãodotempodeentrega.•  Falhasnacomunicação.•  Problemasemrequisitos:

•  Faltadedefiniçãoounãodocumentados.

Fundamentos

Questão

Emrelaçãoaerro,defeitoefalha,deformaconceitual:1. Sãoamesmacoisa,portanto,sinônimos.2. Sãodiferentesconceitualmente.3. Erroedefeitosãoamesmacoisa.4. Erroefalhasãoamesmacoisa.5. Defeitoefalhasãoamesmacoisa.

Erro,Defeito,FalhaErro(error):Açãohumanaqueproduzumresultadoincorreto.Podeocorreremqualquerfasedodesenvolvimentodoso)ware.Defeito(fault):Seexecutado,oerropodecausarumafalha.Éofamoso‘bug’.Falha(failure):Éodefeitoencontrado.Diferençaentreoesperadoeoobservado.Podesercausadopeloambiente.

Erro,Defeito,Falha

Erro(error):<|>/\…produzumerroecriaumDefeito(fault):…épossivelquecauseumaFalha(failure):

Erro,Defeito,Falha

Erro,Defeito,Falha

Erro,Defeito,Falha

Comoexemplo,filmes2001e2010

2010:

Erro,Defeito,Falha

Comoexemplo,filmeHer

Erro,Defeito,Falha

Comoexemplo,filmeHer

Erro,Defeito,Falha

Comoexemplo,filmeHer

Oquetestesdeso)warepodemindicar…

Oquetestesdeso)warepodemindicar…

SabendoadiferençaentreErro,DefeitoeFalha,oquetestesdeso)warepodemindicar?

Oquetestesdeso)warepodemindicar…

"Testespodemindicarfalhasnoso)waremasnãopodemindicarapresençadeerros."

Oquepodesertestado?

Oquepodesertestado?

•  Testedeso)warenãoéaplicadoapenasparaso)ware.

•  Qualquerartefatodeso)warepodesertestado.

Oquepodesertestado?

Qualquerartefatodeso)ware:•  Especificação:

•  deRequisitos•  Funcional•  Técnica

•  Código-fonte.•  Planodeteste,casodeteste,scriptsdeteste.•  Manualdousuário.•  Materialdesuporte.•  Outros.

Oquepodesertestado?

•  Importante:quantomaiscedooerrofordetectado,melhor.

Mindsetsdiferentes:DeveloperxTester

Mindsetsdiferentes:DeveloperxTester

Developer|<|>|/\

Aorealizartestesprocurao

funcionamentodosistema

RESULTADOdefeitos

Mindsetsdiferentes:DeveloperxTester

Tester|<|>|/\

Aorealizartestesprocuradefeitos

nosistemaRESULTADO

Menosdefeitos

Mindsetsdiferentes:DeveloperxTester

“Testaréanalisarumprogramacomaintençãodedescobrirerrosedefeitos.”(GlenfordMyers)Testeéfeitoparaprovarqueoso)ware

nãofunciona.•  Developer:construireprovarqueo

so)warefunciona.•  Tester:realizartesteseprovarqueo

so)warenãofunciona.

Mindsetsdiferentes:DeveloperxTester

Propostaparaumnovomindsetparaodeveloper:•  construiroso)wareeprovarquenão

funciona.

AWvidadesdoTeste.Duasgrandesramificações.

AWvidadesdoTeste.Duasgrandesramificações.

TesteEstá/co TesteDinâmicoStaWcTesWng DynamicTesWng

Revisão,inspeção,análiseemqualquerdocumentaçãooucódigofonte.

Necessitaqueoso)wareseja

executado.MaisuWlizadoporempresasdeso)ware.

NíveisouFasesdoTeste.

NíveisouFasesdoTeste.1)  Unidades:AplicarTestesunitários

2)UnidadesIntegradas:AplicarTestesdeIntegração

3)SistemaIntegrado:AplicarTestesdeSistema

4)Sistemapronto:Aplicar

testesdeaceitação.

NíveisouFasesdoTeste.Teste

UnitárioTestedeintegração

TestedeSistema

TestedeAceitação

Testarcomponentesouunidadesdeformaisolada.

Testaraintegraçãodasunidadesqueforamtestadasisoladamente.

Provarqueosistemanãofunciona.Testarrequisitosfuncionaisenão-funcionais.

Testedeaceitaçãoouhomologação.Obterahomologaçãodocliente.

EspecificaçõesTécnicaseCódigoFonte

Requisitosdenegócio,funcionaisenão-funcionais

TécnicasdeModelagemdeTeste.

TécnicasdeModelagemdeTeste.

Categoriasdastécnicasdemodelagemdeteste:•  TestedeCaixaPreta•  TestedeCaixaBranca

TécnicasdeModelagemdeTeste.

Categoria:TestedeCaixaPreta•  Nãoseconsideraocomportamento

internodocomponentedeso)wareasertestado.

•  Dadosdeentradasãofornecidos,otesteéexecutadoeoresultadoobWdo.

TécnicasdeModelagemdeTeste.

Categoria:TestedeCaixaBranca•  Analisaaestruturainternado

componentedeso)wareasertestado.

TécnicasdeModelagemdeTeste.

•  ParWçãodeEquivalência(equivalenceparWWoning)

•  Análisedovalorlimite(boundaryvalueanalysis)

•  ObjeWvo:diminuireescolhertestesmaisrepresentaWvos.

TécnicasdeModelagemdeTeste.

•  ParWçãodeEquivalênciaRegradaLATAM:viagemparacriança,de2a4anos,acompanhadacompessoamaior.

Par/çãoinválida Par/çãoinválidaPar/çãoválida

-3,-2,0,1 2,3,4 5,6,7,8,…

TécnicasdeModelagemdeTeste.

•  AnálisedovalorlimiteBaseadanaexperiênciaquemostraqueoserrosacontecemmaisnasfronteirasdasparWções.

Par/çãoinválida Par/çãoinválidaPar/çãoválida

1 3 5

2 4

Valoresválidos

TécnicasdeModelagemdeTeste.describe … do describe … do context ‘when invalid values’ do context ‘and value is 1` do it ‘returns false` do expect(…).to be_falsy end context ‘and value is 5` do it ‘returns false` do expect(…).to be_falsy end end ...

TécnicasdeModelagemdeTeste.context ‘when valid values’ do context ‘and value is 2` do it ‘returns true` do expect(…).to be_truthy end context ‘and value is 3` do it ‘returns true` do expect(…).to be_truthy end end context ‘and value is 4` do it ‘returns true` do expect(…).to be_truthy end end end

TécnicasdeModelagemdeTeste.

•  CasosdeTeste:•  Definiçãodeumconjuntode

entradas,•  condiçõesdeexecuçãoe•  resultadosesperados.•  Finalidadeèavaliarosrequisitos

especificadosdosistema.

TécnicasdeModelagemdeTeste.

•  Exemplo:•  teladerecuperaçãodesenhada

guideinvesWmentos•  hzps://

cliente.guideinvesWmentos.com.br/recuperando-senha

TécnicasdeModelagemdeTeste.

Entradas 1 2 3 4 5 6

E-mailválido N N N S S S

CPFválido N S S N S S

Dt.Nascválida N S N S N S

Resultadoesperado

Mensagemdecampo“inválido”

S S S S S N

TécnicasdeModelagemdeTeste.Entradas 1 2 3 4 5 6

E-mailválido N N N S S S

CPFválido N S S N S S

Dt.Nascválida N S N S N S

Resultadoesperado

Mensagemdecampo“inválido”

S S S S S N

ResultadoobWdo OK OK OK NOK OK OK

FundamentosePrá/cas

Dúvidas,comentários?

TestesdeSo)wareparadesenvolvedoresdeso)ware

FundamentosePrá/cas

Thanks!

TestesdeSo)wareparadesenvolvedoresdeso)ware

FundamentosePrá/cas

Bibliografia:•  TerminologiadotestepadrãoBS7925-1.•  Glossário:

-  InternaWonalSo)wareTesWngQualificaWonsBoard(ISTQB®)-  hzp://www.istqb.org/-  GLOSSÁRIOPADRÃODETERMOSUTILIZADOSEMTESTEDESOFTWARE-  Emportuguês:BSTQB

TestesdeSo)wareparadesenvolvedoresdeso)ware