testes para dispositivos móveis

Post on 15-Apr-2017

866 Views

Category:

Technology

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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  

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  

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  

Mais  de  1.000  clientes  

Parcerias  internacionais  

Tipos  de  Aplicações  Neste  tópico  aprenderemos  sobre  os  diferentes  Spos  de  apps  para  disposiSvos  móveis  

Tipos  de  Apps  Mobile  

HTML/Browser Híbridas Nativas

Diferentes  Tipos  de  Apps  

Nativo iOS Híbrida Nativo Android

Desafios  de  Testes  Neste  tópico  iremos  ilustrar  quais  são  os  desafios  para  testar  em  plataformas  e  o  desafio  de  testes  nas  apps.  

Desafios  -­‐  Plataformas  

Desafios  -­‐  Plataformas  

Fragmentação  das  plataformas  

[redução]  9  para  2  possibilidades  Versões  mais  uSlizadas:  h\p://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  

Desafios  -­‐  Plataformas  

Fragmentação  das  plataformas  

1  (iphone)  +  1  (iPad)  possibilidades  

Versões  mais  uSlizadas:  h\ps://developer.apple.com/support/appstore/  

Matriz  de  versões:  h\p://iossupportmatrix.com/  

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/

Desafios  -­‐  DisposiSvos  Tamanho  de  Tela      

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  

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  

Um  pista...  

http://www.tecmundo.com.br/pesquisa/78400-20-smartphones-mais-usados-brasil-leitores-tecmundo-2015.htm

Pirâmide  de  Automação  de  Teste  

É  importante  automaSzar  todos  os  níveis  da  app  

Ferramentas  

Existem  diversas  ferramentas  para  automação  de  testes  em  UI  para  Android  e  iOS  

Appium   h\p://appium.io/  

selendroid   h\p://selendroid.io/  

Robo,um   h\ps://code.google.com/p/roboSum/  

calabash-­‐andorid   h\ps://github.com/calabash/calabash-­‐android  

MonkeyTalk   h\ps://www.cloudmonkeymobile.com/monkeytalk  

Espresso   h\ps://code.google.com/p/android-­‐test-­‐kit/wiki/Espresso  

UiAutomator   h\ps://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

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  

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  

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  

Arquitetura  

WebDriver  Interface  Json  Wired  Protocol  

Android  (4.2+)    UiAutomator  

iOS  (até  8.1)  UIAutomator  

Selendroid  (<2.3+)  InstrumetaSon  (para  disposiSvos  anSgos)  

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  

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  

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  

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  

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  

Conceito  

Appium  Client    

•  São  as  bibliotecas  para  que  possamos  escrever  os  testes  em  diferentes  linguagens  de  programação  suportadas  

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  

Script  

Dinâmica  Neste  tópico  falaremos  sobre  a  dinâmica  de  automação  com  o  Appium  

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)  

 

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  

O  Projeto  completo  está  no  GitHub  h\ps://github.com/qualister-­‐consultoria/

workshop-­‐appium-­‐android  

contato@qualister.com.br (48) 3285-5615 twitter.com/qualister facebook.com/qualister linkedin.com/company/qualister

top related