58
Globalcode – Open4education Aprenda como criar uma suite de testes e2e Rápida, robusta e de fácil manutenção por Walmyr Lima e Silva Filho

TDC 2016 Trilha Testes - Floripa

Embed Size (px)

Citation preview

Page 1: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Aprenda como criar uma suite de testes e2e

Rápida, robusta e de fácil manutenção

por Walmyr Lima e Silva Filho

Page 2: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Quem sou eu?

Bacharel em Administração de empresas com ênfase em análise de sistemas pela PUCRS

Desenvolvedor de software e agile testing coach na Taller Negócios Digitais (até o final de Maio de 2016)

Autor do blog talkingabouttesting.com

Autor do curso "Aprendendo Protractor", disponível de forma gratuita no Youtube.

Engenheiro de software com foco em QA no Appear.in (a partir de Junho de 2016)

Page 3: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

O que você vai saber ao final dessa palestra:

➔ Um pouco sobre o porquê automatizar testes➔ Alguns fundamentos importantes em teste de software➔ Problemas dos testes de UI (e2e)➔ Como tornar seus testes e2e parte do dia-a-dia dos

desenvolvedores tanto quanto os testes de unidade➔ Quais as vantagens de uma suite de testes e2e rápida,

robusta e manutenível➔ A importância de pipelines➔ Alguns exemplos e links úteis...

Page 4: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

➔ Rápido feedback após mudanças➔ Trabalho repetitivo é chato de fazer manualmente➔ Não se consegue testar tudo de forma manual

(performance, por exemplo)

Mas afinal, porquê automatizar testes?

Page 5: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Pirâmide dos testes

Referência: https://goo.gl/TgOM5L

Page 6: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Quadrante dos testes

Referência: http://goo.gl/Flgv7w

Page 7: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Testes e2e / UI Testing

➔ São os testes do topo da pirâmide➔ Testes funcionais e/ou de aceitação (com

foco no negócio)

São testes executados em navegadores reais que simulam a utilização da aplicação como os usuários fariam.

Page 8: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Principais problemas de testes de UI

Page 9: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

São lentos

➔ Necessidade de abrir o navegador➔ Pré e pós condições de testes muito custosas➔ Testes das partes "erradas" da aplicação

(erradas para testes e2e)

Page 10: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

São frágeis

➔ Dependência entre casos de teste ou suites de teste (não independentes)

➔ Falta de conhecimento de automação por parte do time

➔ Falta de conhecimento da aplicação (negócio)

➔ Falta de conhecimento seletores CSS➔ Falta de padrões

Page 11: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

São de difícil manutenção

➔ Falta de padrões➔ Cultura de desenvolvimento tradicional

Page 12: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Em contra partida, veja algumas vantagens dos testes de unidade e serviços

➔ Rápidos

➔ Mais controle por parte dos desenvolvedores

➔ Evoluem mais facilmente junto com a aplicação

Page 13: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Então, como criar uma suite de testes e2e que seja rápida,

robusta e de fácil manutenção?

Page 15: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Quão rápida?

Page 16: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Vejamos alguns dados

Page 17: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Suite de teste das principais rotas da aplicação

Page 18: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Paralelização de testes - exemplo 1

Page 19: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Veja o tempo de execução dos mesmos testes executados em um mesmo navegador...

Page 20: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Paralelização de testes - exemplo 2

Page 21: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Veja também o tempo de execução dos mesmos testes executados em um mesmo navegador...

Page 22: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Estes testes paralelos também podem ser executados em

serviços na nuvem

Page 23: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

➔ Crie testes independentes➔ Pré-requisitos de testes que seriam lentos de ser

executados via interface podem ser criados via onPrepare, por exemplo

➔ Conheça e se mantenha atualizado sobre as ferramentas utilizadas

➔ Conheça a aplicação da perspectiva de negócios➔ Bons seletores CSS ajudam na testabilidade➔ Siga e dissemine os padrões➔ Utilize Page Objects

Para ser robusta...

Page 24: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Independencia de testes...

Page 25: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Setup/teardown com onPrepare

Page 26: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Outras possibilidades...

beforeLaunch()

onComplete()

onCleanUp()

afterLaunch()

Page 28: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Crie testes pensando no negócio

Page 30: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Dica para aprendizado de CSS

Page 31: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Siga e dissemine os padrões...

Page 32: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Utilize Page Objects...

Page 33: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Sem Page Objects...

Page 34: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Com Page Objects (spec file)...

Page 35: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Com Page Objects (.po file)...

Page 36: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

message-wrapper.po file

Page 37: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

➔ Entenda cada camada da aplicação➔ Siga e dissemine os padrões➔ Dissemine a cultura do Agile Testing➔ Refatore sem piedade!

Para ser evolutiva...

Page 38: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Application layers...

Page 39: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Cultura Agile Testing...

Page 40: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

O manifesto dos testesValorizamos:

● Testar durante mais que testar no final

● Prevenir bugs mais que encontrar bugs

● Testar o entendimento mais que verificar funcionalidades

● Construir o melhor sistema mais que quebrar o sistema

● Time responsável pela qualidade mais que responsabilidade do testador/time de QA.

Page 41: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Page 42: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Page 43: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Aproveite as refatorações para matar @TODOs e xit().pend()s

Page 44: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Nem sempre sua suite de testes e2e poderá ser rápida,

mas no mínimo DEVE ser robusta e manutenível.

Page 45: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Aqui entra a importância dos pipelines

Page 46: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Page 47: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Page 48: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Vejamos alguns exemplos?

Page 49: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Page 51: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Page 52: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Page 53: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Page 54: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Page 55: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Page 56: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Navigation tests from Protractor oficial repository

Page 57: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

É possível, og du kan gjøre det

Page 58: TDC 2016 Trilha Testes - Floripa

Globalcode – Open4education

Takk!@walmyrlimaesilv

http://github.com/wlsf82