Automação de Teste Funcionais - Selenium

28.839 visualizações

Publicada em

Automação de Teste Funcionais - Selenium

Publicada em: Tecnologia

Automação de Teste Funcionais - Selenium

  1. 1. Automação de Testes Funcionais - Selenium<br />Israel Santiago, PMP<br />
  2. 2. Agenda<br />Introdução<br />O que é Teste de Software<br />Porquetestar<br />Desafios<br />O que é Automação de Testes<br />Expectativas<br />Engenheiro de Teste<br />O quefaz um Engenheiro de Testes<br />Qual o conhecimento necessário<br />Fornecedores de Ferramentas de Teste<br />Pagas<br />Free/Open Source<br />2 / 28<br />Automação de Testes Funcionais - Selenium<br />
  3. 3. Agenda<br />TesteFuncional<br />O que é TesteFuncional<br />Tipos de falhasdetectáveis<br />Casos de testes para Testes Funcionais<br />Automação de Testes Funcionais com o Selenium<br />O que é o Selenium<br />Selenium IDE<br />Selenium Remote Control (RC)<br />Selenium Grid<br />Exemplo de um teste em Java<br />
  4. 4. O que é Teste de Software:<br />O teste consiste em executar o programa com a intenção de encontrar erros (bugs)”.<br />[The Art of Software Testing – Glendford Myers, John Wiley & Son, 1979]<br />"Teste de software é o processo formal de avaliar um sistema ou componente de um sistema por meios manuais ou automáticos para <br />verificar se ele satisfaz os requisitos especificados ou identificar diferenças entre os resultados esperados e os obtidos“<br />[IEEE 729 - Glossary of Software Engineering Terminology, 1983]<br />Teste de software consiste na verificação dinâmica do comportamento de um programa, através de um conjunto finito de casos de teste, adequadamente selecionado a partir de um conjunto infinito de possibilidades,<br />contra um comportamento esperado especificado.<br />[SWEBOK - Guide to the Software Engineering Body of Knowledge]<br />4 / 28<br />Automação de Testes Funcionais - Selenium<br />
  5. 5. PorqueTestar ?<br />Testando a refeição<br />5 / 28<br />Automação de Testes Funcionais - Selenium<br />
  6. 6. PorqueTestar ?<br />Testando a nova casa<br />6 / 28<br />Automação de Testes Funcionais - Selenium<br />
  7. 7. PorqueTestar ?<br />Testando os conhecimentos<br />7 / 28<br />Automação de Testes Funcionais - Selenium<br />
  8. 8. PorqueTestar ?<br />Testando a nova roupa<br />8 / 28<br />Automação de Testes Funcionais - Selenium<br />
  9. 9. PorqueTestar ?<br />Teste de colisão<br />9 / 28<br />Automação de Testes Funcionais - Selenium<br />
  10. 10. PorqueTestar ?<br />Testando a paixão<br />10 / 28<br />Automação de Testes Funcionais - Selenium<br />
  11. 11. PorqueTestar ?<br />Testando a gravidade<br />11 / 28<br />Automação de Testes Funcionais - Selenium<br />
  12. 12. PorqueTestar ?<br />Testando a cerveja Belga<br />12 / 28<br />Automação de Testes Funcionais - Selenium<br />
  13. 13. PorqueTestar ?<br />Testando a orquestra<br />13 / 28<br />Automação de Testes Funcionais - Selenium<br />
  14. 14. PorqueTestar ?<br />Testando o futuro carro<br />14 / 28<br />Automação de Testes Funcionais - Selenium<br />
  15. 15. PorqueTestar ?<br />Testando o novo brinquedo<br />15 / 28<br />Automação de Testes Funcionais - Selenium<br />
  16. 16. PorqueTestar ?<br />Testar faz parte do<br />cotidiano<br />16 / 28<br />Automação de Testes Funcionais - Selenium<br />
  17. 17. Como você se garante ?<br />17 / 28<br />Automação de Testes Funcionais - Selenium<br />
  18. 18. 18 / 28<br />INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB<br />
  19. 19. PorqueTestar ?<br />19 / 28<br />Automação de Testes Funcionais - Selenium<br />
  20. 20. PorqueTestar ?<br />A Economia norte-americana perde 60 bilhões de dólares por ano com erros <br />de software, dos quais 20 bilhões poderiam ser economizados com melhorias<br />nos Testes.<br />Fonte: Critical Testing Processes – Rex Black<br />Processos de teste inadequados aumentam o risco de atraso ou cancelamento <br />de projetos entre 25% a 300%.<br />Fonte:Critical Testing Processes – Rex Black<br />Mais de 1/3 das falhas poderiam ser evitadas com testes;<br />Fonte: NIST - http://www.nist.gov/public_affairs/releases/n02-10.htm<br />Cerca de 50% das falhas só são descobertas em produção; <br />Fonte: NIST - http://www.nist.gov/public_affairs/releases/n02-10.htm<br />20 / 28<br />Automação de Testes Funcionais - Selenium<br />
  21. 21. PorqueTestar - Casos<br /><ul><li>Mars Climate Orbiter (http://mars.jpl.nasa.gov/msp98/orbiter/)
  22. 22. Desastre:
  23. 23. Se perdeu no espaço no momento em que entrava na atmosfera</li></ul> de Marte<br /><ul><li>Motivo:
  24. 24. Misturou, em cálculos, valores com medidas de tamanho diferentes
  25. 25. Na revisão de código descobriram que parte do código usava</li></ul> unidades de medidas americanas e parte em medidas Inglêsas.<br /><ul><li>Prejuízo:
  26. 26. 125 milhões de dólares</li></ul>21 / 28<br />Automação de Testes Funcionais - Selenium<br />
  27. 27. PorqueTestar - Casos<br /><ul><li>AirBus 320 (http://en.wikipedia.org/wiki/Iran_Air_Flight_655) :
  28. 28. Desastre:
  29. 29. USS Vicennes derrubou um airbus 320 em 1988
  30. 30. Motivo:
  31. 31. Bug no software de reconhecimento, confundindo o avião com um F-14
  32. 32. Prejuízo:
  33. 33. 290 mortes</li></ul>22 / 28<br />Automação de Testes Funcionais - Selenium<br />
  34. 34. PorqueTestar - Casos<br /><ul><li>LondonAmbulanceService(http://en.wikipedia.org/wiki/London_Ambulance_Service)
  35. 35. Desastre:
  36. 36. Serviço auxiliado por computador falhou em dois dias de Novembro de 1992, gerando várias falhas, como o envio de 2 ambulâncias para o mesmo loval, envio de uma ambulância para um local onde outras estavam mais perto, etc.
  37. 37. Motivo:
  38. 38. Tudo indica que o problema estava relacionado a alta carga de emergências durante o período.
  39. 39. Prejuízo:
  40. 40. Morte de 30 pessoas</li></ul>23 / 28<br />Automação de Testes Funcionais - Selenium<br />
  41. 41. PorqueTestar - Casos<br /><ul><li>Portal de notícias ClicRBS</li></ul>24 / 28<br />Automação de Testes Funcionais - Selenium<br />
  42. 42. Desafios do Teste de Software Manual<br />25 / 28<br />Automação de Testes Funcionais - Selenium<br />
  43. 43. O que é Automação de Testes<br />"O propósito da automação de testes pode ser resumidamente descrito como a aplicação de estratégias e ferramentas tendo em vista a redução do envolvimento humano em atividades manuais repetitivas."<br />Cem Kaner, Autor do livro "LessonsLearned In Software Testing"<br />26 / 28<br />Automação de Testes Funcionais - Selenium<br />
  44. 44. Falsas expectativas<br />Uma ferramenta de testes automatizados é a solução de todos os problemas de qualidade.<br />Testabili-oquê?<br />Você quer dizer que para criar testes automatizados será necessário modificar o<br />sistema?<br />Testes automatizados é<br />moleza. Basta gravar a digitação e os cliques do<br />mouse e depois executar o script.<br />Programador Aloprado<br />Testador fora do contexto<br />Gerente Sem-Noção<br />27 / 28<br />Automação de Testes Funcionais - Selenium<br />
  45. 45. A ferramenta não é a solução de todos os problemas<br />"UM TOLO COM UMA FERRAMENTA AINDA É UM TOLO"<br />28 / 28<br />Automação de Testes Funcionais - Selenium<br />
  46. 46. Forte dependência da estabilidade da interface gráfica<br />As ferramentas não são infalíveis<br />29 / 28<br />Automação de Testes Funcionais - Selenium<br />
  47. 47. A automação de testes não exclui o fator humano<br />Automação de Testes Funcionais - Selenium<br />30 / 28<br />
  48. 48. Testes manuais X Automação de testes<br />31 / 28<br />Automação de Testes Funcionais - Selenium<br />
  49. 49. Testes manuais X Automação de testes<br />32 / 28<br />Automação de Testes Funcionais - Selenium<br />
  50. 50. Testes candidatos (recomendados)<br />33 / 28<br />Automação de Testes Funcionais - Selenium<br />
  51. 51. Testes candidatos (não recomendados)<br />34 / 28<br />Automação de Testes Funcionais - Selenium<br />
  52. 52. Quem automatiza os testes: Engenheiro de testes<br />Sua função é criar estratégias de teste que serão utilizadas em produtos, aplicando toda e qualquer técnica de teste em um produto em desenvolvimento.<br />Dentro da organização costuma:<br /> • Criar e executar testes funcionais e não funcionais<br /> • Estimar e preparar o ambiente necessário<br /> • Automatizar os testes funcionais/não funcionais<br /> • Criar cenários de teste mais abrangentes<br />35 / 28<br />Automação de Testes Funcionais - Selenium<br />
  53. 53. O que um Engenheiro de Testes precisa saber?<br />Linguagem de programação<br />Sistemas Operacionais<br />Conhecimento avançado das Técnicas de Teste<br />Ferramentas de Automação<br />Linguagem SQL<br />Arquitetura de Software<br />Configuração de Ambientes<br />Execução de Testes não Funcionais<br />Habilidade de comunicação com pessoas técnicas<br />36 / 28<br />Automação de Testes Funcionais - Selenium<br />
  54. 54. Fornecedores comerciais mais importantes<br />Fornecedores mais importantes segundo um estudo do ForresterResearch em 2008.<br />37 / 28<br />Automação de Testes Funcionais - Selenium<br />
  55. 55. Fornecedores comerciais mais importantes<br />38 / 28<br />Automação de Testes Funcionais - Selenium<br />
  56. 56. Ferramentas OpenSource<br />Ferramentas de Automação Funcional<br />39 / 28<br />
  57. 57. O que é Teste Funcional ?<br />Procedimento que deriva e/ou seleciona casos de testes com base em uma análise da especificação da funcionalidade de um componente ou sistema sem fazer referência à sua estrutura interna.<br />[Glossário - ISTQB (International Software TestingQualificationBoard)]<br />O Teste Funcional procura, entre outras coisas, mostrar que os requisitos<br />funcionais do software são satisfeitos,que a entrada é adequadamente aceita, que a saída esperada é produzida e que a integridade das informações externas é mantida; por isso, não existe preocupação com a estrutura lógica interna do sistema.<br />[Pressman, 2002]<br />40 / 28<br />Automação de Testes Funcionais - Selenium<br />
  58. 58. Tipos de Falhas Detectáveis<br />41 / 28<br />Automação de Testes Funcionais - Selenium<br />Com os testes funcionais, podemos detectar os seguintes tipos de falhas:<br />Funções Incorretas<br />Funções não implementadas<br />Erros de Interfaces<br />Erros de desempenho<br />Erros de inicialização e finalização<br />
  59. 59. Casos de Testes para Testes Funcionais<br />Os Testes Funcionais são realizados através da execução de casos de <br />testes e seus fluxos de uso utilizando dados válidos e inválidos para <br />verificar se os resultados apresentados (comportamento e resposta da <br />aplicação) ocorrem conforme o esperado. Deve-se verificar se as <br />mensagens de erro apropriadas são indicadas quando dados ou ações <br />inválidas são utilizadas. Portanto deve-se verificar se cada regra de <br />negócio é corretamente aplicada.<br /> [MOLINARI, 2008]<br />42 / 28<br />Automação de Testes Funcionais - Selenium<br />
  60. 60. Automação de Testes Funcionais com o Selenium<br />43 / 28<br />Automação de Testes Funcionais - Selenium<br />
  61. 61. O que é o Selenium<br />http://seleniumhq.org<br />44 / 28<br />INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB<br />
  62. 62. O que é o Selenium<br /><ul><li>Suíte de ferramentas open-source queauxiliamnaexecução de testes funcionais a partirdacamada de apresentação de um sistema Web.</li></ul>Selenium IDE<br />Selenium Remote Control<br />Selenium Suite<br />Selenium Grid<br />45 / 28<br />INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB<br />
  63. 63. O que é o Selenium<br />46 / 28<br />INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB<br /><ul><li>Funcionanos principais browser´s, plataformas e linguagens:</li></li></ul><li>Por que este nome ?<br />47 / 28<br />Automação de Testes Funcionais - Selenium<br />
  64. 64. Por que este nome ?<br />48 / 28<br />Automação de Testes Funcionais - Selenium<br />
  65. 65. Origem do Selenium<br />A ThoughtWorksprecisava de umaferramentapatatestarumaaplicação de rastreamento de despesaspela web;<br />Os desenvolvedores estavam familiarizados com a ferramenta de teste Mercury (Agora uma empresa da HP);<br /> Iniciaram então, o desenvolvimento da sua própria ferramenta, chamada Selenium.<br />Criadores: Jason Huggins (Selenium Core), Paul Hammat, Patrick Lightbody (Selenium RC).<br />49 / 28<br />INF2134 - Teste e medição de software Automação de Testes de Aceitação em Sistemas WEB<br />
  66. 66. Selenium IDE <br />28 / 50<br />Automação de Testes Funcionais - Selenium<br />
  67. 67. Selenium IDE <br /><ul><li>Plugin do FireFox
  68. 68. Ambiente integrado para o desenvolvimento de testes no Selenium
  69. 69. Fornece funcionalidade de gravação e reprodução.
  70. 70. Proporciona a capacidade de depurar scripts de teste.
  71. 71. "Auto complete" dos comandos do Selenium
  72. 72. Permite a exportação dos scripts de teste em diferentes formatos como HTML, Java, Ruby, Python, etc.
  73. 73. Suporta extensões do usuário</li></ul>28 / 51<br />Automação de Testes Funcionais - Selenium<br />
  74. 74. Alguns comandos ‘Selenese’<br />28 / 52<br />Automação de Testes Funcionais - Selenium<br />
  75. 75. ‘Locators’ de elementos<br />28 / 53<br />Automação de Testes Funcionais - Selenium<br />
  76. 76. Como o Selenium funciona<br />28 / 54<br />Automação de Testes Funcionais - Selenium<br />
  77. 77. SeleniumRemoteControl (RC) <br />28 / 55<br />Automação de Testes Funcionais - Selenium<br />
  78. 78. SeleniumRemoteControl (RC) <br />Nospermiteescrever testes automatizadosemváriaslinguagens:<br />(Java, <br />.NET, <br />Perl, <br />Python, <br />Ruby, <br />PHP)<br />O servidor Selenium se comunicadiretamente com o browser através de AJAX<br />O servidor selenium atuacomo um cliente proxy HTTP configurado, situando-se entre o browser o oseu site.<br />Selenium Remote Control fornece um servidor Selenium quepodeautomaticamenteiniciar/finalizar/controlar, qualquer browser suportado<br />28 / 56<br />Automação de Testes Funcionais - Selenium<br />
  79. 79. SeleniumRemoteControl (RC) <br />28 / 57<br />Automação de Testes Funcionais - Selenium<br />
  80. 80. SeleniumGrid<br />28 / 58<br />Automação de Testes Funcionais - Selenium<br />
  81. 81. SeleniumGrid<br /><ul><li>Executaos testes emmúltiplasmáquinasemparalelo
  82. 82. Resolve o grandeproblema do Selenium: Velocidade
  83. 83. Suporta EC2</li></ul>28 / 59<br />Automação de Testes Funcionais - Selenium<br />
  84. 84. SeleniumGrid<br /> ”...Google has over 50 teams running over 51K tests per day on an internal Selenium Farm. 96% of these tests are handled by<br /> Selenium RC and the Farm machines...”<br /> http://raibledesigns.com/rd/entry/last_night_s_selenium_users<br />28 / 60<br />Automação de Testes Funcionais - Selenium<br />
  85. 85. Resumo da ‘opera’<br /> ou<br />28 / 61<br />Automação de Testes Funcionais - Selenium<br />
  86. 86. Exemplo de um teste em Java<br />28 / 62<br />Automação de Testes Funcionais - Selenium<br />
  87. 87. Exemplo de um teste em Java<br />28 / 63<br />Automação de Testes Funcionais - Selenium<br />
  88. 88. Referências<br />[Beizer, 1990] - Beizer, B., "Software TestingTechniques", 2ª ed., New York: Van Nostrand Reinhold<br />Company, 1990.<br /> [BSTQB] -http://www.bstqb.org.br/uploads/docs/syllabus_2007br.pdf<br /> [Molinari, 2008] - Molinari, Leonardo “Testes Funcionais de Software", Florianópolis: Visual Books, 2008<br /> [Myers, 1979] - Myers, G. J. "TheArtof Software Test“.iley, New York, 1979.<br /> [Pressman, 2002] - Pressman, R. S. "Engenharia de Software", 5 ed., Rio de Janeiro: Mc Graw Hill, 2002.<br />NIST - http://www.nist.gov/public_affairs/releases/n02-10.htm<br />ImproveIt - http://www.improveit.com.br/xp/praticas/tdd<br />Caelum - http://blog.caelum.com.br/2006/09/08/voce-acredita-no-seu-codigo/<br />Fragmental - Shoes - http://blog.fragmental.com.br/2007/10/31/programadoresprofissionais-escrevem-testes-ponto-<br /> final/<br />Marcos Pereira – http://marcospereira.wordpress.com/2007/11/27/desenvolvedoresodeiam-testar<br />Wikipedia – http://en.wikipedia.org/wiki/Test-driven_development<br />TDD - http://www.testdriven.com<br />Brod - http://www.brod.com.br<br />java.net - http://wiki.java.net/bin/view/People/SmellsToRefactorings<br />Palestra Desenvolvimento Guiado por Testes (TDD) – Guilherme Chapiewski<br />28 / 64<br />Automação de Testes Funcionais - Selenium<br />
  89. 89. Referências<br />Chef <br />http://galen-frysinger.com/cooking.htm<br />Zafira test<br />http://www.erdgasfahren.ch/50.html<br />Casal<br />http://www.lovepicturesoflove.net/love_picture_kissing_young_couple_teo.htm<br />Casa<br />http://www.nwvhfh.org/toc.htm<br />Prova <br />http://www.es.gov.br/site/noticias/show.aspx?noticiaId=99669869<br />Roupa <br />http://picasaweb.google.com/marlonequel/NEVE#5205792741253417650<br />Test drive http://speedcal.blogspot.com/2007_11_01_archive.html<br />Cerveja http://picasaweb.google.com/lh/view?q=provando&uname=marlonequel&psc=G&filter=1#5278697008293467122<br />Teste de sangue <br />http://pilandia.blogspot.com/2008/02/yellow-fever.html<br />Brinquedo <br />http://picasaweb.google.com/kendramail/CapeMayVisit2007#5109712086583443938<br />Orquestra <br />http://www.hardbrassmedia.com/about.html<br />Newton<br />http://www.geocities.com/CapeCanaveral/Hangar/6777/newton.html<br />Tela azul <br />http://www.frontlevel.com/art/<br />Source: - F.O.X.: http://www.flickr.com/photos/kv/499219/<br />28 / 65<br />Automação de Testes Funcionais - Selenium<br />
  90. 90. Dúvidas ?<br />28 / 66<br />Automação de Testes Funcionais - Selenium<br />

×