Este documento apresenta um workshop sobre automação de testes com Selenium. A agenda inclui introdução ao Selenium, entendendo seu funcionamento e exercícios práticos. Os tópicos abordados incluem vantagens da automação, quando não automatizar, introdução ao Selenium e DOM, captura de elementos, entendendo asserções e exemplos práticos.
2. AGENDA
!
!
▫︎Por que automação de testes?
▫︎Introdução ao Selenium
▫︎Entendendo o Selenium
▫︎Exercícios "mão na massa"
2
3. VANTAGENS DOS TESTES AUTOMATIZADOS
!
▫︎Evitar trabalho repetitivo
!
▫︎Geralmente mais rápido que teste manual
!
▫︎Feedback constante da aplicação
!
▫︎Simular a interação de um usuário real do sistema
3
4. VANTAGENS DOS TESTES AUTOMATIZADOS
▫︎Não é diretamente acoplada à implementação do
código
!
▫︎Auxilia a encontrar bugs e erros de regressão
!
▫︎Fácil de ser implementado em diferentes plataformas e
navegadores
!
▫︎Podemos encontrar inclusive problemas de hardware
(memória e recursos) através da automação
4
5. DESVANTAGENS DOS TESTES AUTOMATIZADOS
!
▫︎Manutenção
!
▫︎Velocidade pode ser afetada
!
▫︎Fragilidade (depende de elementos da UI)
!
▫︎Vulnerabilidade - Os testes podem ficar instáveis se, por
exemplo, algum componente em Javascript demorar
para carregar.
5
7. NÃO AUTOMATIZAR QUANDO:
!
▫︎Haverá mudanças consideráveis na interface do usuário
em um futuro bem próximo
!
▫︎Muito pouco tempo para testar
!
▫︎Não é uma ação muito comum e previsível de ser
realizada por um usuário real
!
▫︎Cenários extremamente complexos
7
8. QUADRANTES DO AGILE TESTING
8
Adaptada de: http://lisacrispin.com/2011/11/08/using-the-agile-testing-quadrants
9. PIRÂMIDE DE TESTE DE SOFTWARE
9
Adaptada de: http://watirmelon.com/2012/01/31/introducing-the-software-testing-ice-cream-cone
10. PIRÂMIDE INVERTIDA (SORVETE) DE TESTE DE SOFTWARE
10
Adaptado de: http://watirmelon.com/2012/01/31/introducing-the-software-testing-ice-cream-cone
11. INTRODUÇÃO AO SELENIUM
!
▫︎Iniciada em 2004 por um ThoughtWorker chamado
Jason Huggins
!
▫︎Algum tempo depois, Simon Stewart do Google iniciou
um projeto chamado WebDriver
!
▫︎Ambos projetos se uniram, dando origem ao Selenium-
WebDriver (Selenium 2.0)
11
12. POR QUE SELENIUM?
!
▫︎Suporta várias linguagens: Java, Ruby, Python, JavaScript,
etc…
!
▫︎Suporta vários browsers: Chrome, Firefox, Safari, IE,
Opera, Headless, Android, iOS etc…
!
▫︎É open-source!
12
13. ALGUMAS OUTRAS VARIAÇÕES...
!
!
▫︎Selenium IDE: ferramenta record & playback apenas
para testes simples/básicos. Não recomendado para
automação séria! :)
!
▫︎Selenium-Grid: Útil para executar testes em paralelo
em múltiplas máquinas remotas.
13
14. O QUE É DOM (DOCUMENT OBJECT MODEL) ?
14
ANTES DE COMEÇARMOS…
23. LIVROS/MATERIAIS RECOMENDADOS
!
▫︎Selenium:
▫︎Selenium API
▫︎Selenium WebDriver Practical Guide
▫︎Selenium Simplified
!
▫︎Teste de Software e outras ferramentas:
▫︎Agile Testing: A Practical Guide for Testers and Agile Teams
▫︎The Cucumber Book
23