testes para dispositivos móveis
TRANSCRIPT
![Page 1: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/1.jpg)
[email protected] (48) 3285-5615 twitter.com/qualister facebook.com/qualister linkedin.com/company/qualister
Testes para Disposi,vos Móveis
Elias Nogueira @eliasnogueira
![Page 2: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/2.jpg)
Elias Nogueira <[email protected]> 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
![Page 3: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/3.jpg)
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
![Page 4: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/4.jpg)
Mais de 1.000 clientes
![Page 5: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/5.jpg)
Parcerias internacionais
![Page 6: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/6.jpg)
Tipos de Aplicações Neste tópico aprenderemos sobre os diferentes Spos de apps para disposiSvos móveis
![Page 7: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/7.jpg)
Tipos de Apps Mobile
HTML/Browser Híbridas Nativas
![Page 8: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/8.jpg)
Diferentes Tipos de Apps
Nativo iOS Híbrida Nativo Android
![Page 9: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/9.jpg)
Desafios de Testes Neste tópico iremos ilustrar quais são os desafios para testar em plataformas e o desafio de testes nas apps.
![Page 10: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/10.jpg)
Desafios -‐ Plataformas
![Page 11: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/11.jpg)
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
![Page 12: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/12.jpg)
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/
![Page 13: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/13.jpg)
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/
![Page 14: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/14.jpg)
Desafios -‐ DisposiSvos Tamanho de Tela
![Page 15: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/15.jpg)
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
![Page 16: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/16.jpg)
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
![Page 17: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/17.jpg)
Um pista...
http://www.tecmundo.com.br/pesquisa/78400-20-smartphones-mais-usados-brasil-leitores-tecmundo-2015.htm
![Page 18: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/18.jpg)
Pirâmide de Automação de Teste
É importante automaSzar todos os níveis da app
![Page 19: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/19.jpg)
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
![Page 20: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/20.jpg)
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
![Page 21: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/21.jpg)
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
![Page 22: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/22.jpg)
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
![Page 23: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/23.jpg)
Arquitetura
WebDriver Interface Json Wired Protocol
Android (4.2+) UiAutomator
iOS (até 8.1) UIAutomator
Selendroid (<2.3+) InstrumetaSon (para disposiSvos anSgos)
![Page 24: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/24.jpg)
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
![Page 25: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/25.jpg)
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
![Page 26: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/26.jpg)
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
![Page 27: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/27.jpg)
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
![Page 28: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/28.jpg)
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
![Page 29: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/29.jpg)
Conceito
Appium Client
• São as bibliotecas para que possamos escrever os testes em diferentes linguagens de programação suportadas
![Page 30: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/30.jpg)
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
![Page 31: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/31.jpg)
Script
![Page 32: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/32.jpg)
Dinâmica Neste tópico falaremos sobre a dinâmica de automação com o Appium
![Page 33: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/33.jpg)
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)
![Page 34: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/34.jpg)
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
![Page 35: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/35.jpg)
O Projeto completo está no GitHub h\ps://github.com/qualister-‐consultoria/
workshop-‐appium-‐android
![Page 36: Testes para dispositivos móveis](https://reader034.vdocuments.pub/reader034/viewer/2022051521/587c7b3c1a28abd04e8b7ee1/html5/thumbnails/36.jpg)
[email protected] (48) 3285-5615 twitter.com/qualister facebook.com/qualister linkedin.com/company/qualister