37
[email protected] (48) 3285-5615 twitter.com/qualister facebook.com/qualister linkedin.com/company/qualister Automação de frontend Web com métodos Ágeis Elias Nogueira [email protected] / @eliasnogueira

Automação de Teste em Front End - Caipira Ágil

Embed Size (px)

DESCRIPTION

Apresentação no Caipira Ágil em 06/09/2014 referente a algumas formas de automação focada em front-end.

Citation preview

Page 1: Automação de Teste em Front End - Caipira Ágil

[email protected] (48) 3285-5615 twitter.com/qualister facebook.com/qualister linkedin.com/company/qualister

Automação  de  front-­‐end  Web  com  métodos  Ágeis  

 

Elias  Nogueira  [email protected]  /  @eliasnogueira  

Page 2: Automação de Teste em Front End - Caipira Ágil

     

Existe  um  projeto  no  GitHub  com  o  que  foi  desenvolvido  durante  o  workshop  

 

h7ps://github.com/eliasnogueira/automacao-­‐fontend-­‐caipiraagil  

Page 3: Automação de Teste em Front End - Caipira Ágil

     

www.qualister.com.br    

Fundada  em  2007  Mais  de  1.000  clientes  em  todo  o  Brasil  

Mais  de  50  cursos  sobre  teste  de  soEware  Mais  de  3.000  alunos  formados  

Page 4: Automação de Teste em Front End - Caipira Ágil

Front  End  x  Back  End  

Front  End  Tudo  o  que  o  usuário  vê  e  consegue  interagir.  Geralmente  criado  (na  web)  com  HTML,  CSS  e  JavaScript.    

 

Back  End  O  que  processa  as  interações  do  usuário  (Ex:  cadastrar  dados,  trafegar  dados  de  um  serviço  a  outro,  etc..)  Geralmente  desenvolvido  em  uma  linguagem  de  programação    

Page 5: Automação de Teste em Front End - Caipira Ágil

Teste  Ágil  

Teste  Ágil  é  uma  práIca  de  Teste  de  SoKware  que  segue  os  princípios  do  desenvolvimento  ágil    

Page 6: Automação de Teste em Front End - Caipira Ágil

Teste  Ágil  

Page 7: Automação de Teste em Front End - Caipira Ágil

Estratégia  

Manutenibilida

d

ePortabilidadeBaixo

NívelAltoNível

Page 8: Automação de Teste em Front End - Caipira Ágil

Verificação  

Verificação  Iremos  verificar  padrões  de  HTML,  CSS,  JavaScript  e  boas  prá_cas  para  deixar  o  front-­‐end  mais  leve.    

 

Validação  Iremos  validar  se  a  aplicação  funciona  como  especificado  simulando  a  u_lização  como  um  usuário,  de  forma  automa_zada,    

Page 9: Automação de Teste em Front End - Caipira Ágil

Dividindo  em  partes...  

W3Schools:  verifica  online  HTML  e  CSS  h7p://www.w3schools.com/website/web_validate.asp    

W3C  Status:  lista  de  diversos  soEwares  para  automação  h7p://www.w3.org/Status.html    

GTmetrix:  analisa  a  velocidade/performance  de  uma  página  h7p://planned.by/quickloja/    

Browser  Diet:  guia  para  perder  peso  no  browser  h7p://browserdiet.com/pt/    

Page 10: Automação de Teste em Front End - Caipira Ágil

Interação  1  

Analise  o  site  abaixo  no  GTMetrix.  Vamos  discu_r  os  resultados  apresentados    h7p://planned.by/quickloja/    

Page 11: Automação de Teste em Front End - Caipira Ágil

Automação  da  UI  é  Importante  

Pirâmide  de  Automação  de  Teste  Michel  Cohn  (Succeding  with  Agile)    

h7p://www.mountaingoatsoEware.com/blog/the-­‐forgo7en-­‐layer-­‐of-­‐the-­‐test-­‐automa_on-­‐pyramid  

Page 12: Automação de Teste em Front End - Caipira Ágil

Validação  na  UI  

Smoke  Tests    xBrowser  Tes_ng    Visual  Regression  Tes_ng    

Slide  “roubado”do  @stefanteixeira  h7p://goo.gl/WKGO7X  

Page 13: Automação de Teste em Front End - Caipira Ágil

Velocidade  faz  a  diferença...  

E  se  você  executasse  todos  os  testes  funcionais  automa_zados  via  interface  gráfica  na  sua  build  padrão?    

Muita  demora  no  feedback  do  ciclo  de  CI    

Page 14: Automação de Teste em Front End - Caipira Ágil

Vamos  começar  de  tras  pra  frente...  

Xbowser  Tes_ng  com  Selenium/WebDriver    

Page 15: Automação de Teste em Front End - Caipira Ágil

Selenium/WebDriver  

API  mais  usada  para  desenvolvimento  de  testes  automa_zados  em  front  end  web    Diversas  APIs/Frameworks  usam  ele  “por  baixo  dos  panos”    Suporte  nas  principais  linguagems  

 Java,  C#,  Ruby,  Python,  JavaScript  (Node.js)    h7p://seleniumhq.org  

Page 16: Automação de Teste em Front End - Caipira Ágil

Selenium/WebDriver  

Antes  precisamos  saber  algumas  coisas:    

 -­‐  Fluxo  de  u_lização  do  usuário    

 -­‐  Conhecer  minimamente  sobre  HTML,  CSS  e  JavaScript    

 -­‐  Desenvolver  em  alguma  linguagem  e  programação  

Page 17: Automação de Teste em Front End - Caipira Ágil

Interação  2  

Manualmente...    

1.  Acessar  a  página  h7p://planned.by/quickloja/  2.  Preencher  o  campo  usuário  com  elias.nogueira  3.  Preencher  o  campo  senha  com  123  4.  Clicar  no  botão  Entrar  

Page 18: Automação de Teste em Front End - Caipira Ágil

Selenium/WebDriver  

Page 19: Automação de Teste em Front End - Caipira Ágil

Interação  3  

Manualmente...    

1.  Acessar  a  página  h7p://planned.by/quickloja/  2.  Preencher  o  campo  usuário  com  elias.nogueira  3.  Preencher  o  campo  senha  com  123  4.  Clicar  no  botão  Entrar  5.  Validar  que  está  na  área  de  usuário  (???)  

Page 20: Automação de Teste em Front End - Caipira Ágil

Selenium/WebDriver  

Page 21: Automação de Teste em Front End - Caipira Ágil

Selenium/WebDriver  

Mas  se  precisarmos  executar  mais  ações?    Exemplos:  

 -­‐  Efetuar  login  e  cadastrar  um  produto    -­‐  Efetuar  login  e  consultar  o  estoque  

Page 22: Automação de Teste em Front End - Caipira Ágil

Page  Objects  

Page 23: Automação de Teste em Front End - Caipira Ágil

Page  Objects  

Cada  página  vira  uma  classe  com  ações  (simples  ou  em  conjunto)    O  Teste  consome  cada  página  e  monta  o  fluxo  de  execução  baseados  pela  página    Ganho  na  centralização  da  manutenção,  com  redução  na  duplicação  de  código  

Page 24: Automação de Teste em Front End - Caipira Ágil

Interação  4  

Iremos  transformar  o  Login  em  um  Page  Objects  e  criar  uma  classe  de  teste  para  a  validação  do  login  

Page 25: Automação de Teste em Front End - Caipira Ágil

Selenium/WebDriver  

Page 26: Automação de Teste em Front End - Caipira Ágil

Interação  5  

Crie  um  Page  Objects  para  Categoria  Iremos:  1.  Efetuar  o  login  2.  Cadastrar  uma  categoria  

Page 27: Automação de Teste em Front End - Caipira Ágil

Interação  5  

 

Pagina  Login    

 

Pagina  Menu    

 

Pagina  Login    

 

Pagina  Categoria    

 

Pagina  Nova  Categoria    

 

Teste    

Page 28: Automação de Teste em Front End - Caipira Ágil

Vamos  começar  “do  começo”  

Smoke  Tests    

Page 29: Automação de Teste em Front End - Caipira Ágil

Smoke  Tests  

Pequeno  conjunto  de  testes  mais  prioritários    O  pensamento  é  “sem  isso  não  funcionar  nem  adianta  fazer  o  deploy”    Como  em  todos  os  outros  testes,  deve  executar  sempre  o  mais  rápido  possível  

Page 30: Automação de Teste em Front End - Caipira Ágil

CasperJS  

Execução  via  headless  browser    U_liza  PhantomJS  e  SlimerJS  (Gecko)  para  navegação  e  testes    Escrita  de  código  em  JavaScript    Deixa  a  execução  muito  mais  rápida    h7p://casperjs.org    

 

 

Page 31: Automação de Teste em Front End - Caipira Ágil

CasperJS  

Porque  executaríamos  testes  headless?    

 -­‐  Maior  velocidade    -­‐  Teste  pode  estar  no  ciclo  de  CI  diário    -­‐  Sem  dependência  de  browser  específico  

 

 

 

Page 32: Automação de Teste em Front End - Caipira Ágil

Interação  6  

Criaremos  a  validação  do  login  com  o  CasperJS  

Page 33: Automação de Teste em Front End - Caipira Ágil

CasperJS  

Page 34: Automação de Teste em Front End - Caipira Ágil

Visual  Regression  Test  

Abordagem  para:    -­‐  Validar  valores  de  CSS    -­‐  Comparar  Screenshots    -­‐  Validar  design  responsivo  

 

 

 

Slide  “roubado”do  @stefanteixeira  h7p://goo.gl/WKGO7X  

Page 35: Automação de Teste em Front End - Caipira Ágil

Visual  Regression  Test  

Slide  “roubado”do  @stefanteixeira  h7p://goo.gl/WKGO7X  

Page 36: Automação de Teste em Front End - Caipira Ágil

Visual  Regression  Test  

Slide  “roubado”do  @stefanteixeira  h7p://goo.gl/WKGO7X  

Page 37: Automação de Teste em Front End - Caipira Ágil

Contatos  

 

[email protected]  @eliasnogueira  

linkedin.com/in/eliasnoguiera  slideshare.net/eliasnogueira  

(48)  3285-­‐5615