Testando na Nuvem a UI
e o JavaScript de sua
aplicação
Stefan Teixeira
@stefan_teixeira
stefanfk@gmail.com
stefanteixeira.com.br
stefanteixeira.com
About me
Stefan Teixeira
• QA Engineer @ M4U
• Entusiasta de Automação de Testes, Agile Testing e
DevOps
• Blogs técnicos: stefanteixeira.com.br (pt-br) /
stefanteixeira.com (en)
Contatos:
• E-mail: stefanfk@gmail.com
• Twitter: twitter.com/stefan_teixeira
• Facebook: facebook.com/stefan.teixeira
• LinkedIn: linkedin.com/in/stefanteixeira
• GitHub: github.com/stefanteixeira
• SlideShare: slideshare.net/stefanteixeira
Vocês automatizam
testes?
(a) Não, testes são para os fracos
(b) Sim! Assim como a zoeira, a
automação não tem limites!
Pirâmide de
Automação de Testes
Pirâmide de Automação de Testes
Mike Cohn - Succeeding With Agile
Cuidado!
Testes de UI são mais lentos!
Testes de UI
• União de dois projetos:
• Selenium (Jason Huggins -
ThoughtWorks)
Selenium WebDriver
• União de dois projetos:
• Selenium (Jason Huggins -
ThoughtWorks)
• WebDriver (Simon Stewart - Google)
Selenium WebDriver
• União de dois projetos:
• Selenium (Jason Huggins -
ThoughtWorks)
• WebDriver (Simon Stewart - Google)
• Framework mais utilizado para
testes de UI
Selenium WebDriver
• União de dois projetos:
• Selenium (Jason Huggins - ThoughtWorks)
• WebDriver (Simon Stewart - Google)
• Framework mais utilizado para
testes de UI
• Padrão W3C (http://www.w3.org/TR/
webdriver/)
Selenium WebDriver
Fonte: http://pt.slideshare.net/ThoughtWorks/selenium-workshopbrasil-pdf
Fonte: http://pt.slideshare.net/ThoughtWorks/selenium-workshopbrasil-pdf
Testes de Unidade
+
OU OU
Testes de Unidade para JS
Karma
• Criado pelo Vojta Jína (na época,
da equipe do AngularJS)
Karma
• Criado pelo Vojta Jína (na época,
da equipe do AngularJS)
• Executa os testes (de unidade)
em browsers reais, permitindo
identificar incompatibilidades
entre seu código/libs e browsers
Karma
• Feature de “watch" oferece
feedback imediato dos testes a
cada save em um script
Karma
• Feature de “watch" oferece
feedback imediato dos testes a
cada save em um script
• Integração muito simples com libs
de cobertura de código (Istanbul)
ou mocks/stubs/spies (Sinon.js)
Karma: Browsers
Testes na Nuvem
Por que testar na nuvem?
• Zero estresse com infraestrutura
de VMs para testar em múltiplos
ambientes
Por que testar na nuvem?
• Zero estresse com infraestrutura
de VMs para testar em múltiplos
ambientes
• Serviços oferecem mais de 500
combinações de browser/OS
Por que testar na nuvem?
• Setup simples
Por que testar na nuvem?
• Setup simples
• Execuções em paralelo te dão
feedback mais rápido
Por que testar na nuvem?
• Setup simples
• Execuções em paralelo te dão
feedback mais rápido
• (mas custam mais caro)
Sauce Labs
BrowserStack
Sauce Labs x BrowserStack
• Documentação
Sauce Labs x BrowserStack
• Documentação
• Valores
Sauce Labs x BrowserStack
• Documentação
• Valores
• Features
Sauce Labs x BrowserStack
• Documentação
• Valores
• Features
• Túnel SSL
Sauce Labs: Pricing
BrowserStack: Pricing
Mas e os testes
manuais?
Testes Manuais
• Ambos os serviços oferecem
ambientes para testes manuais
Testes Manuais
• Ambos os serviços oferecem
ambientes para testes manuais
• BrowserStack possui, inclusive,
emuladores de Windows Phone
para testes manuais!
Hands-on
Hands-on: Vídeos
• Demo Selenium: https://
www.youtube.com/watch?
v=3RzHd817anY
• Demo Karma: https://
www.youtube.com/watch?
v=1LFHoYaSY00
Hands-on: Código-fonte
• Exemplo Selenium: https://
github.com/stefanteixeira/
exemplo-selenium-nuvem
• Exemplo Karma: https://
github.com/stefanteixeira/fav-
organizer
Livros recomendados
Obrigado!
Stefan Teixeira
@stefan_teixeira
stefanfk@gmail.com
stefanteixeira.com.br
stefanteixeira.com

Agile Brazil 2015 - Testando na Nuvem a UI e o JavaScript de sua aplicação