#Javou10 - Testes E2E com JavaScript

Preview:

Citation preview

#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

Recommended