24
Uso de Headless Browsers em Testes Automatizados Stefan Teixeira [email protected] / stefanteixeira.com.br

QConRio - Uso de Headless Browsers em Testes Automatizados

Embed Size (px)

DESCRIPTION

Short Talk apresentada no QCon Rio 2014, no dia 23 de Setembro.

Citation preview

Page 1: QConRio - Uso de Headless Browsers em Testes Automatizados

Uso de Headless Browsers em Testes Automatizados!

Stefan [email protected] / stefanteixeira.com.br

Page 2: QConRio - Uso de Headless Browsers em Testes Automatizados

Sobre o palestranteStefan Teixeira!

• QA Engineer @ Orga Systems!• Bacharel em Ciência da Computação pela UFRJ!• Finalizando MBA em Garantia de Qualidade de Software pela Escola

Politécnica da UFRJ!• Mantém um blog técnico sobre testes: stefanteixeira.com.br!• Certificado CTAL-TM / TA pelo ISQTB e CPRE-FL pelo IREB!

Contatos:!

• E-mail: [email protected]!• Twitter: twitter.com/stefan_teixeira!• Facebook: facebook.com/stefan.teixeira!• LinkedIn: linkedin.com/in/stefanteixeira!• GitHub: github.com/stefanteixeira!• SlideShare: slideshare.net/stefanteixeira

Page 3: QConRio - Uso de Headless Browsers em Testes Automatizados

Testes Automatizados

Page 4: QConRio - Uso de Headless Browsers em Testes Automatizados

Pirâmide de Automação de Testes!!Mike Cohn (Succeeding with Agile)

Page 5: QConRio - Uso de Headless Browsers em Testes Automatizados

Foco de Testes pela UI!!

• Smoke Tests!

• xBrowser Testing!

• Visual Regression Testing

Page 6: QConRio - Uso de Headless Browsers em Testes Automatizados

Headless Browsers

Page 7: QConRio - Uso de Headless Browsers em Testes Automatizados
Page 8: QConRio - Uso de Headless Browsers em Testes Automatizados

Por que usar um Headless Browser?

Page 9: QConRio - Uso de Headless Browsers em Testes Automatizados

#1: Feedback mais rápido

Page 10: QConRio - Uso de Headless Browsers em Testes Automatizados

Importância do tempo de build e feedback!

• XP (Extreme Programming)!

‣ 10-minute build!!

• James Shore (The Art of Agile Development)!

‣ 10 or 15-minute build!!

Page 11: QConRio - Uso de Headless Browsers em Testes Automatizados

“That's about the right amount of time to stretch my legs, get some coffee, and

talk over our work with my pairing partner.”!

!

- James Shore, The Art of Agile Development

Page 12: QConRio - Uso de Headless Browsers em Testes Automatizados

#2: Ideal para Smoke Tests

Page 13: QConRio - Uso de Headless Browsers em Testes Automatizados

“Subconjunto de todos os casos de testes definidos/planejados que cobre as principais funcionalidades de um componente ou sistema, para averiguar as principais funções de um programa em funcionamento sem se preocupar com maiores detalhes.“!

!- Definição de Smoke Tests pelo ISTQB (International Software Testing Qualifications Board)

Page 14: QConRio - Uso de Headless Browsers em Testes Automatizados

#3: Ótimo para Integração Contínua

Page 15: QConRio - Uso de Headless Browsers em Testes Automatizados

Headless Browsers + CI!!

• Possível rodar os testes no próprio servidor de CI!

• Setup simples!

• Para projetos no GitHub, o Travis CI oferece suporte ao PhantomJS por default :)

Page 16: QConRio - Uso de Headless Browsers em Testes Automatizados

Importante!!!

Testar com um Headless Browser não substitui a necessidade de

testar em browsers reais.

Page 17: QConRio - Uso de Headless Browsers em Testes Automatizados

Headless Testing

Page 18: QConRio - Uso de Headless Browsers em Testes Automatizados

• Selenium WebDriver!‣ GhostDriver (PhantomJS)!

‣ HtmlUnitDriver (HtmlUnit)!

• Capybara!‣ Poltergeist (PhantomJS)!

‣ Celerity (HtmlUnit)!

• CasperJS!‣ PhantomJS!

‣ SlimerJS!

• Zombie.js (+ Mocha / Jasmine)

Page 19: QConRio - Uso de Headless Browsers em Testes Automatizados

Visual Regression Testing

Page 20: QConRio - Uso de Headless Browsers em Testes Automatizados
Page 21: QConRio - Uso de Headless Browsers em Testes Automatizados

Usos!!

• Comparar screenshots!

• Validar design responsivo!

• Validar valores de CSS

Page 22: QConRio - Uso de Headless Browsers em Testes Automatizados

Visual Regression Testing + Headless Browsers

Page 23: QConRio - Uso de Headless Browsers em Testes Automatizados

Ferramenta Browsers

PhantomCSS PhantomJS

Wraith PhantomJS, SlimerJS

Depicted (dpxdt) PhantomJS

CSS Critic Firefox, PhantomJS (experimental)

Hardy.io Qualquer browser suportado pelo WebDriver (FF, Chrome, PhantomJS…)

Huxley Qualquer browser suportado pelo WebDriver (FF, Chrome, PhantomJS…)

Page 24: QConRio - Uso de Headless Browsers em Testes Automatizados

Obrigado!Stefan [email protected]!stefanteixeira.com.br!@stefan_teixeira