android dev conference 2017 - automação de testes na cloud
TRANSCRIPT
![Page 1: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/1.jpg)
Testes automatizados na cloud
Mauro Tardivo Filho - @maurotfilho
ciandt.com
![Page 2: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/2.jpg)
Agradecimentos
ciandt.com
![Page 3: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/3.jpg)
Mauro Tardivo Filho
- Engenheiro de Computação pela Unicamp
- Android (7 anos), IOS (1 ano) e Web (9 anos)
- Arquiteto de Software na CI&T.
ciandt.com
Quem sou eu?
![Page 4: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/4.jpg)
A CI&T é especialista global em soluções digitais que está conduzindo iniciativas de crescimento e inovação digital para companhias líderes como
Coca-Cola, Netshoes, Motorola e Alelo.
![Page 5: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/5.jpg)
Arquiteto de Software na CI&T
- Código, Provas de Conceito- Revisão de código- Design de projeto- Gestão técnica do projeto e do time
- Check & Adapt- Análise de Riscos- Eficiência dos desenvolvedores (builds, ambientes estáveis, …)- Qualidade dos desenvolvedores e do que eles produzem
O que o Arquiteto de Software na CI&T faz?
ciandt.com
![Page 6: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/6.jpg)
O que o Arquiteto de Software na CI&T faz?
ciandt.com
Perguntas que devemos fazer sempre
- Como garantir que a qualidade está sendo entregue de forma eficiente?
- Como verificar a qualidade do time?
- Como garantir que as alterações realizadas não produzem bugs?
- Como garantir que o refactor não cause side-effects?
![Page 7: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/7.jpg)
Testes
ciandt.com
![Page 8: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/8.jpg)
Pirâmide de testes
ciandt.com
Unitários
Integração
Aceitação
ManuaisT
em
poC
ust
o$$$
$
T
t
![Page 9: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/9.jpg)
Planejamento de testes- O que vai ser testado?- Quando/Com que frequência vai ser testado?- Como/Onde vai ser testado?
Cloud Tests
ciandt.com
![Page 10: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/10.jpg)
Cenários das empresas
ciandt.com
![Page 11: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/11.jpg)
- Fingem que testam
- Testar em toda alteração para não ter surpresas- Inviável para testes manuais
- Testar quando acontece uma mudança grande
- Testar apenas quando vai fazer release- Período que os devs não podem integrar código e
ficam aguardando os testes
Cenários de Testes nas empresas
ciandt.com
![Page 12: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/12.jpg)
Como convencer seu chefe?
ciandt.com
Dev Manual Automatizado
Feature 1 8h 2h 3h
Feature 2 8h 2h 3h
Feature 3 8h 2h 3h
Feature 4 8h 2h 3h
32h 8h 12h
Testes de regressão com features não dependentes
![Page 13: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/13.jpg)
Como convencer seu chefe?
ciandt.com
Dev Manual Automatizado
Feature 1 8h 2h 3h
Feature 2 8h 2h + 2h 3h
Feature 3 8h 2h + 2h + 2h 3h
Feature 4 8h 2h+2h+2h+2h 3h
32h 20h 12h
Testes de regressão com features dependentes
![Page 14: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/14.jpg)
Como convencer seu chefe?
ciandt.com
Dev Manual (1) Manual (3) Automatizado
Feature 1 8h 2h 6h 3h
Feature 2 8h 4h 12h 3h
Feature 3 8h 6h 18h 3h
Feature 4 8h 8h 24h 3h
32h 8h 60h 12h
Testes de regressão com features dependentes em múltiplos devices ou ambientes
![Page 15: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/15.jpg)
- Cenário com múltiplos devices é o mais comum.
- Muitas empresas acabam não realizando todos estes testes em todos os devices quando executa testes manuais.- Economia de tempo e dinheiro- Prejudica a qualidade
Como as empresas agem
ciandt.com
![Page 16: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/16.jpg)
Como as empresas agem
ciandt.com
- Testes automatizados por si só já são uma boa alternativa, já que é possível executar os testes em dispositivos diferentes (mesmo que emulados).
- Emuladores não acabam simulando o cenário real, com diferentes devices ou diferentes condiçÕes
- Se sua aplicação é global, como fazer para verificar bugs ou testar a aplicação em devices exclusivos dos países?
![Page 17: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/17.jpg)
Testes (automatizados) na cloud
ciandt.com
![Page 18: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/18.jpg)
- AWS Device Farm (Amazon)- Xamarin Test Cloud (Microsoft)- Mobile Azure Center (Microsoft)- Firebase Test Lab (Google)- ....
Opções disponíveis
ciandt.com
![Page 19: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/19.jpg)
AWS Device Farm
ciandt.com
![Page 20: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/20.jpg)
- Android e iOS- Diversidade de tipos de testes:
- Calabash (Ruby) - Espresso (Java)- UI Automator (Android)- XC Tests (ObjectiveC, Swift)- Appium (Java, Python, ...)- Fuzzy, Explorer (baseado na UI)- Remote Control
- Integração com Jenkins - aws device farm plugin
AWS Device Farm
ciandt.com
![Page 21: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/21.jpg)
AWS Device Farm
ciandt.com
![Page 22: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/22.jpg)
Como configurar um teste na AWS Device Farm
AWS Device Farm
ciandt.com
![Page 23: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/23.jpg)
AWS Device Farm
ciandt.com
![Page 24: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/24.jpg)
AWS Device Farm
ciandt.com
![Page 25: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/25.jpg)
AWS Device Farm
ciandt.com
![Page 26: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/26.jpg)
AWS Device Farm
ciandt.com
![Page 27: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/27.jpg)
AWS Device Farm + Jenkins CI
AWS Device Farm
ciandt.com
![Page 28: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/28.jpg)
- Plugin para Jenkins- Definir configurações globais
AWS Device Farm
ciandt.com
![Page 29: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/29.jpg)
AWS Device Farm
ciandt.comhttp://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html?icmpid=docs_iam_console
![Page 30: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/30.jpg)
AWS Device Farm
ciandt.comhttp://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html?icmpid=docs_iam_console
![Page 31: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/31.jpg)
AWS Device Farm
ciandt.com
![Page 32: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/32.jpg)
AWS Device Farm
ciandt.com
![Page 33: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/33.jpg)
Calabash + AWS Device Farm
175 testes- 45 testes/hora => 1 ciclo de testes = ~4 horas (1 device) - Plano 0.17USD/min = 10.2 USD/hora- 39.66 USD/ciclo de testes
Se for rodar mais do que ~6 (250/4) ciclos de testes por mês, 250USD é mais vantajoso. Caso contrário, o plano de 0.17USD/min é mais vantajoso.- Rodar 1 ciclo de testes em 1 device a cada 4 horas
equivale a 6 devices testados por dia (180 devices por mês).
ciandt.com
![Page 34: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/34.jpg)
Xamarin Test Cloud
ciandt.com
![Page 35: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/35.jpg)
- Android (Java) e IOS- Tipos de testes:
- Calabash (Ruby)- UI Tests (C#)
- calabash-sandbox (CLI) pode ser incorporado no Jenkins para automatizar testes
Xamarin Test Cloud
ciandt.com
![Page 36: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/36.jpg)
Xamarin Test Cloud
ciandt.com
![Page 37: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/37.jpg)
Visual Studio Mobile Center (preview)
ciandt.com
![Page 38: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/38.jpg)
- Build- Teste- Distribuição- Crashes- Analytics- Push Notification
- Grátis, enquanto está em preview
Visual Studio Mobile Center
ciandt.com
![Page 39: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/39.jpg)
- Objective-C, Swift, Android (Java), Xamarin, React Native- 240 Android e 160 iOS devices reais/virtuais- Tipos de testes:
- Calabash (Ruby)- UI Tests (C#)- Appium- Espresso (Android)- XC Tests (IOS)
- Mobile Center CLI pode ser incorporado no Jenkins para automatizar testes
Visual Studio Mobile Center
ciandt.com
![Page 40: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/40.jpg)
Como configurar um teste no Visual Studio Mobile Center
Visual Studio Mobile Center
ciandt.com
![Page 41: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/41.jpg)
Visual Studio Mobile Center
ciandt.com
![Page 42: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/42.jpg)
Visual Studio Mobile Center
ciandt.com
![Page 43: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/43.jpg)
Visual Studio Mobile Center
ciandt.com
![Page 44: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/44.jpg)
Firebase Test Lab
ciandt.com
![Page 45: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/45.jpg)
Firebase Test Lab
ciandt.com
- Somente Android- Tipos de testes
- Espresso, Robotium, UI Automator (instrumental)- Robo Test: teste exploratório baseado na UI
![Page 46: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/46.jpg)
Firebase Test Lab
ciandt.com
![Page 47: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/47.jpg)
Como configurar um teste no Firebase
Visual Studio Mobile Center
ciandt.com
![Page 48: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/48.jpg)
Firebase Test Lab
ciandt.com
![Page 49: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/49.jpg)
Firebase Test Lab
ciandt.com
![Page 50: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/50.jpg)
Firebase Test Lab
ciandt.com
![Page 51: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/51.jpg)
Firebase + Jenkins CI
Firebase Test Lab
ciandt.com
![Page 52: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/52.jpg)
Firebase Test Lab
- Instalar Google Cloud SDK no ambiente
- gcloud config set project <PROJECT-ID>
- gcloud auth activate-service-account
- gcloud beta test android devices list
ciandt.com
![Page 53: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/53.jpg)
Firebase Test Lab
ciandt.com
gcloud beta test android run \nightly-test-matrix.yml:nexus6-device \--app app/build/outputs/apk/app-debug.apk \--test app/build/outputs/apk/app-debug-androidTest.apk \--project devconf-jenkins
gcloud beta test android run \nightly-test-matrix.yml:motorola-device \--app app/build/outputs/apk/app-debug.apk \--test app/build/outputs/apk/app-debug-androidTest.apk \--project devconf-jenkins
nightly-test-matrix.ymlnexus6-device: type: instrumentation timeout: 10m device-ids: shamu os-version-ids: [19, 23] locales: enmotorola-device: type: instrumentation timeout: 10m device-ids: osprey_umts os-version-ids: 22 locales: en
![Page 54: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/54.jpg)
AWS Device Farm VS Mobile Center Firebase Test Lab
Plano básico 0.17USD/min Grátis* Grátis
Plano médio/avançado 250USD/mês Grátis* 5USD/device/h
Número de devices 397205 Android192 IOS
400240 Android160 IOS
30 Android
CI CLI / Plugin Jenkins CLI CLI
Plataformas Android/IOS Android/IOS Android
Frameworks CalabashEspressoUI AutomatorXCTestsAppiumFuzzyExplorer
CalabashEspressoXCTestsAppiumUI Tests
EspressoRobotiumUI AutomatorRobo
Cloud Tests
ciandt.com
![Page 55: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/55.jpg)
Resumindo
ciandt.com
![Page 56: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/56.jpg)
Concluindo
ciandt.com
![Page 57: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/57.jpg)
Cloud Tests
- Negocie para o projeto ter testes automatizados- Crie planos de testes:
- Selecionar os principais cenários para serem executados em toda build em um dispositivo homologado
- Rodar testes completos antes de uma release em vários dispositivos.
- Modularizar os testes para não rodar todos de uma vez.
- Automatize a execução dos testes (na cloud)
ciandt.com
![Page 58: Android Dev Conference 2017 - Automação de Testes na Cloud](https://reader031.vdocuments.com.br/reader031/viewer/2022030318/5a6486707f8b9a82568b48cd/html5/thumbnails/58.jpg)
Obrigado!
ciandt.com