Globalcode	
  –	
  Open4education
Testes para Android de Ponta a Ponta
Elias Nogueira
@eliasogueira
Globalcode	
  –	
  Open4education
Elias Nogueira
qualister.com.br	
  
eliasnogueira	
  
br.linkedin.com/in/eliasnogueira	
  
github.com/eliasnogueira	
  
Consultor de Teste na Qualister Consultoria e Treinamento
Professor de Pós Graduação na Unisinos/RS
Atuante na comunidade de teste no cenário nacional
eliasnogueira.com	
  
Globalcode	
  –	
  Open4education
ATENÇÃO!!!
  É importante automatizar todos os níveis da app
Globalcode	
  –	
  Open4education
Níveis de teste em Android
  Unitário
 Local
 Instrumentação
  UI
  Cadê o nível de serviços???
Globalcode	
  –	
  Open4education
Unitário Local
  É uma excelente forma de testar alguma regra ou
funcionamento de código sem depender do
dispositivo para executá-las e nem do contexto a
aplicação para a instrumentação
  Normalmente utilizamos algum framework de mock
para suprir qualquer dependência
  É uma forma mais assertiva e reduz o tempo na
manutenção de testes unitários com mocks
https://developer.android.com/training/testing/unit-testing/local-unit-tests.html
Globalcode	
  –	
  Open4education
Unitário Local
./gradlew test
Context	
  
Context	
  Provider	
  
Content	
  Resolver	
  
Service	
  
Intent	
  
Globalcode	
  –	
  Open4education
Unitário Instrumentação
  São testes unitários que executam em dispositivos
reais ou emulados ao invés de serem executados
na JVM
  Utilizamos esta forma quando o teste necessita de
informações de instrumentação (Context, Activities,
etc…) ou algum acesso a implementação do
Android Framework.
https://developer.android.com/training/testing/unit-testing/instrumented-unit-tests.html
Globalcode	
  –	
  Open4education
Unitário Instrumentação
./gradlew cC
Context	
  
Context	
  Provider	
  
Content	
  Resolver	
  
Service	
  
Intent	
  
Globalcode	
  –	
  Open4education
Unitário Roboletric
  Framework que habilita a criação e execução de
testes de unidade na JVM sem a necessidade de
um emulador ou dispositivo
http://robolectric.org
Globalcode	
  –	
  Open4education
Unitário Roboletric
./gradlew test
Globalcode	
  –	
  Open4education
Rest-Assured
  Biblioteca escrita em Java para simplificar os
testes de serviço baseado em REST
  Compatível com os principais métodos (GET, POST,
PUT, DELETE, OPTIONS, PATCH, HEAD)
  Pode validar cabeçalho e requisições
  Escrita no teste na sintaxe Gherkin
given, when, then
https://github.com/jayway/rest-assured
Globalcode	
  –	
  Open4education
Rest-Assured
./gradlew test
Globalcode	
  –	
  Open4education
UI – User Interface
  Um dos pontos mais negligenciados e críticos para
os usuários da nossa app: a UI
  É de extrema importância ter uma suíte de
automação somente para UI executando em nosso
ciclo de CI
Globalcode	
  –	
  Open4education
Appium
  Alternativa aos frameworks “padrão”
  Uso o UiAutomator como base
  Aumenta o loque de possibilidades de teste:
 Escrita de código mais facilitada
 Múltiplos dispositivos
 Grid
http://appium.io
Globalcode	
  –	
  Open4education
Appium
./gradlew test
Globalcode	
  –	
  Open4education
Projeto em...
https://github.com/eliasnogueira/
testes-android-ponta-a-ponta

Testes para Android de ponta a ponta