Automação de Teste Funcionais - Selenium

28.345 visualizações

Publicada em

Automação de Teste Funcionais - Selenium

Publicada em: Tecnologia
3 comentários
26 gostaram
Estatísticas
Notas
Sem downloads
Visualizações
Visualizações totais
28.345
No SlideShare
0
A partir de incorporações
0
Número de incorporações
60
Ações
Compartilhamentos
0
Downloads
918
Comentários
3
Gostaram
26
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • Beck, K.; Test-Driven Development by Example; New York, NY: Addison-Wesley; 2003Mugridge R., Cunningham W.; Fit for Developing Software: Framework for Integrated Tests: Prentice Hall; 2005Fewster, M.; Graham, D.; Software Test Automation; Addison-Wesley; 1999Koskela, L; Test Driven: TDD and Acceptance TDD for Java Developers; Manning Publications; 2007Gold, Russel; Test-Driven Development: A J2EE Example; 2004Koomen, Tim; Pol, Martin; Test Process Improvement: A step-by-step guide to structured testing; ACM Press; 1999Black, Rex; Pragmatic Software Testing: Becoming an Effective and Efficient Test Professional; 2007http://testobsessed.com/2008/04/29/agile-friendly-test-automation-toolsframeworks/http://testobsessed.com/2007/02/16/functional-test-tools-the-next-generation/http://testobsessed.com/2007/02/19/functional-test-tools-the-next-generation-part-2-of-2/
  • 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 />

    ×