#JAVOU10
TESTES E2E COM JAVASCRIPT
Henrique Luz
BIO
Henrique Luz
‣ Bacharel em Computação / UFC
‣ Desenvolvedor no Instituto Atlântico
‣ Corredor nas horas livres
AGENDA
‣ Testes na Idade Média
‣ Agile testing
- Evolução
‣ Testes E2E
- Intro
- Trade-off
‣ Back-end x Front-end
‣ WebDriver I/O
‣ Hands-on
TESTES NA IDADE MÉDIA
ANTES
▸Cascata
▸Manuais
▸Caixa-preta
▸Orientados a bugs
▸Feedback tardio
AGILE TESTING
EVOLUÇÃO
TESTES ÁGEIS
DEPOIS
▸Agile Development
▸TDD BDD
▸Unitários + Integração
▸Entrega Contínua
▸Feedback Instantâneo
SUFICIENTE?
DEPENDE!
“CHECAM SE O FLUXO DA APLICAÇÃO FAZ O QUE FOI DESENHADA PARA FAZER,PASSANDO POR TODOS OS COMPONENTES E SUAS DEPENDÊNCIAS”
E2E TESTING
▸Simula fluxo do usuário
▸UI’s
▸ Interage com toda app
▸Ajuda a validar critérios de aceitação
▸Regressão de testes bem mais rápida
TRADE-OFF
▸Mais custosos
▸Mais lentos
▸Mudanças na UI tendem a impactar
ONDE ESCREVER MEUS TESTES E2E?
MAIS UMA VEZ: DEPENDE
Tipo da Aplicação
Tecnologias disponíveisMaturidade do time
Conhecimento do time
?
? ?
?
??
??
?
?
?
? ???
E2E TESTING
FERRAMENTAS JAVASCRIPT
WEBDRIVER I/O
TESTES DE REGRESSÃO DE UI
DSL FLUENTE
VARIEDADE DE HOOKS
SUPORTA SINCRONISMO
SUPORTA GULP E GRUNT
FORNECE CLI
SETUP FÁCIL
ALGUMAS FEATURES
▸ client.addValue(selector, values)
▸ client.click(selector)
▸ client.dragAndDrop(source, dest)
▸ client.submitForm(selector)
▸ client.getText(selector, attrName)
▸ client.getUrl()
▸ client.getValue(selector)
▸ client.launch()
▸ client.orientation([deviceOrientation])
▸ client.getGeolocation()
▸ client.rotate(x, y, duration, radius,
rotation, touchCount)
▸ client.swipe([selector][xoffset][yoffset][s
peed]);
▸ client.currentActivity();
DEMO
PERGUNTAS