testes de software para desenvolvedores de software
TRANSCRIPT
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