Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

TDC 2016 Trilha Testes - Floripa

319 vues

Publié le

Aprenda como criar uma suite de testes e2e rápida, robusta e de fácil manutenção

Publié dans : Technologie
  • Soyez le premier à commenter

TDC 2016 Trilha Testes - Floripa

  1. 1. 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
  2. 2. 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)
  3. 3. 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...
  4. 4. 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?
  5. 5. Globalcode – Open4education Pirâmide dos testes Referência: https://goo.gl/TgOM5L
  6. 6. Globalcode – Open4education Quadrante dos testes Referência: http://goo.gl/Flgv7w
  7. 7. 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.
  8. 8. Globalcode – Open4education Principais problemas de testes de UI
  9. 9. 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)
  10. 10. 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
  11. 11. Globalcode – Open4education São de difícil manutenção ➔ Falta de padrões ➔ Cultura de desenvolvimento tradicional
  12. 12. 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
  13. 13. Globalcode – Open4education Então, como criar uma suite de testes e2e que seja rápida, robusta e de fácil manutenção?
  14. 14. Globalcode – Open4education Para ser rápida... ➔ Crie uma suite de smoke test ➔ Crie uma suite de testes para as principais rotas da aplicação ➔ Paralelize os testes ➔ Crie um pipeline com diferentes estágios (unidade/serviços, smoke, regression/acceptance)
  15. 15. Globalcode – Open4education Quão rápida?
  16. 16. Globalcode – Open4education Vejamos alguns dados
  17. 17. Globalcode – Open4education Suite de teste das principais rotas da aplicação
  18. 18. Globalcode – Open4education Paralelização de testes - exemplo 1
  19. 19. Globalcode – Open4education Veja o tempo de execução dos mesmos testes executados em um mesmo navegador...
  20. 20. Globalcode – Open4education Paralelização de testes - exemplo 2
  21. 21. Globalcode – Open4education Veja também o tempo de execução dos mesmos testes executados em um mesmo navegador...
  22. 22. Globalcode – Open4education Estes testes paralelos também podem ser executados em serviços na nuvem
  23. 23. 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...
  24. 24. Globalcode – Open4education Independencia de testes...
  25. 25. Globalcode – Open4education Setup/teardown com onPrepare
  26. 26. Globalcode – Open4education Outras possibilidades... beforeLaunch() onComplete() onCleanUp() afterLaunch()
  27. 27. Globalcode – Open4education Mantenha-se atualizado...
  28. 28. Globalcode – Open4education Crie testes pensando no negócio
  29. 29. Globalcode – Open4education Seletores CSS...
  30. 30. Globalcode – Open4education Dica para aprendizado de CSS
  31. 31. Globalcode – Open4education Siga e dissemine os padrões...
  32. 32. Globalcode – Open4education Utilize Page Objects...
  33. 33. Globalcode – Open4education Sem Page Objects...
  34. 34. Globalcode – Open4education Com Page Objects (spec file)...
  35. 35. Globalcode – Open4education Com Page Objects (.po file)...
  36. 36. Globalcode – Open4education message-wrapper.po file
  37. 37. 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...
  38. 38. Globalcode – Open4education Application layers...
  39. 39. Globalcode – Open4education Cultura Agile Testing...
  40. 40. Globalcode – Open4education O manifesto dos testes Valorizamos: ● 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.
  41. 41. Globalcode – Open4education
  42. 42. Globalcode – Open4education
  43. 43. Globalcode – Open4education Aproveite as refatorações para matar @TODOs e xit().pend()s
  44. 44. Globalcode – Open4education Nem sempre sua suite de testes e2e poderá ser rápida, mas no mínimo DEVE ser robusta e manutenível.
  45. 45. Globalcode – Open4education Aqui entra a importância dos pipelines
  46. 46. Globalcode – Open4education
  47. 47. Globalcode – Open4education
  48. 48. Globalcode – Open4education Vejamos alguns exemplos?
  49. 49. Globalcode – Open4education
  50. 50. Globalcode – Open4education
  51. 51. Globalcode – Open4education
  52. 52. Globalcode – Open4education
  53. 53. Globalcode – Open4education
  54. 54. Globalcode – Open4education
  55. 55. Globalcode – Open4education
  56. 56. Globalcode – Open4education Navigation tests from Protractor oficial repository
  57. 57. Globalcode – Open4education É possível, og du kan gjøre det
  58. 58. Globalcode – Open4education Takk! @walmyrlimaesilv http://github.com/wlsf82

×