Testes para Android de ponta a ponta

16
Globalcode – Open4education Testes para Android de Ponta a Ponta Elias Nogueira @eliasogueira

Transcript of Testes para Android de ponta a ponta

Page 1: Testes para Android de ponta a ponta

Globalcode  –  Open4education

Testes para Android de Ponta a Ponta

Elias Nogueira @eliasogueira

Page 2: Testes para Android de ponta a ponta

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  

Page 3: Testes para Android de ponta a ponta

Globalcode  –  Open4education

ATENÇÃO!!!

 É importante automatizar todos os níveis da app

Page 4: Testes para Android de ponta a ponta

Globalcode  –  Open4education

Níveis de teste em Android

 Unitário  Local   Instrumentação

 UI

 Cadê o nível de serviços???

Page 5: Testes para Android de ponta a ponta

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

Page 6: Testes para Android de ponta a ponta

Globalcode  –  Open4education

Unitário Local

./gradlew test

Context  Context  Provider  Content  Resolver  

Service  Intent  

Page 7: Testes para Android de ponta a ponta

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

Page 8: Testes para Android de ponta a ponta

Globalcode  –  Open4education

Unitário Instrumentação

./gradlew cC

Context  Context  Provider  Content  Resolver  

Service  Intent  

Page 9: Testes para Android de ponta a ponta

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

Page 10: Testes para Android de ponta a ponta

Globalcode  –  Open4education

Unitário Roboletric

./gradlew test

Page 11: Testes para Android de ponta a ponta

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

Page 12: Testes para Android de ponta a ponta

Globalcode  –  Open4education

Rest-Assured

./gradlew test

Page 13: Testes para Android de ponta a ponta

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

Page 14: Testes para Android de ponta a ponta

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

Page 15: Testes para Android de ponta a ponta

Globalcode  –  Open4education

Appium

./gradlew test

Page 16: Testes para Android de ponta a ponta

Globalcode  –  Open4education

Projeto em...

https://github.com/eliasnogueira/ testes-android-ponta-a-ponta