Testes para dispositivos móveis

759 visualizações

Publicada em

Testes para dispositivos móveis

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
759
No SlideShare
0
A partir de incorporações
0
Número de incorporações
6
Ações
Compartilhamentos
0
Downloads
20
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Testes para dispositivos móveis

  1. 1. contato@qualister.com.br (48) 3285-5615 twitter.com/qualister facebook.com/qualister linkedin.com/company/qualister Testes  para   Disposi,vos  Móveis     Elias  Nogueira   @eliasnogueira  
  2. 2. Elias  Nogueira    <elias.nogueira@qualister.com.br>    Consultor  de  Teste  e  Qualidade  de  so0ware  na  Qualister   Professor  de  Pós  Graduação  na  Unisinos/RS  e  Uniasselvi/SC   eliasnogueira   qualister.com.br   br.linkedin.com/in/eliasnogueira   youtube.com/user/qualistervideos   Palestrante  
  3. 3. Qualister   •  Fundada  em  2007   •  Mais  de  1.000  clientes  em  todo  o  Brasil   •  Mais  de  50  cursos  sobre  teste  de  so0ware   •  Mais  de  3.000  alunos  formados   •  Áreas  de  atuação:   •  Consultoria  na  área  de  teste  qualidade  de  so0ware   •  Cursos   •  Revenda  de  ferramentas  
  4. 4. Mais  de  1.000  clientes  
  5. 5. Parcerias  internacionais  
  6. 6. Tipos  de  Aplicações   Neste  tópico  aprenderemos  sobre  os  diferentes  Spos  de   apps  para  disposiSvos  móveis  
  7. 7. Tipos  de  Apps  Mobile   HTML/Browser Híbridas Nativas
  8. 8. Diferentes  Tipos  de  Apps   Nativo iOS Híbrida Nativo Android
  9. 9. Desafios  de  Testes   Neste  tópico  iremos  ilustrar  quais  são  os  desafios  para   testar  em  plataformas  e  o  desafio  de  testes  nas  apps.  
  10. 10. Desafios  -­‐  Plataformas  
  11. 11. Desafios  -­‐  Plataformas   Fragmentação  das  plataformas   [redução]  9  para  2  possibilidades   Versões  mais  uSlizadas:  hp://developer.android.com/about/dashboards/     Versão   Codenome   API   Distribuição   2.2   Froyo   8   0.3%   2.3.3   2.3.7   Gingerbread   10   4.6%   4.0.3   4.0.4   Ice  Cream   Sandwich   15   4.1%   4.1.x   Jelly  Bean   16   13.0%   4.2.x   17   15.9%   4.3   18   4.7%   4.4   KitKat   19   39.3%   5.0   Lollipop   21   15.5%   5.1   22   2.6  
  12. 12. Desafios  -­‐  Plataformas   Fragmentação  das  plataformas   1  (iphone)  +  1  (iPad)  possibilidades   Versões  mais  uSlizadas:  hps://developer.apple.com/support/appstore/   Matriz  de  versões:  hp://iossupportmatrix.com/  
  13. 13. Desafios  -­‐  DisposiSvos   Fragmentação  de  Disposi,vos     Android   •  Mais  de  24.903  disposiSvos  disSntos   •  Diferentes  fabricantes:  Samsung,  Motorola,  HTC,  LG,  Sony,   Samsung  (38%)   iPhone   •  5  disposiSvos  usados  no  mercado  (4S,  5,  5c,  5s,  6)   •  5  disposiSvos  suportados  oficialmente  (5s,  6,  6  plus,  6s,  6s  plus)   •  Mais  uSlizados  4s,  5,  5s  e  6     http://opensignal.com/reports/2015/08/android-fragmentation/
  14. 14. Desafios  -­‐  DisposiSvos   Tamanho  de  Tela      
  15. 15. Desafios  -­‐  Execução   Emuladores   Cloud  TesSng   DisposiSvo  Real   •  Muitos  apps  podem  ser   testados  em  emuladores   sem  o  invesSmento  de   hardware  (smartphones)   •  A  grande  maioria  é  free  e   empresas  disponibilizam   seus  emuladores   •  Os  disposiSvos  podem  ser   acessadas  via  web   •  A  aplicação  pode  ser   instalada,  testada  e   gerenciada   •  É  segura  para  as  aSvidades   de  teste   •  Vai  trazer  resultados  mais   realísScos   •  Todas  as  possibilidades  de   teste  poderão  ser  executadas   incluindo  as  com  dependência   de  hardware  
  16. 16. Como  resolver  estes  desafios?   •  Obter  estaSsScamente  os  disposiSvos  mais   uSlizados   •  Logs  do  Console  de  Desenvolvedor   •  Relato  de  erros  de  usuários   •  Volume  de  vendas  dos  disposiSvos  
  17. 17. Um  pista...   http://www.tecmundo.com.br/pesquisa/78400-20-smartphones-mais-usados-brasil-leitores-tecmundo-2015.htm
  18. 18. Pirâmide  de  Automação  de  Teste   É  importante  automaSzar  todos  os  níveis  da  app  
  19. 19. Ferramentas   Existem  diversas  ferramentas  para  automação  de   testes  em  UI  para  Android  e  iOS   Appium   hp://appium.io/   selendroid   hp://selendroid.io/   Robo,um   hps://code.google.com/p/roboSum/   calabash-­‐andorid   hps://github.com/calabash/calabash-­‐android   MonkeyTalk   hps://www.cloudmonkeymobile.com/monkeytalk   Espresso   hps://code.google.com/p/android-­‐test-­‐kit/wiki/Espresso   UiAutomator   hps://developer.android.com/tools/tesSng-­‐support-­‐ library/index.html#UIAutomator   http://www.qualister.com.br/blog/comparativo-de-ferramentas-para-automacao-de-teste-em-android
  20. 20. Ferramentas   Existem  diversas  ferramentas  para  automação  de   testes  em  UI  para  Android  e  iOS   Robo,um   UiAutomator   Espresso   Calabash   Appium   Mobile  Web   Sim   (Android)   Não   Não   Sim   (Android)   Sim   (iOS  e  Android)   Linguagem   Java   Java   Java   Ruby   Muitas   Ferramenta   para  criação   de  teste   RoboSum   Recorder   UiAutomatorViewer   Hierarchy   Viewer   CLI   Appium.app   UiAutomatorViewer   APIs   suportadas   Todas   >=16   8,10,15-­‐19   Todas   Todas   Comunidade   Contributors   Google   Google   Pequena   ASva  
  21. 21. Introdução  a  Appium   Appium  é  uma  ferramenta  open  source  para   automaSzar:     •  Aplicações  mobile  naSvas  ou  híbridas  para  iOS,  Android   •  Aplicações  web  mobile  para  os  browsers  naSvos  do  iOS,     Android  ou  Google  Chrome  
  22. 22. Introdução  a  Appium   Appium  também  é  mulS-­‐plataforma,  ou  seja,   podemos  escrever  um  único  código  que  executa   em  iOS,  Android  usando  a  mesma  API  
  23. 23. Arquitetura   WebDriver  Interface   Json  Wired  Protocol   Android  (4.2+)     UiAutomator   iOS  (até  8.1)   UIAutomator   Selendroid  (<2.3+)   InstrumetaSon  (para  disposiSvos  anSgos)  
  24. 24. Design   •  O  Appium,  na  verdade,  é  um  HTTP  Server  que   cria  e  gerencia  sessões  do  WebDriver   •  O  WebDriver  é  hoje  um  padrão  W3C  para   automação  de  teste  web   •  O  Appium  inicia  um  “caso  de  teste  /  script”  que   inicia  um  servidor  de  teste  e  espera  os   comandos  enviados  por  ele  para  o  disposiSvo  
  25. 25. Conceito   Arquitetura  Cliente/Servidor     •  Appium  é  um  servidor  web  que  expõe  uma  API  REST   •  Ele  recebe  conexões  de  um  cliente,  espera  por   comandos,  executa  os  comandos  em  um  disposiSvo   móvel  e  responde  com  uma  resposta  HTTP  com  o   resultado  do  comando   •  Com  isso  podemos  ter  diferentes  linguagens  de   programação  para  escrever  os  testes  e  rodar  os  testes   em  máquinas  totalmente  separadas  
  26. 26. Conceito   Sessão     •  Toda  a  comunicação  com  um  disposiSvo  é  aberta   através  de  uma  sessão  (session)  para  cada  biblioteca   (linguagem)  uSlizada   •  Esta  requisição  é  um  POST  com  um  objeto  JSON   enviando  as  capacidades  desejadas  (Desired   Capabili>es)   •  Neste  ponto  o  servidor  responde  com  um  ID  de  sessão   e  passa  a  receber  comandos  (requests)  por  esse  ID   entre  o  servidor  e  o  disposiSvo  
  27. 27. Conceito   Desired  Capabili,es     •  É  um  conjunto  de  comandos  enviados  para  os  servidor   com  capacidades  específicas  para  cada  sessão   •  Com  ela  podemos  informar  que  desejamos  uma  sessão   (disposiSvo)  que  seja  um  IOS  ou  Android,  e  até  mesmo   especificar  a  versão  de  ambos  
  28. 28. Conceito   Appium  Server     •  É  um  servidor  escrito  em  node.js  que  pode  ser  instalado   via  NPM  ou  como  uma  aplicação  para  o  Sistema   Operacional   •  Com  ele  instalado  no  Sistema  Operacional  poderemos   ter  diversas  funções,  como  inspeção  e  testes  de   comandos  no  disposiSvo   •  O  Appium.app,  aplicação  desktop,  já  tem  o  node.js   embuSdo  para  a    execução  do  servidor  do  Appium  
  29. 29. Conceito   Appium  Client     •  São  as  bibliotecas  para  que  possamos  escrever  os   testes  em  diferentes  linguagens  de  programação   suportadas  
  30. 30. Dispositivo Script de Teste Execução  Local  (localhost)   Appium  Server   AppiumDriver   Desired   Capabilites   Caso  de  Teste   4723   Appium DesiredCapabilities http://localhost:4723/wd/hub Sessão  
  31. 31. Script  
  32. 32. Dinâmica   Neste  tópico  falaremos  sobre  a  dinâmica  de  automação   com  o  Appium  
  33. 33. Dinâmica   A  seguinte  dinâmica  será  adotada:     •  Apresentação  de  cada  ponto  sobre  Appium   •  Instalação  da  app   •  Inserção  das  DesiredCapabili>es   •  Inserção  da  interação  com  a  app   •  Inserção  das  validações   •  Execução  do  script   •  Exercício(s)    
  34. 34. Passos  de  Automação   Nós  executaremos  os  seguintes  passos  para  automaSzar   os  testes:     1.  Executar  o  teste  manualmente  no  disposiSvo   2.  Desenvolver  o  script   1.  Informar  a  app  que  será  testada   2.  Informar  as  capacidades   3.  Criar  a  conexão  com  Appium   4.  Desenvolver  o  script  (interação  com  os  componentes)   5.  Colocar  as  validações   3.  Executando  o  script  automaSzado   1.  Abrir  e  iniciar  o  Appium.app   2.  Executar  o  script  de  teste  
  35. 35. O  Projeto  completo  está  no  GitHub   hps://github.com/qualister-­‐consultoria/ workshop-­‐appium-­‐android  
  36. 36. contato@qualister.com.br (48) 3285-5615 twitter.com/qualister facebook.com/qualister linkedin.com/company/qualister

×