Mauro Tardivo Filho - Software Architect na CI&T, fala sobre Automação de Testes na Cloud no Android Dev Conference 2017.
https://eventos.imasters.com.br/android-devconference/
3. 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?
4. 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.
5. 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
6. 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?
11. - 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
12. 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
13. 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
14. 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
15. - 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
16. 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?
33. 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
35. - 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
38. - Build
- Teste
- Distribuição
- Crashes
- Analytics
- Push Notification
- Grátis, enquanto está em preview
Visual Studio Mobile Center
ciandt.com
39. - 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
40. Como configurar um teste no Visual Studio
Mobile Center
Visual Studio Mobile Center
ciandt.com
52. 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
53. 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.yml
nexus6-device:
type: instrumentation
timeout: 10m
device-ids: shamu
os-version-ids: [19, 23]
locales: en
motorola-device:
type: instrumentation
timeout: 10m
device-ids: osprey_umts
os-version-ids: 22
locales: en
54. 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 397
205 Android
192 IOS
400
240 Android
160 IOS
30 Android
CI CLI / Plugin Jenkins CLI CLI
Plataformas Android/IOS Android/IOS Android
Frameworks Calabash
Espresso
UI Automator
XCTests
Appium
Fuzzy
Explorer
Calabash
Espresso
XCTests
Appium
UI Tests
Espresso
Robotium
UI Automator
Robo
Cloud Tests
ciandt.com
57. 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