Noções em teste de software e introdução a automação

download Noções em teste de software e introdução a automação

If you can't read please download the document

description

Noções em teste de software e introdução a automação

Transcript of Noções em teste de software e introdução a automação

  • 1. Noes em Testes de Softwaree Introduo ao SeleniumWebdriver

2. proibida a cpia e reproduo dequalquer parte do contedo destaapresentao incluindo, mas no limitadoa, textos, imagens, grficos e tabelas. Estaapresentao protegida pelas leis deCopyright e so propriedade do Salto naComputao. Quando houver permisso de uso destematerial, obrigatria a refernciabibliogrfica conforme as normas vigentes.Salto No permitido modificar, copiar,guardar em banco de dados pblico,alugar, vender ou republicar qualquerparte desta apresentao, sem prviapermisso explcita do autor.na Computao 3. Saltona ComputaoSandy Maciel@_sandymacielbr.linkedin.com/in/sandymaciel/[email protected] sou 4. Saltona Computao AgendaNoes Bsicas em Teste de SoftwarePrincpios e Conceitos de Teste de SoftwareViso Geral do Processo de TesteProcesso de TestesIntroduo ao Selenium WebDriverIntroduo> O que Automao de Testes?> Ferramentas> SeleniumPreparando o ambienteConceitos bsicosExerccios 5. SaltoPrincpios e Conceitos Bsicosna Computao 6. SaltoOrigem da expresso bugna ComputaoEm 1947, os cientistas estavam testando o computador Mark II, aquele que ocupavauma sala imensa e operava com centenas de vlvulas enormes, quando a mquinade repente parou de funcionar. Foram pesquisar a causa e encontraram um insetoimpedindo que um dos contatos funcionasse. Este foi o primeiro bug encontrado. 7. SaltoErro, Falha ou Defeito?na ComputaoErro Engano cometido por seres humanosFalha Resultado ou manifestao de um ou maisdefeitosDefeito Resultado de um erro encontrado num cdigoou num documento (bug) 8. SaltoQuando um bug ocorre? na Computao 9. SaltoTeste de Software?na ComputaoTeste de software o processo formal de avaliarum sistema ou componente de um sistema pormeios manuais ou automticos para verificar se elesatisfaz os requisitos especificados [IEEE 729,1983]. 10. Salto. Por que definir um procensasCoo mdpeut taesotes?A execuo dos testes e a documentao so padronizadas,permitindo planejamento e comparao de eficcia entre projetos.Os papis e responsabilidades so definidos de forma clara.Os testes alcanam a eficcia e o resultado esperado. 11. Salto. Qual o objetivo do ntaeCsomtapudtaoro?Investigar o software, conforme o processo de teste utilizado, afim de garantir que a qualidade do software e os requisitosimplementados esto de acordo com o solicitado pelo cliente.Tcnico responsvel pela execuo dos casos e scripts de teste 12. Salto. Papis em Teste de Software na ComputaoTestadorArquiteto de TesteAnalista de TesteAuditor da QAAutomatizador deGerente de TesteTesteLder de TesteEngenheiro de Teste 13. Salto. Ciclo de vida de desennavCoomlvpuimtaeontoO processo usado para criar um software, desde a sua concepo inicial at a sua entregafinal, chamado de ciclo de vida.Modelos de Ciclo de Vida de desenvolvimento de software:Big-bang (cria e conserta)CascataEspiralIncremental e iterativoRUP 14. SaltoCiclo de vida de desenvolvimentona ComputaoBig-Bang 15. SaltoCiclo de vida de desennavCoomlvpuimtaeontoModelo Cascata 16. SaltoCiclo de vida de desennavCoomlvpuimtaeontoModelo em Espiral 17. SaltoCiclo de vida de desennavCoomlvpuimtaeontoModelo Incremental e Iterativo 18. SaltoCiclo de vida de desennavCoomlvpuimtaeontoRUP 19. SaltoCiclo de vida de desennavCoomlvpuimtaeontoO profissional de teste deve se adaptar aomodelo adotado pela empresa e, da, aplicar, damelhor maneira as tcnicas de teste de software. 20. SaltoProcesso de Teste Uma viso geralna Computao 21. Saltona Computao Processo de TesteTestes podem ser considerados como m projeto? Um empreendimento temporrio, planejado,executado e controlado, com objetivo de criar umproduto ou servio nico. PMBOK , 2000 - PMI 22. Saltona Computao Processo de Teste Testar um exerccio de gerncia de risco Treinamento em teste reduz custos a longo prazo As estimativas de teste devem ser baseadas no risco do negcio A estratgia de teste deve ser elaborada atravs de um trabalho conjunto entre asreas envolvidas melhor e mais barato encontrar um defeito nas primeiras fases do que em produo 23. Saltona Computao Regra 10 de Myers 24. Saltona Computao Processo de TesteUm software considerado com qualidade quando atende ascategorias da qualidade - ISO/IEC 9126-1 25. Saltona Computao Planejar Adaptar processo de teste para o Projeto Planejar testes para o Projeto Definir a estratgia de teste Plano de TesteAmbiente de Teste Identificar Riscos do Projeto de TestePlanejarTestes 26. Saltona Computao Esforo 27. Saltona Computao Por que planejar?Para planejarmos os testes temos queconhecer os requisitos do projeto a serdesenvolvido 28. Saltona Computao PlanejarREQUISITODefinio deuma caracterstica, atributo, habilidade ouqualidade que um sistema (ou qualquer um deseus mdulos e subrotinas) devenecessariamente prover para atender aosseus usurios 29. Saltona Computao Para elaborar o teste, devemos saber:O que vamos testar?Quando vamos testar?Como iremos testar? 30. Saltona Computao Estratgia de TesteNos fornece um roteiro em que descreve os passos aserem conduzidos como parte do testeObjetivos: Determinar o que, quando e como iremos testar.O que define: Ferramentas, tcnicas e critrios de concluso. 31. SaltoFatores de Qualidadena ComputaoCorreoConfiabilidadeEficinciaIntegridadeUsabilidadeManutenabilidadeTestabilidadeFlexibilidadeReusabilidadeInteroperabilidadePortabilidade 32. SaltoFatores de Qualidade x nIaSOCo/mIpEuCta-91o26No confunda com a normaISO-9126 que especifica ascaractersticas de qualidadeque todo software deve ter. 33. Saltona Computao ISO/IEC 9126-1 34. SaltoCategorias de Qualidade segundo o Modelo FURPS +na Computao 35. SaltoDimenses do TesntaeCo(mIpEuEtaE)o 36. SaltoEstgios ou Nveis na Computaode Teste Teste de Unidade: Estgio mais baixo da escala de teste, sendo aplicado nos menorescomponentes de cdigo criados, visando garantir que estes atendem s especificaesfuncionais e de arquitetura. Normalmente feito pelo programador. Teste de Iterao ou Integrao: Teste de sistema ao trmino de cada iterao, dentro de umambiente operacional controlado, para validar a exatido e perfeio na execuo de suasfunes, referentes aos casos de uso da iterao. Normalmente feito pelo analista de sistemaspara um mdulo ou conjunto de programas. Teste de Sistema: Execuo do sistema como um todo, dentro de um ambiente operacionalcontrolado, para validar a exatido e perfeio na execuo de suas funes, acompanhandocenrios sistmicos elaborados pelo profissional de requisitos do projeto. Normalmente feitopelo analista de testes (caso de testes) em ambiente de testes. Teste de Aceitao : a ltima ao de teste antes da implantao do software, sendo deresponsabilidade do cliente. O objetivo deste teste verificar se o software est pronto e podeser usado por usurios finais para executar as funes e tarefas para as quais foi construdo.Normalmente feito pelo usurio em ambiente de homologao. 37. SaltoDimenses do TesntaeCo(mIpEuEtaE)o 38. Saltona Computao Tipos de Teste - UsabilidadeTeste Interface: Verifica se a navegabilidade e os objetivos da tela funcionam comoespecificados e se atendem da melhor forma ao usurio.Teste de Usabilidade: Tem por objetivo verificar a facilidade que a aplicao possui deser claramente compreendido e manipulado pelo usurio. 39. SaltoTipos de Teste - ConfianabCiloimdpaudtaeoTeste Integridade: Testes destinados a avaliar a robustez do objetivo do teste (resistncia afalhas) e a compatibilidade tcnica em relao a linguagem, sintaxe e utilizao de recursosTeste de Estrutura: Testes destinados a avaliar a adequao do objetivo do teste em relaoa seu design e sua formao.Teste de Estresse: Tipo de teste de confiabilidade destinado a avaliar como o sistemaresponde em condies anormais.Smoke Test: Exercita o sistema em uma nica passagem, normalmente utilizando script deexecuo automtica, no devendo ser exaustivo, mas capaz de expor os maioresproblemas. O Smoke Test executado aps a construo de cada nova verso (. 40. SaltoTipos de Teste - Confiabilidadena ComputaoTeste de avaliao de desempenho ou Benchmark: Tipo de teste que compara odesempenho de um objetivo do teste (novo ou desconhecido) a um sistema e umacarga de trabalho de referncia conhecidos.Teste de conteno: Testes destinados a verificar se os objetivos do teste podem lidarde forma aceitvel com as demandas de vrios atores no mesmo recurso (registros dedados, memria, etc.).Teste de carga: Tipo de teste usado para validar e avaliar a aceitabilidade dos limitesoperacionais de um sistema de acordo com cargas de trabalho variveis, enquanto osistema em teste permanece constante. Geralmente, as medies so tomadas combase na taxa de transferncia de dados da carga de trabalho e no tempo de respostada transao alinhado 41. SaltoTipos de Teste - SuponartCaombpiultiadaodeTeste de configurao: Teste destinado a garantir que o objetivo do teste funcioneconforme o esperado em diferentes configuraes de hardware e/ou software. Esseteste tambm pode ser implementado como um teste de desempenho do sistema.Teste de instalao: Teste destinado a garantir que o objetivo do teste seja instaladoconforme o esperado em diferentes configuraes de hardware e/ou software e sobdiferentes condies (como no caso de espao insuficiente em disco ou interrupo deenergia). Esse teste implementado e executado em aplicativos e sistemas. 42. Saltona Computao Dimenses do Teste (IEEE) 43. Saltona Computao Tcnicas de TesteEstruturalFuncionalAssegurar a cobertura de toda aestrutura implementadaAssegurar que os requisitos foramatendido 44. Saltona Computao Processo de Teste Plano de TesteO Plano de Teste descreve todos os testes requeridos, osrecursos e prazos necessrios. Deve estar alinhado com aEstratgia de Teste 45. SaltoProcesso de Teste Plano de Testena ComputaoPadro IEEE 829 para elaborao de Planos de Testes:1.Identificador do Plano de Testes2.Introduo3.Itens de teste4.Mdulos ou features do software a serem testados5.Mdulos que no sero testados6.Abordagem do teste (mtricas, metodologias, ferramentas, etc.)7.Critrio de identificao dos8.Critrios de interrupo ou finalizao dos testes9.Documentao de teste10. Identificao de quais testes sero necessrios e como sero executados (stress,performance, ...)11. Necessidades de equipamentos e softwares12. Responsabilidades da equipe envolvida13. Definio da equipe de teste e das suas necessidades14. Cronograma (ver roteiro de testes)15. Riscos e contingncias (ver Estratgia de testes)16. Critrios de aprovao dos testes pelas reas envolvidas 46. Saltona Computao Ambiente de TesteNo apenas uma configurao de hardware, mas toda estrutura onde o teste serexecutado Fonte: Base de Conhecimento em Teste de Software 47. Saltona Computao Risco no projeto de testeRisco algum evento no futuro cuja ocorrncia poder causaralgum tipo de problema, no caso, ao projeto de teste de software.Um risco pode ser dividido da seguinte forma:SintomaFonteConsequncia 48. SaltoRisco no projetonadCoem ptuteastoeDevido a uma , o est ocorrendo,podendo causar .Sintoma: o que pode indicar o problemaFonte: o que est causando o sintomaConsequncia: resultado dos sintomas 49. Saltona Computao ProjetarVersionametoEstimativas de TesteCenrios de TesteDados de TesteElaborar Casos de TesteAcompanhar Risco do ProjetoProjetarTestes 50. SaltoGerncia de ConfiguranaCoom(pGutCaS)oControle de VersionamentoRegistro e controle das diversas verses geradasGarantir que o que foi testado o que de fato ser entregueControle de MudanasDefinio de prioridades baseadas na severidade do problema encontrado, no esforopara corrigi-lo, no impacto no cronograma e no esforo para retestarAuditoria das Configuraes- Quem fez a mudana e como podemos reproduzir a mudana? 51. SaltoGerncia de Configurao (GCS)na ComputaoControle de Verso Algumas Ferramentas 52. Saltona ComputaoO que? Onde?Quando? Como?Processo de Teste - ProjetarElaborar Casos de TestesConfiguraesIteraoCaso de Teste comomotivador do testeRequisitosImplementao 53. Saltona ComputaoAlgumas definiesCasos de Testes so derivados de uma especificao formal quedefine os requisitosCaso de Teste uma especificao detalhada do teste, compostapor conj. de entradas, condies de execuo e resultadosesperadosCenrio de Teste uma histria hipottica usada para ajudar aspessoas a solucionar um problema complexo, recriando ouvisualizando um caminho a seguir.Dentro de um cenrio de testes podemos ter um ou mais casos deteste 54. SaltoMtodos de Elaborao de Casos de Testena ComputaoStep-by-Step Identificar um caso de teste para cada requisito e considerarentradas e sadas, entradas especiais, entradas invlidas, etc.Causa-efeito Faz-se uma tabela de causa e efeito. Nela so decididos ascombinaes mais relevantes a serem testadas.PairWise Cada par de parmetros seja coberto por um caso de teste.Classes de equivalncia construda de modo agrupar os casos de teste paraos quais o comportamento do sistema seja o mesmo;Anlise de valores limtrofes Testar valores limites do domnio de entrada; 55. SaltoDesafios para um bom Caso de Testena ComputaoMudana de RequisitoMudana de CronogramaRotatividade da Equipe 56. Saltona Computao ExecutarExecutar Casos de TesteGerar Resultado de Teste (log)Acompanhar DefeitosExecutar Re-testeExecutar Testes especiaisExecutarTestes 57. Saltona ComputaoA execuo poder consumir 40% ou menos do tempo total doesforo de teste Martin PolFrequentemente os testes so executados o mais rpido possvelProcesso de Teste - ExecutarExecutar 58. Saltona Computao ExecutarFluxo de ExecuoA etapa de execuo dos testes, dentro do ciclo de vida dos testes,para que seja bem sucedida vai depender de tudo o que foi feitoanteriormente e que servir de base para o cumprimento destaetapaFonte: Base de Conhecimento em Teste de Software. 59. Saltona ComputaoFluxo de Execuo 60. Saltona ComputaoMas Quando os testesterminam?Como saber o momento adequado para finalizar os teste? 61. Saltona Computao 62. SaltoGerncia dnea CDomepuftaeiotos 63. SaltoGerncia de na ComputaoDefeitosFerramentas JiraBugzillaMantisRational ClearQuestTestDirectorTrackRecorde-Manager Enterprise 64. Saltona Computao Custo do Bug 65. Saltona Computao 66. Saltona Computao 67. Saltona ComputaoImportncia do Defeito ($) 68. Saltona ComputaoCusto da correo de um defeito apsencontr-lo 69. Saltona ComputaoIdentificao do Defeito 70. Saltona ComputaoReportar Defeito 71. Saltona ComputaoReportar Defeito 72. Saltona ComputaoSeveridade X Prioridade 73. Saltona ComputaoReportar DefeitoGraus altos de severidadecorrespondem tambm a grausaltos de prioridade? 74. Saltona Computao 75. SaltoAnalisar RenasCuomltpautdaoo 76. Saltona Computao 77. SaltoIntroduo automaona Computao 78. SaltoO que so testes autonma Caotmizpautdaoso?So programas ou scripts que exercitam determinadas funcionalidades dosoftware e fazem verificaes automticas nos resultados obtidos.Ou seja, um teste, que executado automaticamente, onde se conhecidotodo o cenrio, aes que devem ser realizadas e os resultados esperados.Algumas das principais vantagens dos testes automatizados so: capacidade dereprodutibilidade e velocidade na execuo.A automao de testes uma rea em franca expanso, noentanto, uma rea ainda muito imatura. Muitos dos sucessos nosprojetos de automao de testes so decorrentes de processosempricos de tentativa e erro. 79. SaltoAUTOMATIZADOnSa ComputaoAjudam na documentaoCobrem muitos casosSegurana na manutenoRodam rpido 80. SaltoAutomatizando testes vonacCocmopuntasegoue:Simular grandes quantidades de dados ou usurios.Medir o tempo de execuo de certas partes do programa.Encontrar gargalos. 81. Saltona Computao ATENO 82. SaltoO que automanatiCzoamrpu?taoTestes automatizados so, em geral, utilizados paratestes de regresso.Ou seja, testes que devem serfrequentemente executados e/ou demandam muitotempo para execuo devem ser automatizados. 83. SaltoMelhores prticas na AutomnaaComop udtea Teoste Automao no um processo de teste! Automatize os testes crticos primeiro Incorpore testabilidade ao aplicativos As ferramentas de automao de testestambm tm defeito! 84. SaltoComo desenvolver um testenaauCotmomputaatizaodo?1. O primeiro passo para se desenvolver um teste automatizado selecionar orequisito ou funcionalidade alvo e, com base nas especificaes, pensar e/oudocumentar os possveis cenrios de testes.2. A seguir, deve-se selecionar um dos cenrios e elaborar o caso de testes, ondeser especificado o passo-a-passo para a execuo do teste.3. O ideal que para cada teste automatizado, tenha-se um caso de teste comobase.4. Aps a especificao do caso de testes, hora de criar os scripts de testes. Paraisso, precisamos utilizar uma ferramenta de automao de testes. 85. SaltoQue ferramentas utilizar?na Computao 86. Saltona Computao 87. SaltoSelenium WebDriverna Computao 88. SaltoSelenium??na Computao O Selenium rene um conjunto de ferramentas usadas para a criao de scripts deautomao de testes de regresso/funcionais para aplicaes Web. Os testes podem ser executados em qualquer navegador, desde que suporteJavascript. 89. SaltoSelenium??na ComputaoO Selenium possui 4 mdulos: Selenium IDE : Ambiente de desenvolvimento integrado parascripts selenium Selenium RC : Teste web em qualquer linguagem deprogramao Selenium WebDriver : Sucessor do RC, a grande diferena queele no necessita de um servidor Selenium Grid : o selenium server (via terminal) 90. SaltoWebDriver?n?a Computao1. API2. Pode ser desenvolvido em vrias liguagens3. Roda em vrios browsers4. Simula um usurio 91. SaltoPreparando o Ambientena Computao 92. SaltoPreparando o AmnbaiCeonmtpeutaoUsaremos a API em Java e o Eclipse como IDE1 Baixe o Eclipse IDE: 93. SaltoPreparando o AmnbaiCeonmtpeutao2 Baixe o jar do Selenium Server 94. Saltona Computao Preparando o Ambiente3 Baixe a API em Java 95. Saltona Computao Preparando o Ambiente4 Coloque os jars baixado em uma nica pasta dentro de C: 96. Saltona Computao Preparando o Ambiente5 Abra o eclipse e clique em File > New > Java Project 97. Saltona Computao Preparando o Ambiente6 Nomear projeto 98. SaltoPrimeiros Passos - Automaona Computao 99. Saltona ComputaoQuais conhecimentos mnimos precisamos ter paraautomatizar uma pgina web?Abrir NavegadorLer URLGuardar textos da pginaClicar em linksClicar em botesPreencher Campos 100. Saltona ComputaoEssas aes so divididas como:SincronizaoNavegaoInterrogaoManipulao 101. SaltoPrimeiros Passos - Junitna Computao 102. Saltona Computao1. Usaremos o Junit, que um framework de testes java, ele ir nos auxilixarnos testes pois apartir da notao @Test2. Sempre devemos identicar um mtodo pblico com o @Test 103. Saltona ComputaoO Junit tambm nos ajuda na utilizao de Assertions ( assegurar informaes).assertTrueassertEqualsasserTrue ( condio)asserTrue ( mensagem,condio)assertEquals(esperado, obtido)assertEquals(mensagem,esperado, obtido) 104. SaltoPrimeiros Passos Selenium WebDriverna Computao 105. Saltona Computao Sempre devemos passar o browser que utilizaremos, no nosso caso usaremos oFirefox ( nativo ) Usaremos a classe WebDriver como ponto de partida1. Instanciar o browser 106. Saltona ComputaoMtodos de Navegaoget ---- abre a pginato(url) --- para uma urlrefresh() --- atualiza a pginaforward() --- avanaback() --- volta 107. Saltona ComputaoMtodos de InterrogaoUtilizando o objeto drivergetTitle()getCurrentURL()getPageSource()findElement()findElements()http://www.w3.org/community/webed/wiki/HTML/Elements 108. Saltona ComputaoAlgumas estratgias utilizadas para interrogarelementos:IDCSSSELECTORNAMEXPATHLINKNAMECLASSNAMEdriver.findElement(By.cssSelector(.class)); 109. Saltona Computaodriver.findElement(By.id(id));"O que eu quero fazerComo eu quero fazerelementoSelenium WebDriver - ID 110. SaltoSelenium WebDriver CnSaSC SomelpeucttaoroLocaliza o elemento utilizando seu estiloelemento#id.classeelemento[atributo='valor]elemento > elementodriver.findElement(By.cssSelector(.class));" 111. SaltoSelenium WebDriverna CXopmaptuhtaodriver.findElement(By.xpath(//*[@id="div_pass_background"] 112. Saltona Computao Selenium WebDriver Manipulaoclick() clear() sendKeys(String) submit()driver.findElement(By.xpath(//*[@id="div_pass_background"] 113. CertificaesCBTS/ALATS http://www.alats.org.br/portalCTFL/ISTQB - http://www.bstqb.org.br/ 114. RefernciasMyers, Glenford J. The Art of Software Testing. Ed. Wiley, 2004.Whittaker, J.A. What Is Software Testing? And Why Is It SoHard? . IEEE Software, Jan/Fev 2000, p. 70-79.Sembugs.comwww.saltonacomputacao.comBase de conhecimento em testes de software 115. RefernciasMyers, Glenford J. The Art of Software Testing. Ed. Wiley, 2004.Whittaker, J.A. What Is Software Testing? And Why Is It SoHard? . IEEE Software, Jan/Fev 2000, p. 70-79.Sembugs.comwww.saltonacomputacao.comBase de conhecimento em testes de softwarehttp://www.w3schools.com/cssref/css_selectors.asphttp://net.tutsplus.com/tutorials/html-css-techniques/the-30-css-selectors-you-must-memorize/Eliasnogueira.comhttp://www.devmedia.com.br/artigo-engenharia-de-software-5-melhores-praticas-na-automacao-de-testes/10249 116. Saltona Computao 117. Saltona ComputaoContatos@_sandymacielbr.linkedin.com/in/sandymaciel/[email protected] 118. Saltona ComputaoOBRIGADA