estudo de caso: aplicando testes orientado por comportamento no processo de qualidade de software

Upload: paloma-costa

Post on 01-Nov-2015

51 views

Category:

Documents


0 download

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