estudo de caso: aplicando testes orientado por comportamento no processo de qualidade de software
DESCRIPTION
O desenvolvimento de software envolve diversas atividades de produção, nas quais háuma grande possibilidade de ocorrerem falhas. Os testes de software são indispensáveis para identificar defeitos e avaliar o grau de qualidade de um produto ede seus componentes. Visando diminuir esta lacuna, são apresentados os fundamentosdo desenvolvimento orientado por comportamento, que significa em inglês, Behaviour-Driven Development (BDD), bem como um estudo acerca do Cucumber, ferramenta que implementa BDD. Entre os diversos benefícios, serve como estímulode conversa sobre os requisitos, mudando a abordagem de construção da especificação de software, ideal em equipes ágeis. E apresentar também, a aplicação da abordagemde desenvolvimento de testes automatizados, especificados nas várias camadas de comportamentos do sistema.TRANSCRIPT
-
UNIVERSIDADE DO VALE DO RIO DOS SINOS UNISINOS
UNIDADE ACADMICA DE EDUCAO CONTINUADA
ESPECIALIZAO EM QUALIDADE DE SOFTWARE
PALOMA COSTA
ESTUDO DE CASO: APLICANDO TESTES ORIENTADOS PORCOMPORTAMENTO NO PROCESSO DE QUALIDADE DE SOFTWARE
So Leopoldo
2015
-
PALOMA COSTA
ESTUDO DE CASO: APLICANDO TESTES ORIENTADOS PORCOMPORTAMENTO NO PROCESSO DE QUALIDADE DE SOFTWARE
Trabalho de Concluso de Curso apresentado comorequisito parcial para a obteno do ttulo deEspecialista em Qualidade de Software, pelo cursode Ps-Graduao Lato Sensu em Qualidade deSoftware da Universidade do Vale do Rio dos Sinos UNISINOS. Orientador: Prof. MSc. GuilhermeLacerda
So Leopoldo
2015
-
AGRADECIMENTOS
Agradeo a Deus primeiramente, por dar-me a oportunidade de concluir mais esteobjetivo em minha vida, na qual este trabalho no seria possvel sem o apoio de umconjunto de pessoas que direta ou indiretamente contriburam para que fosse realizado.
Agradeo Josiane Brietzke Porto, que me apoiou continuamente, dandoinformaes e sugestes muito importantes durante a execuo deste trabalho.
Ao professor orientador Guilherme Lacerda, pelo apoio recebido nessa jornada,que acredito ter concludo com sucesso.
Ao meu marido Pedro, pelo apoio, pela pacincia nos momentos difceis, e,principalmente por me fazer acreditar na minha capacidade de vencer todas asdificuldades.
Aos colaboradores da UNICORP S.A, que me proporcionaram esta oportunidadede desenvolver este trabalho, para um novo olhar sobre a qualidade do produto no que seacredita como uma tendncia atual de mercado.
-
LISTA DE FIGURAS
Figura1.ProcessodedesenvolvimentocomBDD......................................................15
Figura2.BenefciosdoProcessodedesenvolvimentoBDD.......................................16
Figura3.SprintPlanningcomBDD...........................................................................18
Figura4.CiclodeVidadeImplementaoSCRUM...................................................19
Figura5.EstruturadeCenrioscomCucumber...........................................................21
Figura6.EstruturaSimplesCucumberemIngls........................................................21
Figura7.EstruturaCucumberemPortugus................................................................22
Figura8.TelaparacriarIssuedetestenoJIRAcomXRAY.......................................26
Figura9.EdiodaIssuedetestedeumcenrioesboo.............................................27
Figura10.DetalhesdeumaIssuedeTestesdotipoCucumber...................................28
Figura11.ExportarfeaturesCucumber........................................................................28
Figura12.DashboardnoJIRA.....................................................................................29
Figura13.Relatriodoprojetoexportado.....................................................................30
Figura 14. Cronograma dos Testes...............................................................................33
Figura15.EquipegilinteragindocomSCRUMeBDD............................................34
Figura16.CiclodedesenvolvimentoBDD..................................................................35
Figura17.EtapasdeimplantaoBDD.......................................................................38
Figura18.Listadosrequisitos......................................................................................40
Figura19.Listadoscenriosdetestes.........................................................................41
Figura20.Listadoscenriosdetestesportipodeteste...............................................41
Figura21.EscopodetestesAutomatizados.................................................................42
Figura22.TeladeLogin..............................................................................................43
Figura23.Teladeinseroderegistros.......................................................................43
Figura24.Telasincronizandoregistrosparaoservidorremote..................................44
-
Figura25.EspecificaodoConfluencevisvelnoJIRA............................................45
Figura26.FuncionalidadeimplementadanaestruturaCucumber..............................46
Figura27.Workflowdaconstruodostestesautomatizados....................................46
Figura28.KanbandoProjetoPilotoBDD..................................................................47
Figura29.ListabsicadeGEMS.................................................................................48
Figura30.CriaodaEstruturadosdiretriosCucumber...........................................49
Figura31.Arquivofeature...........................................................................................50
Figura32.ConfiguraodosarquivosENV.RB..........................................................50
Figura33.Passosaseremimplementados...................................................................51
Figura34.Stepsdedesenvolvimento...........................................................................51
Figura35.APICapybaraimplementada......................................................................53
Figura36.Resultadodoscenriosepassos..................................................................53
Figura37.GrficodeTestes.........................................................................................54
Figura38.RelatriodeidentificaodoRisco............................................................55
Figura39Coberturadeexecuodostestes.................................................................55
Figura40.CritriosdeAceitao.................................................................................56
Figura41.CoberturadeTestes.....................................................................................56
Figura42.SprintBacklog.............................................................................................57
Figura43;Kanbandoprojetopiloto.............................................................................57
Figura44.DashboardProjetoPiloto............................................................................58
Figura45.Estatsticasdetipodedefeitoaberto...........................................................58
-
LISTA DE TABELAS
Tabela 1. Palavras chaves do Cucumber, 23
Tabela 2. Informaes do Plano de Testes, 36
Tabela 3. Critrios de Aceitao da aplicao, 39
Tabela 4. Especificao por Exemplos, 43
Tabela 5. Lista de comandos bsicos Capybara, 52
-
LISTA DE ABREVIATURA
TDD (Test-Driven Development)
BDD - (Behaviour-Driven Development)
DDD - (Domain-Driven Design)
ATDD (Acceptance Test-Driven Development)
ATDP (Acceptance Test-Driven Planning)
PO (Product Owner)
UML (Unified Model Language)
RUP (Rational Unified Process)
UTDD (Unit Test-Driven Development)
XP (eXtreme Programming)
AC (Acceptance Criteria)
DSL (Domain Specific Language)
-
RESUMO
O desenvolvimento de software envolve diversas atividades de produo, nas quais huma grande possibilidade de ocorrerem falhas. Os testes de software soindispensveis para identificar defeitos e avaliar o grau de qualidade de um produto ede seus componentes. Visando diminuir esta lacuna, so apresentados os fundamentosdo desenvolvimento orientado por comportamento, que significa em ingls,Behaviour-Driven Development (BDD), bem como um estudo acerca do Cucumber,ferramenta que implementa BDD. Entre os diversos benefcios, serve como estmulode conversa sobre os requisitos, mudando a abordagem de construo da especificaode software, ideal em equipes geis. E apresentar tambm, a aplicao da abordagemde desenvolvimento de testes automatizados, especificados nas vrias camadas decomportamentos do sistema.
ABSTRACT
Software development involves a number of production activities in which there is ahigh probability of failure. Software testing, are indispensable to identify defects andassess the degree of quality of a product and its components . Aiming to reduce thisgap presents the fundamentals of development -oriented behavior, which means inEnglish, Behaviour - Driven Development ( BDD ) as well as a study of the Cucumber, tool that implements BDD . Among the many benefits , it serves as talk of stimulus onthe requirements , changing the construction approach to software specification, idealfor agile teams. And also present , the application development approach toautomated testing and specified in the various layers of system behaviors .
-
SUMRIO1. INTRODUO..................................................................................10
1.1. MOTIVAO...................................................................................................101.2. OBJETIVOS.....................................................................................................101.3. EMPRESA ONDE SER APLICADA A PESQUISA-AO.................................................111.4. ORGANIZAO DO TRABALHO............................................................................11
2. FUNDAMENTAO TERICA.............................................................122.1. ABORDAGENS DE TESTE...................................................................................122.2. BEHAVIOUR-DRIVEN DEVELOPMENT....................................................................132.3. PROCESSO GIL COM SCRUM...........................................................................162.4. CUCUMBER....................................................................................................19
2.4.1.CaractersticasdoCucumber.........................................................................192.4.2.Cucumbercomoestmulodeconversasobreosrequisitos......................................202.4.3SignificadodaslinhasCucumber.....................................................................222.4.4.DocumentaoExecutvelcomCucumber.........................................................24
2.5. FERRAMENTAS DE GESTO DE TESTE...................................................................252.5.1.CritriosdeAceitaoAutomatizados..............................................................252.5.2.DashboarddoProjetodeTestes......................................................................292.5.3.AssociandoRequisitoseDefeitos.....................................................................292.5.4.RelatriodeTestes......................................................................................30
3. METODOLOGIA................................................................................313.1. MTODOS DE PESQUISA...................................................................................313.2. CONTEXTO DO PROJETO PILOTO.........................................................................323.3. TCNICA DE COLETA DE DADOS.........................................................................323.4. TCNICA DE ANLISE DE DADOS........................................................................333.5. LIMITAES DE ESTUDO...................................................................................333.6. ETAPAS DESENVOLVIDAS...................................................................................33
4. APLICANDO O PROJETO PILOTO COM TESTES BDD.............................364.1.PLANEJAMENTO, CONTROLE E ESTRATGIA............................................................374.2. ANLISE E MODELAGEM....................................................................................38
4.2.1Escopodetestes..........................................................................................434.3.IMPLEMENTAO DOS TESTES.............................................................................45
4.3.1.EscrevendoRuby.........................................................................................484.3.2.GemsdoCucumber.....................................................................................49
4.4. EXECUO DOS TESTES....................................................................................504.5.AVALIAO DE CRITRIOS DE SADA E DIVULGAO DE RELATRIOS............................544.6.ATIVIDADES DE FECHAMENTO DE TESTE................................................................59
5. CONCLUSO....................................................................................60REFERNCIAS............................................................................................................61ANEXO A............................................................................................65APNDICES.........................................................................................66
-
101.Introduo
Este captulo tem como objetivo apresentar a motivao para a execuo destetrabalho,bemcomodemonstrarosobjetivosquesepretendealcanar,aimplantaodoprocessogildetestedeumprojetopiloto,almdedescrevercomoestetrabalhoestorganizado.
1.1.Motivao
Atualmente,osprojetosprecisamsetornarflexveisparaatingirtodososobjetivossem comprometer a qualidade e o valor do negcio. Desta maneira, aplicarmetodologiasgeisaosprojetostemmostradoaflexibilidadeesperadanosprocessosdaorganizao,taiscomo,planejamento,agilidadeecomunicaoentreasequipes(CRISPIN,2009).
Apesardisto,notrioquealcanarestesobjetivosnoalgotosimples.Odesenvolvimentodeumprodutocomqualidadeecomumbaixocustovaialmdoalcancedasatisfaoedaexpectativadocliente,porquecontemplaosrequisitosdonegciocontemplandoosobjetivosdoprojeto(COHN,2004).
nestecontextoquecresceaimportnciadaqualidadeseenvolvermaiscomonegcio, assimcomo, entender melhor as novas funcionalidades e despertar naequipedoprojetoaintegraodeesforosentreaqualidadeeodesenvolvimento.Sendoassim,evitaseoretrabalhoedefeitos,baseadonocomportamentodorequisito(CRISPIN,2009).
Este artigo desperta o interesse de novas prticas de testes sem perder aqualidade,comoobjetivoderesponderaseguintequesto:Comoimplantarnodiaadia da organizao o processo gil? A abordagem de teste orientada porcomportamentopodealcanarbenefcioseumretornodeinvestimentoemQualidade?
Nas sees seguintes, sero descritas as implantaes propostas com aabordagemorientadaporcomportamentoeScrumdentrodaorganizao,descritosnoPlanodeTesteofuncionamentodoprojetopiloto.
1.2.Objetivos
Estapesquisatemcomoobjetivogeral,aplicaraabordagemdetestesorientadaporcomportamentointegradaasmetodologiasgeis,paraobtermelhoresresultados,afimde evitar o retrabalho e abertura de defeitos de comportamento no processo dedesenvolvimentodaorganizao,especializadanodesenvolvimentodesistemasdegestoeautomao. Paraalcanar oobjetivogeral, foramdefinidosos seguintesobjetivosespecficos:
-
11a) Identificaronegcioparafazeroexperimentodanovaabordagem;
b) Tornar a documentao atualizada, assim como, compartilhar umentendimentomelhorsobreosrequisitosdosistemaaserestudado;
c) Aplicar testeorientadoporcomportamentocomosprocessosdaqualidade,bemcomo,automatizareampliarosresultadosesperados?
d) Planejaro backlog doprodutoparaa SprintPlanning utilizando Kanban emconjuntocomostestesimplementados,executadosereportados;
e) ImplementaraferramentaCucumberparamodelarostestes,reutilizadoscomoscriptsnalinguagemRuby,paratestesderegresso;
f) Avaliarosresultadosobtidosdeinvestimento,dareduodecustosevalordonegcioparaocliente.
1.3.EmpresaondeserAplicadaaPesquisaAo
AUNICORPINFORMTICAINDUSTRIALLTDAumaempresadeengenharia,que desenvolve, implanta sistemas e possui 19 anos de atuao commais de 20mdulos.Nametadede2014,foiincorporadopelaorganizaoosetordequalidade,quetemtrabalhadoativamenteparamelhorarosresultadosdequalidadedosistema,assim como, melhorar os processos de desenvolvimento e comunicao entre ocliente, a equipee a gerncia. Aps 19anospioneiros desenvolvendosistemas, aorganizaoredesenhouasprincipaisferramentasdegerenciamentoeautomao,asconcentrando em um nico mdulo na nuvem, principalmente para dispositivosmveis.
O Projeto Piloto emestudo identifica as caractersticas de ummdulo doSistemacomrequisitosfuncionaisenofuncionais,ondesuaprincipalcaractersticaocontroleoperacionaleaautomaodasinformaesdequalidadedagua.
1.4.OrganizaodoTrabalho
Estetrabalhocompostoporcincocaptulos,queestoorganizadosem:captulo1irapresentaramotivaoparaaexecuodestetrabalho,bemcomoosobjetivosquesepretendealcanar. Ocaptulo 2, a fundamentao terica para o desenvolvimentodestetrabalho.Ocaptulo3irapresentarametodologiaaplicada,comadefiniodoprojeto piloto, as tcnicas de anlise de requisitos e a aplicao. O captulo 4,apresenta a pesquisa em execuo, os testes de aceitao implementados comCucumbere,emseguida,ostestes,paraautomatizaoemRuby.Porfim,ocaptulo5, apresenta as concluses obtidas no estudo realizado e consideraes finais epossveistrabalhosfuturos.
-
122.FundamentaoTerica
Estecaptuloapresentar osmtodoserefernciasdoembasamentotericoparaaexecuodestetrabalho.
2.1.AbordagensdeTeste
Emmeadosde1996a2000,comosurgimentodosmtodosgeis,foielaboradocomoprticaodesenvolvimentodetestesdeunidadeantesdocdigofontedosistema,aabordagemchamada TestDriven Development (TDD). Este processo consiste emescrevertestes,desenvolveromnimoparaostestespassarem,eemseguidarefatorarocdigoparamelhoraraimplementao(ASTELS,2003).
Segundo Beck (2002), este modelo tambm conhecido como Unit TestDriven Development (UTDD), na qual foi incorporado ao planejamento extremeProgramming(XP),paraapoiarodesenvolvimentonaqualidadedocdigo,evitandodefeitos,almdeestarproduzindoumasute(testset)detestesderegresso.
Emparalelo,asempresasdedesenvolvimentodesoftwaresofremparaaprovarcomoclientequandoumsoftware,oumesmoumafuncionalidade(feature)depoisdecompleta,noestarcomocomportamentocomodeveria(CRISPIN,2002).
Nesteponto,aabordagemde UserStories implementaoscritriosdeaceite(acceptancecriteria) que umaabordagembemparecida como teste tradicionalusandocasosdetestes,ouseja,soescritosostesteseexecutadosmanualmenteapsaimplementaodealgumafeature(SCHWABER,2002).
Notados os problemas descritos acima, surge o Acceptance TestDrivenDevelopment (ATDD),comoextensodoTDDedoplanejamentodetestesdoXP,que cria testes automatizados, guiados pelos critrios de aceite do cliente,documentadosemuserstoriesouCasosdeTestes(PUGH,2011).
Esta abordagemprov os benefcios do TDD incorporando os critrios donegcio, dessaforma,uma feature estariacompletaquandoalmdasnecessidadestcnicas,tambmimplementasseostestesquecomprovamqueaimplementaoestsecomportandocomooesperado(ADZIC,2011).
Maistardeem2004,surgeoAcceptanceTestDrivenPlanning(ATDP),comoumaabordagemquedirigeodesenvolvimentoportestesdeaceiteescritopelocliente(CRISPIN,2002).
Nessaabordagemostestesdevemserescritosjuntamentecomocliente,ouseja,duranteareuniodeplanejamentodaiterao,ouantes,dela.Dessaforma,tantoaequipededesenvolvimento,quantooclientealinhamostestesoucomportamentos
-
13esperados, para que a funcionalidade esteja completa e a iterao atendendo aoscomportamentosesperados(MILLER,2015).
Esse modelo se mostrou mais fcil de gerenciar, mas ainda existia umproblemadecomunicaocomocliente,quenoconseguialerostestesdeaceitenaformaautomatizada.Almdisso,emalgunscasos,ostestespodiamsermodificadosna Story e os testes automatizados mantidos como antes, o que tambmgeravaretrabalho(WATT,2004).
Testesdeaceitaodescrevemosrequisitosdecaixapreta,identificadospelaspartesinteressadasnoprojeto,doqueosistemadevercumprir.Nodesenvolvimentode software tradicional testes de aceitao so normalmente consideradas comoartefatosdeteste,masnarealidadesoosprimeirosrequisitosdaClassedeartefatos,porquedescrevemoscritriospelosquaisosinteressadosirodeterminarseosistemacumpreoqueprecisa(AMBLER,2013).
Emsuma,servemcomoespecificaesexecutveis. Asregrasdenegcios,caractersticas, requisitos tcnicos (nofuncionais), e at mesmorequisitos deusodetalhadaspodemserfacilmentecapturadoscomotestesdeaceitao(COHN,2004).
Baseadoemummodelodedomnio, ofocoprincipal paraasnecessidadescomplexas,queligaaimplementaopremissadoprojetoorientadoaomodelododomniochamadodeDomainDrivenDesign(DDD)(EVANS,2004).
ConformeEvans(2004),DDDumaabordagemparaodesenvolvimentodesoftwarequepropiciaacolaboraocriativaentreespecialistastcnicosededomnio,pararefinariterativamenteummodeloconceitualqueabordaproblemasespecficosdedomnio.
BehaviourDrivenDevelopment(BDD),baseadoprincipalmenteemDDDeTDD. Envolve o negcio, teste de software, desenvolvimento e planejamento,mantendoos testes deaceite automatizados deumaformasimples paraocliente,desenvolvedores,analistasdaqualidadeedemaismembrosdaequipealereentenderocomportamentodafeature(CHELIMSKYat.al,2010).
2.2.BehaviourDrivenDevelopment
O termo BDD foi criado por Dan North por volta de 2003, para resolver umadificuldadedoTDD(CHELIMSKYatal,2010).
Baseado nesse ideal, Dan North sugeriu mudar a palavra de teste paracomportamento (behaviour). Para concretizar sua ideia, Dan North escreveu oJBehave,umabibliotecadeBDDemJava.NomundodeRuby,BDDcomeouase
-
14concretizarquandoDanNorthportouoJBehaveparaRubycomonomedeRBehave(CHELIMSKYatal,2010).
Em2005, inspiradopela ideia deBDD, StevenBaker escreveua primeiraversodoRSpec.Temposdepois,oRBehavefoiintegradoaoRSpeccomonomedeStoryRunner.Finalmente,em2008,AslakHellesoyreescreveuoStoryRunner,queochamoudeCucumber(CHELIMSKYatal,2010).
Atualmente, BDD uma abordagemde desenvolvimento de software quepropeodesenvolvimento,especificandoasvriascamadasdecomportamentocomtestesautomatizados,seguindoumaabordagemde outsideindevelopment.Ouseja,comece primeiro especificando o comportamento de uma funcionalidade e depoisimplementea(COOPER,2011).
Depoisdisso,precisoespecificarasclassesemtodosqueseronecessriospara implementar as classes. prtica de comear o desenvolvimento de umafuncionalidadecomtestesdeaceitaoe,depoisfazerostestesdeunidade,dseonomedeATDD,conformevistoanteriormente.EssaumadasprticasnasquaisoBDDsebaseia(GARTNER,2012).
UmdospontoschavesdoBDDfacilitaraassimilaodosobjetivosparaquetodostenhamumentendimentoclarosobreoqueoprojetopretendeentregar,comoelevaibeneficiaronegcio(SMART,2013).
NoprocessodedesenvolvimentocomBDD,umacolaboraopercorreumlongo caminho do conhecimento compartilhado, desenvolvimento e qualidade.
Conformeilustraafigura1,oconhecimentotemfocononegcio,isto,apartir da colaborao, as equipes da qualidade e desenvolvimento preparam oconhecimento para a implementao do cdigo e dos testes de aceitaoautomatizados.Ouseja,aprodutividadenesteprocessoevoluiacadaciclodeumaiterao,natentativadereduodecustoseaumentodaqualidade.
-
15
Figura1.ProcessodedesenvolvimentocomBDDFonte:(SMART,2013)
A abordagem de teste BDD, de criao de comportamentos testveis eautomatizados, agregavalor paraoclienteantesdaexistnciadocdigofonte, ouseja,evitamdefeitosbaseadosemcomportamentoegeramumconjuntodetestesderegresso baseado nesses comportamentos. Vale entender pelo menos estes trsprincpiosbsicosparainiciaratestarcomBDD(NORTH,2015):
1. Osuficientesuficiente:Nodevemosautomatizartudo,massimtudooquedescreveocomportamentoesperadodoprodutopelocliente.Osuficienteparadesenvolver a soluo. Mais do que isso desperdcio de esforo.
2. Entregarvalorparaosstakeholders:Entregarsomenteoquetemvalorparaocliente,nadamais.Seoqueestiverfazendonoagregavalorparaoclienteounopotencializarovalorentregue,paredefazer.
3. Tudocomportamento: Tudoqueumsoftwarefazpodeserdescritocomocomportamento e explicado para qualquer pessoa que tenha o domnio donegcio.Noimportaonveldeteste,otipodefuncionalidade,sempreserdescritocomocomportamento.
BaseadonorepositrioTDD,BDDe/ouATDD,conformeilustradoabaixonafigura 2, as funcionalidades so preparadas desde o incio do processo a seremautomatizadas.Esteprocessodimensionaacapacidadedecenriosdetestes,apartirdoscritriosdeaceitaolevantadosnoinciodoplanejamento.
-
16
Figura2.BenefciosdoProcessodedesenvolvimentoBDDFonte:(SMART,2013).
OsbenefciosdoBDD(figura2)permitemfocar noesforo, evoluindoosrequisitosparaqueasmudanassejameficientes.AsadaptaesdosdesafioscomosobjetivosdaorganizaosodesenhadascomaabordagemdeBDD,requerendoaltonvel de entendimento dos requisitos do negcio e contribuindo com umadocumentaocolaborativa(SMART,2013).
Ashabilidadeseprticasrequeridasso(NORTH,2015):
Escreverbonscenriosepegaraprtica;
Nenhumanecessidadedemanuteno;
Produzircenriosdetestescomoseestivessecodificandoaregradenegcio.
2.3.ProcessogilcomSCRUM
Scrumumprocessogilquepermiteasequipesseconcentrarememforneceromaisaltovalordenegcio,nomenortempopossvel.Asequipespodemrapidamenteerepetidamenteinspecionar software realdetrabalhodepoisdecada Sprint,queduraumperododeduassemanasaumms(LINZ,2014).
Scrumusaumaabordagemempricadegesto,quepodesercombinadacomestruturasdedesenvolvimento,comoalinguagemdeModelagemUnificada(UML)enoRationalUnifiedProcess(RUP)doprojeto(SCHWABER,2001).
Caberessaltarque,oprocessodedesenvolvimentodeprodutosdesoftware,chamado OpenUP foi uma nova verso RUP, coma proposta de criar umnovo
-
17processoenxuto,completoeaomesmotempoextensvelparaagregarosconceitosdoRUP.Nestecontexto,foiidealizadoporespecialistasdaIBM,paraadicionarvalorasprticas geis, principalmente para as metodologias XP e o Scrum, focadoprincipalmenteemprojetoscomequipespequenas(OPENUP,2015).
Oprincipal objetivo proporcionar umambiente rpido, criativo, de autoorganizaoquepermitaasequipestrabalharemindependentemente, masdeformacoesaparaatingirsuasmetas(SCHWABER,2002).
O Scrummaster, representaagestoe responsvelporgarantir valoreseprincpiosScrum.Comolder,aequipeestprodutivaeprotegidacontrainterfernciasexternas(MARTIN,2002).
Um backlog doprodutoconterositensqueaequipe Scrum irtrabalharedefinidosnaSprint.ASprintpodedurarat30diaseterminacomocdigotestvel.Asalteraesnosopermitidas,umavezqueaSprintjtenhacomeado.Aduraoconstantelevaaumritmonoqualoprodutoadequadamenteconcebido,testadoecodificado.AsatividadesdaSprintsorevisadasemreuniesmensais(SCHWABER,2002).
Obacklogdoprodutoumalistadetodootrabalhodesejadonoprojetoegeralmenteumacombinaodetrabalhobaseadonasestrias,etrabalhobaseadoemtarefas.Oproprietriodoprodutoresponsvelpelobacklogproduto,etambmpeladataderelease.Omestreeoproprietriopodemfazerajustesnalistadeacordocomasnecessidadesdenegcios,podendoaceitarourejeitarotrabalhoapscadaciclo(SCHWABER,2002).
Afigura3correspondeoesquemadeplanejamentodeumaSprint.AprimeiraparteplanejadaverificaoBacklogdoprodutocomoquetemqueserfeito.Eento,naSprintPlanningsodefinidasastarefasdoescopodedesenvolvimento,juntocomasprioridadesdaqualidade,comoporexemplo:melhorias,defeitos,testesderegressoeetc. definido o escopo, as tarefas so representadas no Kanban Board da SprintBacklogdecadaiteraodaSprint.
-
18
Figura3.SprintPlanningcomBDD.Fonte:(PRPRIOAUTOR,2015).
Osanalistas,engenheirosegerentesdetestedevemcompreenderasdiferenasentreostestesemmodelosdeciclodevidatradicionaisegil,afimde,trabalhardeformaeficazeeficiente.Acapacidadedeadaptarseaocontextodeumdadoprojeto,incluindoasprticasdedesenvolvimentode software,umfatorchavedesucessoparaaqualidade(LINZ,2014).
Quantomaisprximodocaos,maisasorganizaesdevemconsiderarprticasgeis no processo de desenvolvimento. Cada organizao deve avaliar as prticasdisponveisnomercadoeadaptlas,deacordocomarealidade.
ConformedescritonoprogramaFoundationLevel,asatividadesdetesteestorelacionadascomas atividadesdedesenvolvimento, portanto, os testesvariamemdiferentesciclosdevida(BLACK,2009).
ZiaMalikafirmaqueoBDDdeveserutilizadoparaapoiarequipesScrumnoBacklogdoproduto(2009).Orefinamentodobacklogdeprodutoindicaqueaequipeestcompreendendooquedeveserfeito.
Nafigura4,mostraociclodevidadosoftwarederefinamentodo BacklogparaaimplementaoScrum.
-
19
Figura4.CiclodeVidadeImplementaoSCRUMFonte:(ALLIANCE,2015)
Quandoexistir umentendimentoeumavisodosobjetivos denegciodosoftwareportodaaequipe,possveltrabalharcomos stakeholders nosentidodedefinircomoelesdesejamqueessesobjetivossejamatendidos(LINZ,2014).
2.4.Cucumber
NestaseoserabordadaaferramentaCucumber,queexecutadescriesfuncionaisdetextosimples.AlinguagemqueentendeCucumberchamadodeGherkin,quesoasregrasdenegciolegveis,baseadoemDomainSpecificLanguage(DSL)naqual,descreve ocomportamento do software semdetalhar comoesse comportamento implementado(WYNNEatal,2014).
Na seo 2.2 vimos que BDD uma abordagem de desenvolvimento desoftwarequeprega ir descobrindoas regras denegcio e suas APIs, utilizandotestes para especificar, comeando pelas camadas mais externas e depois as maisinternas.
No Mundo Ruby, uma das ferramentas que nos ajuda a fazer isto, oCucumber, queuneespecificaofuncionaleautomatizaodetestesdeaceitao(BARAUNA,2015).
Na prxima seo, soapresentadas a utilizao de Cucumber e melhoresprticasdeuso.
2.4.1.CaractersticasdoCucumber
Oprincipalusode Cucumber pelofatodefazertestesdeaceitaodaaplicao.Acontecequeusarsomenteparaautomatizarostestesdeaceitao,provavelmentesetornecustosoparaoprojeto.
-
20Paraamelhorutilizaodaferramenta,caberessaltarousocorretoeaderncia
nosseguintespontos(RIBEIRO,2015):
Estimularaconversacomoproprietriodoproduto,oupessoadenegcios,demodoaentendermelhorsobreosrequisitos;
Utilizadoparauniraespecificaocomostestesautomatizados,fazendocomqueadocumentaonofiquedesatualizadaemrelaoaocomportamentodosoftware;
Tornaraespecificaoderefernciadocomportamentodosistemafcildeserlida por qualquer envolvido no projeto. Isso chamado de LivingDocumentation.
Na prxima seo, so apresentadas as principais caractersticas de comoCucumber pode resolver lacunas de comunicao no projeto, estimulandoprincipalmenteaconversasobreosrequisitos.
Vale discutir melhor, sobre o que Cucumber ir ajudar no projeto nosprximoscaptulos,aolongodestetrabalho.
2.4.2.Cucumbercomoestmulodeconversasobreosrequisitos
Na seo 2.3, abordouse o desenvolvimento gil com SCRUM, que captura osrequisitosfuncionais,comoUserStoryefuncionacomoumlembretedeumaconversafuturacomoProductOwner.
Oquedeveserconversadoparaespecificaruma UserStory ocritriodeaceitao.Umatcnicausadaparadefinirocritriodeaceitedeuma UserStory, levantarosexemplosdeusodessaestria(COHN,2004).
Percebesequeaolevantaralgunsexemplosparamelhoraroentendimentodecomo o usurio poderia usar a funcionalidade, obtmse uma listagem destesexemplosdocumentadosaosoftware,etambmutilizadosparaautomatizartestesdeaceitao(ADZIC,2009).
Para ilustrar como cada requisito listado como cenrios de uso dafuncionalidadecom Cucumber,afigura5mostraque,precisaseguirumaestruturareconhecidaporCucumber.
-
21
Figura5.EstruturadeCenrioscomCucumberFonte:(BARAUNA,2015)
SegundoGojkoAdzic(2011,p43),comentaqueestatcnicadeespecificarrequisitos funcionais utilizando exemplos de uso, denominada Specification byExampletratadacomolinguagemorientadaalinhas,queutilizarecuoparadefiniraestrutura. Afigura6mostraos finsdecadalinhanaestruturadeumpassoaserexecutadoeminglscomalinguagemGherkin,quesoespecficasdoCucumber.
Figura6.EstruturaSimplesCucumberemInglsFonte:(CUKE,2015)
Aestruturaemportugusestdisponvelapartirdaverso1.9.3doRuby.Paraconfigurara feature emportugus, bastaadicionar aseguinte linhanocomeodoarquivo:
#language:pt
Apartirdisso,asfeaturespodemsercriadasemportugus,comoporexemploafigura7:
-
22
Figura7.EstruturaCucumberemPortugusFonte:(CUKE,2015)
Neste trabalho, a estrutura em portugus ser utilizada para facilitar oentendimento entre as equipes distribudas, somente no idioma em portugus doBrasil.Entretanto, possui uma lista com mais de 50 idiomas suportados porCucumber. Paralistarosidiomasqueo Cucumber suporta,bastadigitaralinhadecomandoabaixo:
cucumberi18nhelp
Umadascaractersticasdo Cucumber,queostestespodemsercriadosnalnguanativa,facilitandoaindamaisoprocessoeaintegraocomocliente(CUKE,2015).
2.4.3SignificadodaslinhasCucumberNesseponto,jpossvelperceberdiversasvantagensdetrabalharorientadoaosobjetivosdonegcio,segmentandoessesobjetivosemfeatures,descrevendoemcenrioseenriquecendoessasestriascomexemplos(BARAUNA,2015).
Aspalavraschavestmsignificadoespecialnasferramentasdeautomaodetestes.ParalistaraspalavraschavesdoCucumberemportugus,digitealinhadecomandoabaixo:
cucumberi18npt
Atabela1mostraasprincipaispalavraschavesutilizadascomseusrespectivossignificados:
Feature Soasfuncionalidadesqueosistemadeve
-
23
Funcionalidade ter. Deveser granularizadaemunidadesmenores,possveisdeserementreguesemumanicaiterao.
BusinessGoal
ObjetivodoNegcio
Arazodafuncionalidadeexistir,ouseja,oobjetivodonegcio.
UserStoryScenario
Cenrios/Requisitos
Comooobjetivodonegciodevefuncionarparacobrirosrequisitos.Integratodasasreasresponsveispelosoftware.
Given
Dado
Contextodeteste. Adicionaasprecondiesparaaexecuodoteste.
WhenQuando
Quandoalgumacoisaacontece.
Then
Ento
Esperaseporalgumresultado.
Examples
Exemplos
Permitequeoentendimentosejacompartilhadoentreos stakeholders, usandofrasessimples.
Tabela1.PalavraschavesdoCucumberFonte:(CUKE,2015)
Asfeaturespodemserquebradasemestriasdeusuriosexplorandoumafacetadiferentedoproblemaquedeveserpequenaobastante,parasertotalmentedesenvolvidaemumaiterao(SMART,2013).
Outra definio que devem ter um processo dinmico e iterativo, parafacilitaracomunicaoeoentendimentocompartilhadosobreoproblema.Acadaimplementao devese buscar o feedback dos stakeholders, permitindo assim orefinamentodasestrias subseqentes,adicionandonovashistrias,ouat mesmo,eliminandoasquesetornaremdesnecessrias(SMART,2013).
-
24Outraetapabastanteinteressanteofiltroparaselecionarosexemplosdefor
maquecadaexemploestejaassociadoaumobjetivodenegcioespecfico(GARTNER,2012).
Essesexemplossoprimordiais,poisservirodeparmetroparavalidarsealgicaestsecomportandocomodeveria.
2.4.4.DocumentaoExecutvelcomCucumber
Pararesolveroproblemadadocumentaodesatualizadaaolongodasmudanasnoprojetoetambm,nosetornaremobsoleta,Cucumberforneceabasenecessriaparaconstruirmosumaespecificaogileatualizada(CUKE,2015).
Umdos pontos chaves da especificao gil facilitar a assimilao dosobjetivos,equetodostenhamumentendimentoclarosobreoqueoprojetopretendeentregar,ouseja,decomoserbeneficiadoonegcio(SMART,2013).
Asequipessebeneficiamconstruindoosoftwarecomestriasextradas,dasespecificaes durante o levantamentoderequisitos. Os testes construdosusamalngua nativa em combinao com a linguagem ubqua (Ubiquitous Language),seguindoumpadroparaaescritadestesarquivos,afimdefacilitaraautomatizaodosrequisitosnaformadetestesdeaceitaoautomatizados(SMART,2013).
A implementao dos testes de forma antecipada, revela defeitos naespecificao e abrange a anlise de requisitos na automatizao dos testes deaceitao(AMBLER,2013).
O esquema de especificao gil, como Cucumber e a colaborao daqualidadepoderesolverproblemasdaespecificaodesatualizada.Adocumentaotornaseoquedeveser,ouseja,testvel,atualizadaedefcilmanuteno(CUKE,2015).
Ao ter a especificao do sistema junto comos testes que automatizamaespecificao,aequipeganhaobenefciodediminuiraschancesdadocumentaosetornar obsoleta, porqueseocomportamento especificadomudar, entoo teste irquebrar,isto,tornarumaEspecificaoExecutvel(WYNNEatal,2013).
Oproblemade ter querecorrer aocdigodo software parasaberoqueosistemafaz,quenemtodomundotemhabilidadesparafazerisso.BusinessAnalystProductOwner,ScrumMasters,testerseoutros,provavelmentenoconseguirotirardvidassobreocomportamentodosoftwarelendoocdigo(LINZ,2014).
Adocumentaoatualizadaresolveesteproblema, poisse tornaumafonteautoritativasobreocomportamentodosistema,ebemmaisfcildeserlida(SMART,2013).
-
252.5.FerramentasdeGestodeTeste
Nestaseoserapresentadaaferramentadegestodetestes,chamadaXRAY.Estaferramenta um plugin do JIRA, para implementao de testes manuais eautomatizados,nogerenciamentodasexecuesdetestes(XRAY,2015).
Ostestesautomatizadosno Cucumber,utilizandoo pluginXRAYnoJIRA,permitemexportar os arquivos comas funcionalidades pelo JIRA,quepodemserusadosemqualquerambienteoperacional,porexemplo: Windows,LinuxouMacOScomsuporteCucumbereRuby.Osseguintesrecursossosuportadospelaferramentadegestodetestes(XRAY,2015):
Suporteparatestesmanuaiseautomatizados;
Criar,editarevisualizartestescomoIssuesnoJIRA;
Especificarasetapasdetestesmanuais,passos,dados,resultadosesperadoseanexosdeentrada;
SintaxeGherkinCucumberdetestesautomatizados;
Prcondiesassociadasaostestesautomatizadose/oumanuais;
Conjuntodetestespodesermescladoscomtiposmanuaiseautomatizados;
Relatardefeitosduranteaexecuopassoapassodetestes,associadaaIssue;
Planejarexecuesdetestesedistribuirparaosmembrosdaequipe;
GerenciartestesnaexportaodefeatureseimportaoderesultadosdetestesCucumber;
IntegradocomXReportparaoJIRA,naqual,possvelexportarRelatriosdostestes;
Clonar,moveroucopiartestesemconjuntocomostestes.
Afimde,manteracoernciaquandoostestesmudam,XRAYasseguraqueaomodificar a definiodoteste, ouat mesmoaexclusode testes, noafetar asexecuespassadas(XRAY,2015).
2.5.1.CritriosdeAceitaoAutomatizados
Os critrios de aceitao automatizados so executados atravs das ferramentasexternasRubyeRspec,quecontrolamaexecuodetestes.Podemserautomatizadasastarefasrepetitivasnoprocessodeteste,ouadicionartestesqueseriamdifcildeexecutarmanualmente,disponvelparafazeremCucumber(NORTH,2015).
-
26ParainiciaraconstruodocasodetesteautomatizadoprecisocriarnoJIRA
umaIssuetipoTest,permitidoapartirdopluginXRAY.AopressionarobotoCriarIssue,aseguintetelasermostrada,conformemostraafigura8(ATLASSIAN,2015):
Figura8.TelaparacriarIssuedetestenoJIRAcomXRAYFonte:(XRAY,2015)
Na figura 8, est representado um Projeto de Demonstrao, na qual soselecionados:Projeto,tipodeIssuenestecasodeteste.Naabadetalhessodefinidosos tipos de teste, que podem ser manuais ou Cucumber. Logo abaixo, mostra aestruturaimplementadadotipodetestesautomatizadoscomoexemplo.
CaberessaltarqueostestesconstrudoscomCucumbersodivididosemdoistiposdecenrios(XRAY,2015):
1. Cenrio: umconjunto de instrues exclusivamente composta por valoresconstantes,quequandoexecutadosporumaferramentamostraumresultadoesttico,porexemplo:2+3=5.
2. CenrioEsboo:umconjuntogenricodeinstruescontendovariveisquequando executados por uma ferramenta, solicitar resultados variados deacordocomaentradaespecificada.
Ser permitida a edio da Issue do teste Cucumber, a partir da aba dedetalhes,podendosereditadacomnovospassos. Afigura9ilustraatelaquesermostradadaediodoCenrioEsboocomaestruturaCucumber.
-
27
Figura9.EdiodaIssuedetestedeumcenrioesbooFonte:(XRAY,2015)
DepoisdeconcludaamodelagemdostestesCucumber,possvelvisualizarasinformaesdetalhadasparacadatesteimplementado.Conformemostraafigura10:
Figura10.DetalhesdeumaIssuedeTestesdotipoCucumberFonte:(XRAY,2015)
OstestesimplementadoscomCucumbernoJIRA,podemserexportadosparacaracterizar arquivos prontos para serem executados. Para exportar um testeCucumber e caracterizar um arquivo, devem ser tomadas as seguintes etapas:
-
28 Passo1:AbraaIssuedeTesteCucumber; Passo2:SelecioneMais>ExportarparaCucumber.Oarquivoserbaixado.
Afigura11, ilustraospassosmencionadosacima,paraexportaodeumafuncionalidadeimplementadanaestruturaCucumberdentrodoJIRA.
Figura11.ExportarfeaturesCucumberFonte:(XRAY,2015)
Depois de exportado na estrutura Cucumber, necessrio preparar umamquina de testes com as ferramentas que faro o reconhecimento das featuresCucumber.OmanualdeinstalaoparaapreparaodamquinadetestenoambienteLinuxUbuntu14.0.4,encontradacomoANEXOA,nesteartigo.
2.5.2.DashboarddoProjetodeTestes
XRAYparaJIRAforneceo Dashboard cominformaesdoprojetodeteste,parapossibilitar uma viso geral das execues, entre outros filtros personalizveis.
Almde,permitirgerargrficosdecoberturaderequisitos,apontaoquantoorequisitofoicobertopelostestesassociadosaele.Conformeexemploapresentadonafigura12,comosgrficosdacoberturaporversodosistemae/ouporprioridade.
-
29
Figura12.DashboardnoJIRAFonte:(ATLASSIAN,2015)
2.5.3.AssociandoRequisitoseDefeitos
RequisitosedefeitospodemserassociadoscomostestescomomecanismodeligaopadroexistentedoJIRA.Existemtiposdelinksespecficosparaassociaressestiposdeemissoapresentadosabaixo(JIRA,2015):
RequisitoR"testadapor(testedby)"testeT(ouconjuntodetesteTS);
TesteT(ouconjuntodetesteTS)"testes(tests)"requisitoR;
DefeitoD"criadopor(createdby)"testeT;
DefeitoD"testadopelo(testedby)"testeT(ouconjuntodetesteTS);
TesteT"criado(created)"defeitoD;
TesteT(ouconjuntodetesteTS)"testes(tests)"defeitoD.
Umrequisitopodeserassociadocomumoumaissubrequisitos,resultandoumahierarquiaderequisitos.Orequisitopodesertornarum"EPIC",portanto,podemser decompostos em requisitos menores, associado com testes especficos. Estadecomposiodosrequisitosfacilitaogerenciamentoderequisitosagrupandoosefazendoumaanlisedecoberturamaisfacilmente(JIRA,2015).
-
302.5.4.RelatriodeTestes
Oplugin XPORTERdo JIRA umplugin desenvolvido para fornecer de formasimples, a exportao de arquivos nos formatos (PDF, Docx, etc.), para seremincludosnos relatrios daempresa. Sendoaltamentepersonalizvel, trabalhacommodeloscriadospelousurioemdiversasextensesdearquivo(XPORTER,2015).
Integrado ao XRAY e JIRA, proporciona exportar testes nicos ou umconjuntodetestes(testSet)deumamassadetestes.AprpriapginadoXPORTER,fornecemodelosdestesrelatrios,conformemostraafigura13(XPORTER,2015):
Figura13.RelatriodoprojetoexportadoFonte:(XPORTER,2015)
Algumasdasprincipaisfuncionalidadesso(XPORTER):
ExportaoparaasextensesPDF,DOCX,RTF,ODT,PNGeSVG;
Definirmodelosdedocumentoscustomizadosparaupload;
Seleodomodeloparaexportao,nicaoumltipla;
Esquemasdepermisso,modelosconfiguradosporprojeto,tipodeproblema,papisdeusurioseprojetos;
Anexosdeimagemnaexportao;
Suporteparacapaspersonalizadaseseesestticasparamltiplosarquivos,entreoutros.
-
313.Metodologia
Nestecaptulo,apresentadaaMetodologiadotrabalho,assimcomo,asavaliaesdopontodevista tcnicodeumlevantamentodeestudodecaso, para implantar umprojeto de testes piloto no perodo de trs meses. Almdisso, so destacadas aslimitaeseasetapasdesenvolvidasnestetrabalho.
3.1.MtodosdePesquisa
Nestetrabalhoser utilizadaapesquisadeestudodecaso,queir envolvercomomtododepesquisadeestudodecaso,aPesquisaao,demodoacooperarcomoprocessodaempresa,ecomoobjetivodeinteragir,modificar,melhoraroambientequeestsendoestudado(GIL,1994).
Oestudodecasonorteiaospesquisadoresnahoradeaprimorarosplanosparaacoletadedados.Yin(2001),dizqueocasopilotoutilizadodemodoformativo,ajudandoainvestigar,definindooinstrumentodeavaliao,astecnologiasespecficasaseremempregadasnacoletafinaldedados,eaarticulaofinaldasproposiestericasdoestudo.
Foramreunidos neste projeto piloto de teste, alguns papis importantes deseremdefinidos,naqualsohabilitadosacontribuirparaoprocessodeplanejamento.Por exemplo, desenvolvedores, o dono do produto, dono do projeto, qualidade eanalistadenegcio.
Comoresultadodestapesquisa,serpropostoumDashboard,comasmtricase resultados atingidos com a proposta de novas prticas de testes, comunicao,rastreabilidadeemitigao.
Oprojeto piloto de teste necessita gerenciamento de testes para tratar dasespecificaesexecutveis,dostestesdeaceitaoautomatizadoscomdetalhesdentrodeumplanodetestes,duranteoperododetestes.
Oplanodetesteircomporasetapasepassosaseremalcanados,osobjetivosdostestesedonegcio.Alistadeatividadesdetesteaplicada:
Planejamentoecontrole; Anliseemodelagem; Implementaoeexecuo; Avaliaodecritriosdesadaedivulgaoderelatrios; Atividadesdefechamentodeteste.
Nosprximoscaptulossomostradososdetalhesdoplanodeteste.
-
323.2.ContextodoProjetoPiloto
Oprocessoculminantenestetrabalho,iniciouem2014,comanecessidadedemaisQualidade,paramelhoraracomunicabilidadeerastreabilidadedentrodosprojetosdaorganizao. Umadas responsabilidades foi identificar os problemas do processo.Aps10mesesdeprojeto,podemseverosresultadospositivos,atingidosnaadoodemtodosgeis.
Apesardedemonstraralgumasfalhasnoprocesso,avisibilidadedasmelhoriasnos fluxos de trabalho dos envolvidos no projeto, foi completamente atendida. Aadeso por ferramentas no contexto gil ajudou no gerenciamento e emmtodoseficazesdedesenvolvimentodesoftware.Oprincipaltrabalhodirionaorganizaoestnamudanadeparadigmadeformageral.
3.3.TcnicadeColetadeDados
Para a realizao deste trabalho, ser efetuada a coleta de dados por meio daespecificaofuncional.Olevantamentodosrequisitosfazpartedaetapainicialdoprocesso.AnalistadeNegcio,PO,Qualidadeeogerente,provminformaoparatodososenvolvidosnoprojeto.
Deacordocomaespecificaofuncional,ostestesBDDseroimplementadosnaestruturaCucumberpara,finalmenteseremexecutados.DuranteaSprintPlanning,adaptouseautilizaodecartasPlanningPoker,paraincentivarasnovasprticasdeestimativas de compartilhamento de informao no conhecimento, junto com oentendimentoniveladodaequipe.
3.4.TcnicadeAnlisedeDados
Combasenoplanejamentoda Sprint, nadefiniodos papis comas respectivasatividades,ascoletasseroefetuadasnofluxodoprocessoeciclodedesenvolvimentodesoftware,efetuadaspelasatividadesdistribudas.
Os resultados desta anlise seroapresentados durante o presente trabalho,atravsdosrelatriosgeradospelaferramentaJIRAcomDashboard,naverificaodaeficciadosresultadosdostestes,noprocessodedesenvolvimentoenoretornodocliente(ATLASSIAN,2015).
3.5.LimitaesdeEstudo
Porsetratardemuitasatividadesdesenvolvidasqueenvolvemasatividadesdosetordequalidadedaorganizao,porfaltaderecursosnoprojeto,ondenecessrioumprazomaiorparaseremaplicadasasduasvises,comousemaabordagemBDD.
-
33SeraplicadoumrelatriocomosresultadosdostestesdeBDDdoprojetopi
loto.Algumasdasmtricasecomparaesanalisam,podemserasmelhoriasnoprocesso,definidasapartirdamtricadereaberturadedefeitosporfaltadeentendimentodecomportamentodasfuncionalidades.
Conformecontextoatualdaorganizao,relatado,serseguidaaestratgiadeimplementarcomCucumberasespecificaesexecutveisparacobrirapenasumCenriodetestes,quevalideostestesautomatizadoseaimplantaodeBDD.
3.6.EtapasDesenvolvidas
AsetapasoupassosdoPlanejamentosolevantadososcritriosdeaceitao,comasregrasdenegciohomologadaspeloclienteconformemostrafiguraabaixo.
Nopasso2,amodelagemdostestesdaanlise,iniciaaimplementaodostestes Cucumber dasespecificaespelaequipedeQualidade, emconjuntocomaanlisedonegcio.Ospassos2,3e4estorepresentadosnaSprintdois,sendoqueoplanejamentoinicialdocronograma(figura14),serimplantarduranteoperododetrsmesesoProjetoPilotoBDD,totalizadoumaimplantaodetestessincronizadocomasetapasaseremalcanadas.
E,finalmente,executarostestesnosciclosdetesteseworkflowinterligados,queiroresultarumainterfacederesultadoscomdetalhesparaocliente,pormeiodoDashboard.Cadaetapasertratadacommaisdetalhes,nosprximoscaptulos.
Figura 14. Cronograma dos TestesFonte: (PRPRIO AUTOR, 2015)
-
34Caberessaltar,queosucessodaimplantaodestaabordagem,vaidepender
dacontribuiodecadaumdentrodaorganizao,comoapoiodagernciaedosenvolvidosnesseprocesso.
Quandoesteprojetodeixardesernovo,contarcomartefatosdetestesprontosparaexecutar,ondepoderserincludaaoutrasutedetestes.Nafigura15,mostraoprocessoSCRUMeBDD,baseadonodesempenhodasatividades,levandoemconsideraoprioridadeseobjetivos.
Figura15.EquipegilinteragindocomSCRUMeBDDFonte:(ALLIANCE,2015)
Oprocessodetestescriaexemplosdetestes,ouseja,emmodelostradicionaisomesmoquecasodeteste, paracobrir melhoriasoumudanasnosistemaquejtenhacdigoimplementado.
Masnaabordagemgil,BDDaplicaoentendimentoeespecificaodostestesna estrutura Cucumber, antes docdigofonte estiver pronto, h possibilidades dedeixloautomatizado.
ConformeociclodedesenvolvimentoBDDrepresentadonafigura16,oprimeiropassooplanejamentoecontroleparainiciaraanliseemodelagemdeescritadasestriasnaestruturaCucumber,trabalhoemconjuntocomoAnalistadenegcio,quepodetantofazerantesouduranteaprimeiraiteraodolevantamentoeanlisederequisitos.
Apsaprimeiraiterao,oprximopassodoanalistadequalidade,interpretarosrequisitosanalisadosparainiciaraimplementaoeautomatizaodoscritriosdeaceitao.Esteconhecimentoadquiridoaolongodesteprocessosercom
-
35partilhadoentreaequipenaproduodeespecificaesexecutveis,noquesereferemostestesautomatizadosderegresso.
Ostestesautomatizadossoexecutadosnaterceiraiteraoeservemcomobasedetestesderegresso.AssimqueexecutadossoreportadososresultadosdostestesnoDashboarddoprojetocomaintenodedaravisibilidadenecessriadoprocessoaoclientefinal.
Figura16.CiclodedesenvolvimentoBDDFonte:(PRPRIOAUTOR,2015).
Oresultadofinaldoplanejamentogilnacoberturadasfasesdetestesmostraavantagemdeumaintegraocontnua,testesdeaceitaoautomatizados,antesmesmodeocdigoestarpronto,relatriodacoberturadosrequisitosdenegcioparaocliente,eapossibilidadedodeployautomtico.Almdemelhoraracomunicaoentreasequipesdequalidadeedesenvolvimentoparasuprirasdemandasdoprojeto.
Noprximocaptulo,serapresentadaaaplicaodoProjetoPilotocomTestesBDD,norealcontextodaempresa,detalhandocadaestgioalcanado,diantedasnecessidadesdonegcioedoprojetocomosresultadosaserematingidos.
-
364.AplicandooProjetoPilotocomTestesBDD
AprincipalrazodeconhecereaderiraabordagemBDD,saberqueadocumentaosetornariamaisatualizada,assimcomo,compartilharumentendimentomelhorsobreasfuncionalidadesdosistema.
4.1.Planejamento,ControleeEstratgia
Oplanejamentoecontroledostestesimplicamnaidentificaodasatividades,dosrecursosnecessriosparacumpriramissoealcanarosobjetivosidentificadosnaestratgiadeteste(BLACK,2015).
Oplanejamentodetestestambmincluiaidentificaodosmtodosdecoleta,orastreamentodasmtricas,utilizadasnaorientaodoprojeto,naadesoaoplanoenaavaliaodasrealizaesdosobjetivos(BLACK,2015).
Aestratgiadeveserdefinidanaetapadeplanejamento.Naqual,aestratgiadetesteaplicadausaraabordagemorientadaporcomportamento,deencontrocomamissoeosobjetivosdoprocessoestudado.
Natabela2,mostraosobjetivosdoprojetopiloto,naqualseroaplicadasasestratgiasdetestes,paraalcanarosobjetivosdonegcio.
ProjetoPiloto
Objetivos ConstruodenovosTestesdeumGuiadoSistemanocodificado.
Requisitos RequisitosfornecidosnaTabela3.
NveldeTeste Testedeaceitaoautomatizadoorientadoporcomportamento(BDD).
PlanoEstratgico Cobrirasnovasfuncionalidadesporprioridadedeimportnciadonegcio.
Tabela2.InformaesdoPlanodeTestesFonte:(PRPRIOAUTOR,2015)
-
37Aodeterminarasmtricasteisduranteasetapasdeplanejamento,asferra
mentaspodemserselecionadas,otreinamentopodeseragendadoeasdiretrizesdedocumentaopodemserdefinidas.
AidiaexperimentarousodastcnicasdeBDDparaautomatizao,comrelativamentepoucoesforo,cujaexperinciapudesseserrelatadaparaservirdeguiaparafuturasiniciativas,mastambmsemprejudicaroandamentodoprojeto.
A partir de algumas experincias, os critrios definidos para seleo dasfuncionalidadesnoprojetopilotodetesteautomatizadoso:
RegrasdeNegcio:conhecidaspelaequipe,parafacilitaroesclarecimentodeeventuaisdvidas;
Funcionalidade Simples: para facilitar o foco no aprendizado entre astcnicaseferramentas;
Projetosematrasosouprazoscrticos:paraminimizareventuaisimpactosetercertaliberdadeparaamadurecernaaplicaodastcnicas;
ProjetarosCasosdeTestes:parafacilitaromapeamentodasaesemcdigo,teremasespecificaesbaseadasemexemplos;
Interfacecomousuriodefinidaesimples: parasimplificarodesenvolvimentoeevitarosproblemascomeventuaislimitaesdasferramentas.
Logoaseguir,seroabordadososdetalhesdestaconstruo.
4.2.AnliseeModelagem
Umavezdefinidosospapiseasatividadesnoplanejamento,BDDir facilitar oprocessodeconstruodosoftware(NORTH,2015).
Durante a anlise dos testes sero definidos os critrios de aceitao quepodemespecificarvaloresouvariveis,nasinformaesdisponveisnomomentodaanlise. O nvel de detalhamento deve atingir umalto grau de granularidade dasfuncionalidades descritas na documentao. A contribuio com a preveno dedefeitos,poracontecernosprimeirosmomentosdoprojetoemaltosnveisdeteste,ser gerenciada desde a primeira Sprint, com maior influncia e orientao nasatividadesdedesenvolvimento.
Desde o primeiro momento, o Workflow das melhorias cobre a anlise daespecificaoexecutvel,naqual,aqualidadevisalevantaroscenriosdetestesquesero essenciais para gerar artefatos de testes de regresso e futuros testesautomatizados. Esta parte do processo possibilita a cobertura mais eficiente das
-
38medidasedosalvosdetalhados.Nafigura17,seroexplicadasasatividadesdecadapapeldefinidonoprojetopiloto.
Figura17.EtapasdeimplantaoBDDFonte:(PRPRIOAUTOR,2015).
Ospapisdefinidosnasetapasdesignadassoatividades,desenvolvidasemconjuntocomosoutrosenvolvidosnoprojetopilotodeteste,estespapiseatividadesso:
Clienteoudonodoproduto: Participadesdeaprimeiraetapa.Asatividadesso:Disponibilizarinformaes,reuniesdenegcioparaentenderoquedevefuncionar,ouseja,qualanecessidadedonegciorecebendocontinuamenteoFeedbackdevalordonegcio;
AnalistadeNegcio, ProductOwner (PO)oudonodoprojeto:Responsvelporlevantar os artefatos do negcio, especificar as regras de negcio, escrever aespecificaodenegcioeprepararainterfacedasestriasdocliente;
Garantia daQualidade: Responsvel por coordenar os artefatos disponibilizadosparaqueatendaasexpectativasdonegcio.AautoraresponsvelporespecificarosCritriosdeAceitedosTestesaanliseeamodelagemdostestesdeaceitao.Comrecursosnecessriosparatodosociclodevidadotesteparaimplementarostestesautomatizados.Aexecuodostestesautomatizadosservircomtestesderegressogarantindoaqualidadedeentregadosobjetivosdostestes.Osrelatriosexploradosnestetrabalhoseromostradosasmtricasdefinidasnoplanejamento.
-
39Desenvolvedores:Duranteaetapadeanliseaequipededesenvolvimentointerpretaasfuncionalidadesdosistemaetiradvidas.Conseqentementenasprximasetapas,ascodificaesdasfuncionalidadesiromelhoraroentendimentodonegcio.
Nestaetapademodelagem,sodescritasasregrasdenegcio,emumalinguagemquequalquerpessoacomdomniodonegciopossaentender. Durante amodelagemdetestes,serenvolvidaaidentificaodoscasosdeteste,ouseja,oscenrioseexemplosdetestesnocontextogilBDDcomfoconoscritriosdeaceitaodonegcio(DDD,2015).
Portanto,parainiciaraimplementaoBDD,deveseteraanliseregistradaparaimplementarnaestruturaCucumber,nestetrabalhosermostradaumadasfuncionalidadeselencada.Assimque,osprincipaiscritriosdeaceitaoforemidentificados,hpossibilidadedeproduzirmaisdeumcenriodeteste,comoapresentaatabela3:
CritriosdeAceitao
Requisitos Estrias:CenriosdeTestes
1Usuriocadastradonabasededadospoderlogarnaaplicaocomasconfiguraesdelogin.
1Usurioscadastradosprecisaminserirdadosvlidosparaoacesso.
2Usuriosemcadastronabasededadosinformaumamensagemavisandoousurio.
3Apslogin,ousuriopodesincronizarosdadoscomservidorquandoonline.
2Inserirumregistronateladeentradafazendoosalvamentooffline.
1Asinformaesregistradasdevemsalvarlocalmentedemodooffline.2Devemostrarumcontadorcomosregistrossalvoslocalmente.
3 Ousuriofazasincronizaodosregistrossalvoslocalmente,deformaonline.
1Aaplicaodevereconhecerosinalwifi;
2Osregistrossalvoslocalmentedevemsersincronizadosnoservidorremoto.
Tabela3.CritriosdeAceitaodaaplicaoFonte:(PRPRIOAUTOR,2015).
-
40Aestriaoucenriodetesteselencado, umafuncionalidadeutilizadaem
qualqueraplicaodesoftware,queservircomomodelodeimplementaoeexecuodemaisoutrostestes.
Nafigura18,solistadososrequisitos,Issuetypedotipofeature,naferramentaJIRAcomopluginXRAY,paraogerenciamentoemapeamentodasfuncionalidades.
Figura18.ListadosrequisitosFonte:(XRAY,2015)
Depoisdosrequisitoscriados,recebemomapeamentoatravsda IssueLink,paraoscenriosdetestes:
1. [REQ1]Usuriocadastradopodelogarnaaplicao
2. [REQ2]inserirumregistrocomsalvamentooffline
3. [REQ3]sincronizarregistroslocalmentedeformaonline
Oscenriosdetestelistadosabaixonafigura19,porexemplo,sorelacionadosaorequisito1,conformelistado:
1. [REQ1,Cenrio1]Usuriodeveacessaraaplicao
2. [REQ1,Cenrio2] Usurionocadastradodevemostrarumamensagemdeaviso
3. [REQ1,Cenrio3]Usuriocadastradopodesincronizarosdadosquandoonline
4. [REQ1,Cenrio1,3]AaplicaoreconheceosinalWIFI.
-
41
Figura19.ListadoscenriosdetestesFonte:(XRAY,2015).
Nafigura20,aexibioapresentadacomosrequisitosecenriosdetestescomumfiltrosalvoparabuscarautomaticamenteumavisogeral,paraocontroledeevoluodaimplementaodostatusdecadaIssue,sendousadofuturamenteparaosDashboards:
Figura20.ListadoscenriosdetestesportipodetesteFonte:(XRAY,2015).
Paraampliarasinformaesdocumentadasnaespecificaofuncionaldaaplicao,procurouseestenderessasinformaesdonveldetesteaplicado,parahaverocompartilhamentoearastreabilidadedoandamentointegradodostestescomodesenvolvimento,naferramentaCONFLUENCE.
Apartirdisso,osenvolvidosnoprojetopodemvisualizarostatusdacoberturadostestes,etambmareproduodealgumscriptdetestequesequeiraexecutarnaestruturaCucumberouautomatizado,conformemostraafigura21:
-
42
Figura21.EscopodetestesAutomatizadosFonte:(CONFLUENCE,2015).
Portanto,essaetapageraumconjuntodefuncionalidadesqueosoftwaredeveter,paraentregarovalordesejado.Umavezquejexistamalgumasfeaturesdealtonveldefinidas,possveldescreverdeformaclara,oqueousurioesperaquandoestiverutilizando.
4.2.1EscopodeTestes
Aaplicaooriginalmenteumaautomaodosprocessosparafuncionaremtablets.As caractersticas de usabilidade, portabilidade e comunicao com outrosdispositivos online e offline,permitiuidentificarasseguintescaractersticasbsicasdaaplicao:
1) Facilidadedeusoparainserirdados;
2) Os resultados so computados offline at fazer o sincronismo pela rederemota;
3) Desenvolvidaparautilizarcomtablets.
Osfluxosdasregrasdenegciotransformamumalistadefuncionalidades,ouseja,umescopodetestesdaragarantiadaqualidadeparaoproduto,atingindoosobjetivosdonegcio.Asfuncionalidadesdaaplicaoso:
1) Ousuriofazloginparainiciar:oAppmostraatelainicialepedeparainserirnomeesenha,conformeapresentaafigura22;
2) O usurio insere um registro e salva offline: as informaes so salvaslocalmente,conformeapresentaafigura23;
3) Ousuriofazasincronizaoonline:asinformaessosincronizadascomumabasededadosremota,conformeapresentaafigura24;
-
43TeladeloginreferenteaoRequisito1,anteriormenteespecificado.
Figura22.TeladeLoginFonte:(COPYRIGHT UNICORP,2015).
Afigura23apresentaatelaemqueousurioinsereumregistro,referenteaoRequisito2,masestsemconexonainternet.Nestecaso,somostradasasinformaessalvaslocalmente.
Figura23.TeladeinseroderegistrosFonte:(COPYRIGHT UNICORP,2015).
NadescriofeitaporGrtner(2002),diversasregrassobreavariao,servirocomomodelodasincronizaoedosregistrossosimplificadasevalidadascomomostradonatabela4,deespecificaesdeexemplos:
Sincronizao Registro
Offline Guardalocal
Online Salvarremotamente
Tabela4.EspecificaoporExemplosFonte:(GARTNER,2002).
-
44Estesexemplosservemcomobasedeestudospara,tornarclarasasmincias
doprojetopilotonaorganizao,queajudamafundamentaroscritriosdeaceitao.
Aterceiratela,apresentadanafigura24,mostraosregistrossendosincronizadoscomabasededadosremota:
Figura24.TelasincronizandoregistrosparaoservidorremoteFonte:(COPYRIGHT UNICORP,2015).
NaprximaetapaesegundaSprint,agarantiadaqualidaderesponsvelporimplementarasespecificaesexecutveisusandoCucumber,Capybara,JIRA,XRAYeConfluencenalinguagemRuby.
4.3.ImplementaodosTestes
Aespecificaodoprojetopiloto,servir comomodelodeimplementaoparaasequipesdedesenvolvimentoequalidade,assimcomo,apresentarummodelodedocumentaoparaoutrosprojetosaseremutilizadosostestesorientadosporcomportamento.
Nestecaso,compartilharesteconhecimentodentrodosprojetosdevefacilitaroentendimentodasfuncionalidadesexigidaspelocliente,almdemelhorarodesempenhodaequipededesenvolvimento,comaatuaodaqualidadeparavalidareexecutaradocumentaonaestruturaCucumber.
AdocumentaodesenvolvidanaferramentaConfluence,permitiracomunicaoerastreabilidadedostestes,eprincipalmenteasexecuesdetestesparaacoberturadosrequisitos.
-
45Conformemostraafigura25,ConfluenceeJIRApossibilitamarastreabilidade
dadocumentaorelacionadaaostestes,ourequisitos,assimcomoumdefeitoouumamelhorianosistema.NoJIRA,seguindoomesmoexemplodoRequisito1,podeseverificararastreabilidadedadocumentaonaprpriaIssue,facilitandoavisualizaocomdetalhesdafuncionalidadecompartilhadopelosenvolvidosnoprojeto.
Figura25.EspecificaodoConfluencevisvelnoJIRAFonte:(CONFLUENCE,2015).
Afeature exportadanaestrutura CucumberdoJIRA,iniciaoprimeiropassoparaaimplementaonalinguagemRuby.Afigura26,mostraatcnicadeespecificarrequisitosfuncionais,chamadaSpecificationbyExample,utilizadonoexemplodeimplementaodoRequisito1,queousuriodeveautenticarnaaplicao,escritonaestruturaGherkindoCucumber.
-
46
Figura26.FuncionalidadeimplementadanaestruturaCucumberFonte:(XRAY,2015).
ParafacilitaraconfiguraoqueestnaferramentaJIRAcomsuporteemInglsparaaestrutura Cucumber,parteseremportuguseaoutraemingls.Sendoque,ocorpodafuncionalidadeseremportugus,eaestruturaCucumber,emingls.
Nafigura27,mostrao workflowdeconstruodoscenriosdetestesparaogerenciamento,sobreacoberturadetestesautomatizados,implementadoseexecutados,conformemostraostatusAutomatizado,nomomentoquefinalizaraexecuo.
Figura27.WorkflowdaconstruodostestesautomatizadosFonte:(PRPRIOAUTOR,2015).
Duranteaimplementaodostestes,aordemdeexecuoserincludanaSprintBacklogdeexecuodetestes.Ogerentedetestedeveexaminaratentamenteasdescries,inclusiveriscoseprioridadesqueprecisemdaexecuodostestesemumaordemespecifica,ouemumequipamentoespecifico(BLACK,2009).
-
47Afigura28,apresentaoKanbancomoscritriosdeaceitaolistados,compostospelostes
tesexecutadosporregrasdenegcioautomatizadosna Sprint1,dasestriasderegressodoquefoiplanejadonoescopodetesteseremexecutados.
Figura28.KanbandoProjetoPilotoBDDFonte:(JIRA,2015).
Umadesvantagemqueparteaservantagem,quenostestestradicionais,ocdigomudabastantedeumaiteraoparaoutradeixandooscasosdetestesobsoletos.Naabordagemorientadaporcomportamento, evitasequemuitas vezes issoacontea,porquesedeveorganizaroprocedimentodeteste,finalizardadoseambientes,everificaroscritriosdeentrada.
ASprint1atenderaessescomportamentosesperados,eaomesmotempo,comoummodelomaisfcildegerenciar.Paragarantirquetodasasetapasdetesteforamplanejadas,emconjuntocomasoutrasatividadesdaSprintbacklog.
4.3.1.EscrevendoRuby
Ruby uma linguagem dinmica, open source com foco na simplicidade e naprodutividade. Temumasintaxeelegantedeleituranatural efcil escrita(RUBY,2015).
umalinguagemdescriptdefinalidadegeralcriada10anosatrsnoJapo.Contrriocrenapopular,umalinguagemorientadaaobjetospura.DiferentementedatecnologiaJava,Rubynopossuiescalares,portanto,nmerosinteirossoobjetosdeprimeiraclasse.AsintaxedeRubypegamuitoemprestadodeSmaltalk,PythoneAda(IBM,2015).
-
48Rubytambmaltamenteporttil,executandoemtodososprincipaissistemas
operacionaisest emevidncianomomento.Aspessoasestocomeandoauslaparaostiposdeaplicativosondesedestaca.Comoeinterpretadaeusadeterminaode tipo dinmica, possvel fazer todo tipo de truques de mgica no tempo deexecuoquesomuitodifceisemJava(IBM,2015).
RubyonRails umaestruturaparacriaraplicativosda Web suportadosporbancosdedadosquemostraessaelegncia.Rake,aversodeMakeeAntcolocadasnoRuby,outroexemplodesseusopotentedalinguagem(RUBYONRAILS,2015).
4.3.2.GemsdoCucumberOsoftwareRubyGemspermite,instalareusarospacotesdesoftwaredeRubynosistema.Opacotedesoftwarechamadode"gem",quecontmumpacotedeaplicaesRuby,ouseja,bibliotecas(RUBYGEMS,2015).
GemspodemserusadosparaestenderoumodificarafuncionalidadeemaplicaesRuby.Comumente,elessousadosparadistribuirafuncionalidadereutilizvelecompartilhadacomacomunidadeRuby,parausoemseusaplicativosebibliotecas.Estrepresentadanafigura29,alistabsicadegems.
Figura29.ListabsicadeGEMSFonte:(RUBYGEMS,2015)
AlgumasGemsfornecemutilitriosdelinhadecomando,paraajudaraautomatizartarefaseagilizarotrabalho.Estas gems listadas,seroutilizadosnaimplementaodasclassesautomatizadasRubydestetrabalho(RUBYGEMS,2015).
Capybara(Capivaraemportugus),umaferramentadetestesdeintegraoparaaplicaes web baseadasemrack.Elesimulacomoumusuriopoderiainteragircomumwebsite. RackumaAPIdetestessimplesparaaplicaesemWeb.Podeseusarsozinhooucomoumpontodepartidareutilizvel,paraframeworksWebouconstruirbibliotecasdeteste.
AlgumasdependnciasdetempodeexecuotambmsoinstaladasparaofuncionamentodoCucumber,vejamquaisso:
-
49 Builder: forneceumnmerodeobjetosconstrutorquetornamacriaode
dados estruturados simples de fazer. Atualmente, os seguintes objetos deconstrutorsosuportados:MarkupXML,XMLEventos
Difflcs: calcula a diferena entre duas seqncias usando o algoritmoenumerveis McIlroyHunt, maior subseqncia comum (LCS). Ela incluiutilitrios para criar um formato de sada diff HTML simples e umaferramentadecomparaodotipopadro.
Gherkin:validaaestruturaCucumberlexer/parserparaoestadodemquina. Cucumbercore:BibliotecacentralparaoBDDdoCucumber;
4.4.ExecuodosTestes
Antesdecomearaexecutar,necessrioquenestaetapaoambientedetestesestejacomosprogramasinstaladoseconfigurados.Portanto,qualquererroqueocorranoambienteemexecuo,provvelterqueinstalaralgumadependncia.
Navisodoterminal,aoiniciaraexecuo,necessriorodarocomandocucumberinitdentrododiretrioraizdoprojeto.
Ao rodar o comando de inicializao do Cucumber, so disponibilizadosautomaticamente os diretrios reconhecidos pela estrutura, conforme apresenta afigura30.
Figura30.CriaodaEstruturadosdiretriosCucumberFonte:(PRPRIOAUTOR,2015).
O teste implementado na ferramenta XRAY, com suporte Cucumber, serexportadodaferramentaJIRA,comonomede Login.feature.Todosos scripts de
-
50testeCucumberpassaroporestemesmoprocessodeexportao.Estearquivodevesercopiadoparaapastafeatures,atquesejareconhecidopeloCucumber,conformeapresentaafigura31.
Figura31.ArquivofeatureFonte:(PRPRIOAUTOR,2015).
Depoisdesalvooarquivofeature,sonecessriasasconfiguraesnoarquivoenv.rb,dentrododiretriosupport,ondesodefinidasasgemsutilizadasedefinidasparaaexecuodostestes.Omodelobsicovaificarconformemostrafigura32:
Figura32.ConfiguraodosarquivosENV.RBFonte:(PRPRIOAUTOR,2015).
Nesta segunda etapa, pode ser iniciado o desenvolvimento das featureselencadasnafasedeanlisedoscritriosdeaceitao.AorodarocomandoCucumbernoterminal,oresultadoapresentadonafigura33.
-
51
Figura33.PassosaseremimplementadosFonte:(PRPRIOAUTOR,2015).
Caberessaltarquedeveseimplementarumpassodecadavez,ouseja,apsoprimeiropassar,iniciarsucessivamenteaimplementaodoprximopasso.Ento,necessriocriarumarquivonovochamado login.rb,paradesenvolvernalinguagemRubyeadicionarduaslinhasdeconfiguraonestearquivo,conformemostraafigura34.
Figura34.StepsdedesenvolvimentoFonte:(PRPRIOAUTOR,2015).
Abasedeexecuodo Cucumber soExpressesRegulares(regex),assimcomo, muito comuns utilizar os caracteres (/^$/), etc. Neste trabalho seroapresentadas as expresses regulares utilizadas, mas no um estudo aprofundadoexplicandoregex.Portanto,afrase: pending#expresstheregexpabovewiththe
-
52codeyouwishyouhadsersubstitudaporcomandosdagemcapybara.Natabela5,soapresentadososcomandosbsicosutilizados:
visithttps://google.com.br Paravisitaralgumaurl.
page.find(:id,iddoelemento).click ClicaemumelementodefinidoporID.
page.find(:css,cssdoelemento).click ClicaemumelementodefinidoporCSS.
page.find(:xpath,xpathdoelemento).click
Clica em um elemento definido porXPATH.
page.all(:id,iddoelemento)[0].click ClicanoprimeiroelementodentrodeumalistadefinidoporID.
page.all(:css,cssdoelemento)[0].click ClicanoprimeiroelementodentrodeumalistadefinidoporCSS.
page.all(:xpath,xpathdoelemento)[0].click
ClicanoprimeiroelementodentrodeumalistadefinidoporXPATH.
page.find(:radio_button,nomedoradiobutton).set(true)
Nessecaso,elevaiselecionaraqueleradiobutton.
page.find(:checkbox,nomedocheckbox).set(true)
Nessecaso,elevaiselecionaraquelecheckbox.
fill_innomedoelementoparainserirvalor,:with=>AprendendoCapybara
IrinserirnoelementoastringAprendendoCapybara.
selectNomedoitemnoDropDown,from:nomedoelementodropdown
Selecionaumitemdeumdropdown.Ex:selectApto,fromtipo_moradia
click_buttonCadastrar Clicarnobotocadastrar.
click_linkHome ClicanolinkHomecasohajaalgumnapgina.
expect(page).tohave_contentCadastroefetuadocomsucesso
Procuraamensagemecasotenha,sersucesso.
Tabela5:ListadecomandosbsicosCapybaraFonte:(CAPYBARA,2015).
Apsaexecuodostestesparacadapasso,temosaseguinteimplementaodoexemplodafeaturedelogin,conformeimplementadonafigura35.
-
53
Figura35.APICapybaraimplementadaFonte:(PRPRIOAUTOR,2015).
Depoisdeimplementadoeexecutado, temososeguinteresultadodequeocenrio passou. Ao digitar o comando Cucumber no terminal, o resultado apresentadonafigura36:
Figura36.ResultadodoscenriosepassosFonte:(PRPRIOAUTOR,2015).
Simpleseprtico,odesenvolvimentodecenriosautomatizados, priorizaorequisitoeadocumentaobemelaborada,poisodesenvolvimentoeaqualidadevodependerdestecontextopararetornarmelhoresresultadosparaosprojetos.
-
544.5.Avaliaodecritriosdesadaedivulgaoderelatrios
Aavaliaodoscritriosdesadaparaapresentaredivulgarosresultadosesperadosservirparamostrar,queforamsanadososproblemascrticosdedocumentaotcnicaefuncionaldeformageral.Aequipededesenvolvimentoiniciaracodificarcomoconhecimentosobreonegcio.
Oprocessogil naorganizao, contempladaacada Sprint com 30dias eciclosdeiterao.ParacadaiteraorealizadaumareunioderevisochamadadeSprintPlanningReview.
Umciclo de testes para cada fase, e uma liberao do build ou releasedependendodasprioridadesdeteste.Paraosreleases,sotratadosostiposdeissuescomfalhasemproduo, noentanto, existementregas semanais paraa equipedequalidadeedoprojetodeimplantaonocliente.
OfinaldecadaSprint,reneaequipepararefletirsobreoquefizerambemeoquepoderiammelhorarparaasprximasSprints,chamadadeRetrospectiveMeeting.
O Workflow do processo de teste automatizado com BDD e Cucumber,funcionacomoumpassoaserseguido. Dopontodevistadoprocessodeteste, importantegarantiraexistnciadeprocessoseficazes,paradispordeumafontedeinformaesnecessriasparaaavaliaodecritriosdesadaeadivulgao.
SeroanalisadososseguintesrelatriosgeradosduranteaexecuodaSprint:
Grficodetestecomomonitoramentodoprogressodasatividadesdecontrolenoperodode30dias,conformefigura37.
Figura37.GrficodeTestesFonte:(JIRA,2015).
-
55As mtricas para monitorar o planejamento e o controle do teste, devem
incluir: Aidentificaodoriscoeacoberturadotesteconformefigura38;
Figura38.RelatriodeidentificaodoRiscoFonte:(XRAY,2015).
CoberturadosTestesExecutados,conformefigura39;
Figura39.CoberturadeexecuodostestesFonte:(XRAY,2015).
-
56Asmtricasparaaavaliaoemrelatrios,incluem:
Mediroscritriosdeaceitao,conformefigura40;
Figura40.CritriosdeAceitaoFonte:(JIRA,2015).
Medironmerodecondies,scriptsdetestesplanejadoseexecutadosquepassaram,ouquefalharam,conformefigura41;
Figura41.CoberturadeTestesFonte:(XRAY, 2015).
-
57 BacklogdaSprint, conforme figura 42;
Figura42.SprintBacklogFonte: (JIRA AGILE, 2015).
KanbandoProjetoPilotoBDD,conformefigura43;
Figura43.KanbandoprojetopilotoFonte: (JIRAAGILE,2015).
-
58 DashboarddoProjetoPilotoBDD,conformefigura44;
Figura44.DashboardProjetoPilotoFonte: (JIRA, 2015).
EstatsticasdeTipodeDefeitoencontrado, conformefigura45;
Figura45.EstatsticasdetipodedefeitoabertoFonte: (JIRA, 2015).
-
594.6.Atividadesdefechamentodeteste
Apsalgunsmesesimplantadaasferramentasdegerenciamento,foipossvelidentificar pela qualidade alguns problemas centrais, que persistiamao longo dosajustesdoprocessodaorganizao.
Aretrospectivarefletidaserveparasanarosprincipaisproblemasdeformageral,tantoparapontuaratividadesquederamcertoeoutrasno.
O Confluence da Atlassian teveoprincipalobjetivodecentralizardeformaordenadaadocumentao,comoregistrodasocorrnciasdedefeitosmapeadopelosprojetosnoJIRA.
Aescassezdadocumentaodonegcioparadesenvolverasnovasmelhoriase a execuo de tarefas de teste de software, impulsionou iniciativas de testesorientadasporcomportamentoutilizandoBDD,visandominimizarasocorrnciasdedefeitosdecomportamentoemelhoraradocumentao.
Como intuito daqualidadecontribuir nasfases iniciais dociclodedesenvolvimento,h possibilidadesdeinteragir melhorcomonegcioeocliente,podendotornarasespecificaesexecutveiseatualizadas, consequentementeumasegurana a mais para os desenvolvedores iniciarem a implementao, sem sepreocuparcomoquedeveserfeito.
As ferramentas tiverem um papel muito importante para impulsionar aorganizao gerenciar melhor suas atividades, tendo uma melhor visibilidade dasprioridadeseorastreamentodassolictaescomadocumentaonecessria.
-
60
5.Concluso
Osestudosdestapesquisaindicaramque,comoqualquernovametodologiaemumaorganizao,precisadeumevangelistaquecriaoentusiasmoparacontinuarusandoasboas prticas nos projetos. Se isso for feito, h benefcios reais utilizandometodologiasgeis.
Muitas vezes, a organizao captura os dados apropriados, mas falha emtransformar os dados em informao, sintetizar a informao emconhecimento eento combinar aquele conhecimento com outros projetos ou pessoas para gerarsabedoria,naqualissolevaradecisesmelhores.Oconhecimentoobtidofoiusadoparaaperfeioar,melhorarecorrigirservioseprocessos.
Comaabordagemdetestesorientadaporcomportamento,assegurouseumacomunicaoalinhadacomosrequisitosdenegcio.Almde,resultaremmelhoriasgraduaisnaefetividade,pormeiodareduodocustoehabilidadeparalidarcomomesmocusto.
O plano de Investimento em Qualidade contribuiu no gerenciamento dasoperaesdodiaadia.Fornecendomecanismoseficienteseeficazesparalidarcomasrequisieseincidentes,entregandoaestabilidadedosistemadesoftwareaumcustojustificvel.
Portanto, coordenar as atividades e processos necessrios para fornecerserviosemnveisacordadoscomoclientedonegcio,levouamelhoriascontnuasnaqualidadedoservio.Eaorganizaoestabeleceuumanovacultura,demonstrandomaiorcredibilidadeesatisfaoaocliente.Diantedestaconsiderao,acriaodeumprodutototalmenterealizadocomsucesso,precisaseprincipalmente,queasequipestrabalhememsintonia.
Comopossveistrabalhosfuturos,podeseapontaraaplicaodaabordagemBDDemoutosprojetosecontextos,comomesmoobjetivodealcanarasatisfaodo cliente junto ao negcio. Tambm se pretende participar de Congressos eWorkshops como, por exemplo, Simpsio Brasileiro de Qualidade de Software(SBTQS),FrumInternacionaldeSoftwareLivre(FISL),parasubmissodeartigos,descrevendo e analisando a aplicao de processos, mtodos ou ferramentas dequalidade de software, contextualizando a experincia e mostrando os resultadosobtidos e liesaprendidas, emumaexperinciaprticacomcontribuies paraaindstriadesoftware. AspesquisasfuturassugeridasestorelacionadascomousodasferramentasAtlassian,ouseja,cenriosdeprojetoseprocessos,paramelhoraroprocessodequalidadeparaajudartodoociclodedesenvolvimentodesoftware.
-
61
REFERNCIAS
ADZIC, G. Bridging the Communication Gap: Specification by Example and AgileAcceptance Testing. Neuri Limited, 2009
ADZIC, G. Specification by Example: How Successful Teams Deliver the Right Software.ISBN: 1617290084. 1 ed. p.43; p292.Manning, 2011.
AMBLER, S. Introduction to Acceptance/Customer Tests as Requirements Artifacts.Agile Modeling. Disponvel em: Acesso em : < Jun, 2015>
ASTELS, D. Test-Driven Development: A Practical Guide. Prentice Hall. 1ed. 2003. 592p.
BARAUNA, H. Cucumber e RSpec: Construa aplicaes Ruby e Rails com testes eespecificaes. Casa do Cdigo. 1ed. 2015. 263p. Disponvel em:Acesso em:
BECK, K. Extreme Programming Explained: Embrace Change. 2ed. 2000. ISBN-10:0201616416
BECK, K. Test Driven Development: By Example. Addison-Wesley Professional. 1ed.2002. 240p. ISBN-10: 0321146530.
BLACK, R. "Managing the Testing Process: Practical Tools and Techniques forManaging Hardware and Software Testing, 3ed. Wiley, 2009. Disponvel em: Acesso em:
CAPYBARA. GitHub Capybara. Disponvel em:< https://github.com/jnicklas/capybara>Acesso em
CHELIMSKY, D. et al, The RSpec Book: Behavior Driven Development with Rspec,Cucumber, and Friends. Pragmatic Bookshelf, 2010.
COHN, M. User Stories Applied: For Agile Software Development. Addison-WesleyProfessional. 1ed. 2004. 304p.
COOPER, P. Dhh offended by rspec, says test::unit is just great, 2011. Disponvel em: Acesso em :
-
62CRISPIN, L. Tip House, Testing Extreme Programming. Addison-Wesley Professional.1ed. 2002; ISBN0321113551
CRISPIN, L; GREGORY, J. Agile Testing: A practical Guide for Testers and Agile Teams.Addison-Wesley Professional. 1ed. 2009. 576p.
CUKE. Cucumber: Simple, human collaboration. Disponvel em: < https://cucumber.io/>Acesso em :
EVANS, E. Domain-Driven Design: Tackling Complexity in the Heart of Software.Addison-Wesley Professional. 1ed. 2003. 560p ISBN 978-032-112521-7
GARTNER, M.M. ATDD by Example: A Practical Guide to Acceptance Test-DrivenDevelopment, 2012. ISBN: 0321784154
GIL, A.C. Mtodos e tcnicas de pesquisa social. 4 ed. So Paulo: Atlas, 1994. 207p.GUERNSEY, M. Test-Driven Database Development: Unlocking Agility. Addison-WesleyProfessional. 1ed. 2013. 352p.
IBM. The International Business Machines Corporation. Disponvel em: Acesso em:
IEEE, Chapter 5 Software Testing. SWEBOK Guide V3. 2004 JENKINS, J. Domain Driven Design's importance in the business. 1ed. 2010. Disponvelem: Acesso em:
JIRA. JIRA Agile. Disponvel em: Acesso em: < Jul.2015>LINZ, T. Testing in Scrum: A Guide for Software Quality Assurance in the Agile World,Rocky Nook, 2014. Disponvel em: Acesso em:
MARTIN, R.C. Agile Software Development: Principles, Patterns, and Practices. Pearson,1ed. 2002. 529p.
MILLER, R. Acceptance Testing. Disponvel em : Acesso em: Jun.2015.
MULLER, T. FRIEDENBERG, D. Certified Tester Foundation Level Syllabus.International Software Testing Qualifications Board ISQTB. 2011.
NETO. P. A. S. Slides Qualidade e Teste de Software Universidade Federal do Piau UFPI. 2011. Disponvel em: Acesso em
-
63NORTH, D. Faster organizations, faster software. Disponvel em: http://dannorth.net/Acesso em:
OPENUP, IBM. OpenUP Um processo gil. Disponvel em Acesso em
PUGH, K. Lean-Agile Acceptance Test-Driven Development: Better Software ThroughCollaboration. Addison-Wesley. 2011. ISBN978-0321714084
REGINATO, A. Better specs rspec guidelines with ruby. 2012. Disponvel em:< http://betterspecs.org/>. Acesso em
RIBEIRO, C. Entendendo BDD com Cucumber: Parte I. Disponvel em: Acesso em:
RUBY. O melhor amigo do programador. Disponvel em: Acesso em:
RUBYGEMS. Comunidade Ruby. Disponvel em: Acesso em : < Jul, 2015>
RUBYONRAILS. Ruby on Rails. Disponvel em: < http://rubyonrails.org/> Acesso em:
SCHWABER, K; BEEDLE, M. Agile Software Development with Scrum, Prentice Hall,2001.
SCRUM ALLIANCE. Learn about Scrum. Disponvel em: Acesso em: < Jul, 2015>
SMART, J. F. BDD in Action: Behavior-driven development for the whole softwarelifecycle. Manning Publications, 2013.
SOARES, I. Artigo Java Magazine, Desenvolvimento Orientado por Comportamento,ndice-91. Disponvel em: Acesso em:
STEINER, J. How we test rails applications. Disponvel em:, 2014. Acesso em:
UBUNTU. Distribuio Linux. Disponvel em Acesso em
COPYRIGHTUNICORP. Copyright@2009 Unicorp informatica Industrial LTDA. Disponvelem:< http://www.unicorp.com.br > Acesso em :
-
64WATT, R.; FELLOWS, D.L. Extreme Programming and Agile Methods - XP/AgileUniverse. Lecture Notes in Computer Science Volume 3134, 2004, pp 43-49
WIEGERS, K.; BEATTY, J. Software Requirements, 3a ed, Microsoft Press, 2013.Disponvel em: Acesso em:
WYNNE, M. ; HELLESOY, A. The Cucumber Book: Behaviour- Driven Development forTesters and Developers. Pragmatic Programmers. 1 ed. 2012. ISBN-10: 1934356808. Dis-ponivel em Acesso em:
XPORTER. Export JIRA Issues to: DOCX, PDF, ODT, SVG, RTF FILES. Disponvelem:< http://www.xpand-it.com/en/enterprise-20/jira-xporter > Acesso em:
XRAY. Test Management inside JIRA. Disponvel em: < https://marketplace.atlassian.com/plugins/com.xpandit.plugins.xray> Acesso em:
YIN, R. K. Estudo de Caso: Planejamento e Mtodos. Bookman, 3a ed. 2005
-
65
ANEXOA
ManualdeInstalaoeConfiguraoAmbientedeTesteLinuxcomCucumberConfiguraoeInstalaoCucumber,Ruby,Gemeetc.
1 sudoaptgetinstalllibreadlinegplv2dev
2 sudoaptgetinstalllib64readlinegplv2dev
3 sudoaptgetinstalllibssldevlibxml2devlibxsltdevlibsqlite3dev
4 sudoaptgetinstallgitcore
5 sudoaptgetinstallcucumbercore
6 sudoaptgetinstallgitk
7 sudoaptgetinstallcurl
8 curlsSLhttps://get.rvm.io/mpapis.asc|gpgimport
9 curlLhttps://get.rvm.io|bashsstableruby
10 curlLhttps://get.rvm.io|bashsstablerails
11 source/home/caminho/.rvm/scripts/rvm
12 typervm|headn1
13 rvmrequirements
14 sudoaptgetinstallbuildessentialopenssllibreadline6libreadline6devcurlgitcorezlib1gzlib1gdevlibssldevlibyamldevlibsqlite3devsqlite3libxml2devlibxsltdevautoconflibc6devncursesdevautomakelibtoolbisonsubversionpkg
config
15 sudoaptgetinstallcucumber
16 mkdir~/projeto
17 cdprojeto/
18 mkdirprojetopiloto
19 cdprojetopiloto/
20 cucumberinit
21 cucumber
-
66
APNDICES
ClculodeRetornodeInvestimentosemQualidade(DadosFictcios)ImplementaodeSCRUMeBDDnosProjetosdeSoftware
1.NecessidadesAsseguintesnecessidadessoidentificadasnesteplano:
Cdigo. DescriodaNecessidade(Problemas/Oportunidades)
N01 GerenciarosprojetosdeQualidadeeDesenvolvimentoparaentregarprodutosdesoftwarecommenosfalhascrticasemaiorqualidade.
N02 Melhoraracomunicaointernaentreasequipesdedesenvolvimento,qualidade,comercialesuporte.
N03 Controlaremonitoraroprodutodesoftwareliberadoemproduo,deacordocomonegciodocliente
N04 MapeareimplementarprocessosdegestodeTI.
2.MetaseIndicadoresAsseguintesmetaseindicadoresestorelacionadoscomasnecessidadesidentificadasacima,ecomesteplanodeinvestimentos:
Cdigo Meta DescriodaMeta Indicadores Valor Prazo ObjetivosEstratgicos
N01 M01 ImplantarProcessodeSoftware commetodologiasgeis
%Trabalho concludo decadaSprint
50% 3meses Prover ferramentas etecnologias visando melhoria do desempenhoorganizacional; (SprintReport)
N01 % aumento de escopoexcessivo
25% 7meses Sincronizar todas asatividades na Sprint (EPICReport)
N01 % velocidade da equipeversusotempoestimado
25% 8meses Visualizaras tarefas ativaseem andamento (VelocityChartReport)
N02 M02 Colaborao doCliente paraespecificar osrequisitosdosistema
%respostamudana 25%. 6meses Satisfazeroclienteatravsdodesenvolvimento avanado econtnuodesoftwaredevalor.
N02 Interao ecomunicaocontnuaentreasequipes
%melhoraracomunicaoe colaborao dentro daequipe
25% 6meses Equipe auto organizada seajustando ao comportamentoemconformidade.
N02 Ativarumconjuntodehabilidades dentro daequipeparabeneficiarosprojetos
%treinamento equalificao
25% 9meses Promover qualidade naresponsabilidade de cadaelemento.
N02 Fornecertransparnciade contedo eandamentodastarefas.
%Timeboxing das tarefascompartilhada com aequipe
25% 3meses Gerenciar as demandas e aspessoasdaequipe
-
67N03 M03 Detectar falhas no
ciclo dedesenvolvimento
%quantidade de bugs emhomologao
25% 3meses Isolareresolverosproblemasdequalidademaiscedo
N03 Esclarecersolicitaesdefuncionalidadesdocliente
%produtorefleteoquefoisolicitado
25% 3meses Providenciar informaesparaaequipe
N03 Planejamento paracadaInterao
%estria do usurio,%retrospectiva, %integraocontnua
25% 6meses Verificar o produto libervelnofinaldecadaSprint
N03 Usar tcnicas debrainstormingemapasmentais
%Tcnica INVEST(Independente,Negocivel, Valioso,Estimvel, Pequeno,Testvel)
25% 3meses Identificarafuncionalidade,acriticidade, desenvolvimentoesperado, duraodo teste eoscritriosdeaceitao
N04 M4 Mapear a anlise deproblemas eincidentes,continuidade denegcio.
%quantidadedeincidentesremanescentes
25% 3meses Documentar as causas dosproblemas para melhorar aprodutividade
N04 Mapear gerncia demudanas e acordosdenveldeservio.
%quantidadedemudanassolicitadaspelocliente.
25% 3meses Obter um valor real dasmudanas de acordo com oqueoclienteespera.
3.CronogramaMacroAseguir,oplanejamentomacrodemarcoseentregas,quetemporobjetivooalcancedasmetaseobjetivosrelacionadosacima:
MarcoseEntregas Data
ComunicaocontnuaeinteraocomasequipesdedesenvolvimentoDailyMeeting
Diariamente; Durao 15 min; PerodoManh
Feedback Inicial e Frequente da equipe de desenvolvimento RetrospectiveMeeting
ApsofechamentodeumaSprint
SprintProdutolibervel 2a4semanas
BackLogdaSprint InciodecadaSprint
DefiniodoscritriosadequadosparaconclusodaSprint FinaldecadaSprint
4.CustosAbaixoestorelacionadososcustosassociadosaesteprojetoouiniciativaparaoatendimentodasnecessidadeseocumprimentodosobjetivosemetasdesteplano.
ClculodeVPL
T=4anos48meses(8256horas)n=1ano12meses(2064horas)rouk=6%
-
68FC=fluxodecaixa
t FC VPL
0 50.000,00 (50.000) /(1+0,06)(0) =50.000
1 125.000 (125.000) /(1+0,06)(1) =117.924,52
2 96.000 (96.000) /(1+0,06)(2) =85.439,65
3 150.000 (150.000) /(1+0,06)(3) =125.942,89
ValorPresenteLiquido R$279.305,00
PerododePayback AnlisedeBenefcio/Custo ROI%
Esteinvestimentovaisepagarem1ano.
payback=1ano
B=371.000
C=42
Total=R$8.833,33
ROI%=(37142)/42*100
ROI%=329/4200
ROI%=0,0783
5.RetornodeInvestimentosAnliseQualitativaApartirdadecisoporesteinvestimentonareadeQualidade,oretornoqualitativoabranger:
Coordenarerealizarasatividadeseprocessosnecessriosparaforneceregerenciarserviosemnveisacordadoscomusurioseclientesdonegcio;
Levaraumamelhoriagradualecontnuanaqualidadedeservio;
AssegurarqueserviosdeTIpermaneamcontinuamentealinhadoscomosrequisitosdenegcio;
Resultaremmelhoriasgraduaisnaefetividadedocustopormeiodareduodocustoehabilidadeparalidarcomomesmocusto;
Usaramonitoraoerelatriosparaidentificaroportunidadesdemelhoriaemtodososestgiosdociclodevidaemtodososprocessos;
Entendeeacordaasprioridadesparaamelhoriabaseadasemumdesenvolvimentomaisapuradodeprincpiosdefinidosnaviso;
Oconhecimentoobtidousadoparaotimizar,melhorarecorrigirservioseprocessos;
Questesforamidentificadaseassoluessoimplementadas,asabedoriaaplicadaaoconhecimento;
Asmelhoriasqueprecisamserrealizadassocomunicadaseexplicadasparaaequipe;
Aorganizaoestabeleceumanovaculturaedemonstramaiorcredibilidadeesatisfaoaocliente
1. Introduo1.1. Motivao1.2. Objetivos1.3. Empresa onde ser Aplicada a Pesquisa-Ao1.4. O