SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
Espresso 101:
Introdução a UI Testing
Pedro Salomão
@ppgsalomao
ppgsalomao@gmail.com / pedro@onyo.com
#whoami
Objetivos
Objetivos
1. Onde entram as diversas ferramentas de teste;
2. O que são Testes de Interface do Usuário;
3. Como definir o que testar;
4. Como integrar o Espresso ao meu projeto;
5. Como escrever o meu primeiro teste de UI;
6. [BÔNUS] Demo.
Ferramentas para
Teste
Camadas da Aplicação
USUÁRIO APK INTERNET
Interface
Gráfica
Ferramentas para Teste
Robolectric
API 16+
JVM
Espresso
API 8+
Robotium Calabash Selendroid
Instrumentation 

API 1+
Android Platform
Appium
UIAutomator

API 16+
UIAutomation

API 18+
Ferramentas para Teste
Robolectric
API 16+
JVM
Espresso
API 8+
Robotium Calabash Selendroid
Instrumentation 

API 1+
Android Platform
Appium
UIAutomator

API 16+
UIAutomation

API 18+
Camadas da Aplicação
USUÁRIO
ESPRESSO
APK INTERNET
Interface
Gráfica
Testes de Interface
Testes de Interface
1. O que devo testar?
2. Qual o escopo de um teste (método)?
3. Posso testar fluxos completos?
4. E como funciona o estado da aplicação?
5. O que é um Mock e por que é importante?
Espresso
Processo
APK Test APK
Espresso
Vamos falar de
código?!
Integrando o Espresso
Integrando o Espresso
1. Adicionar no build.gradle, em dependencies:
2. Adicionar no build.gradle, em android.defaultConfig:
compile 'com.android.support:support-annotations:23.1.1'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
androidTestCompile 'com.android.support.test:runner:0.4.1'
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
fonte: https://google.github.io/android-testing-support-library/docs/espresso/setup/index.html
Escrevendo o Teste
Espresso - Asserts
onView( ViewMatcher )
.perform( ViewAction )
.check( ViewAssertion )
fonte: https://google.github.io/android-testing-support-library/docs/espresso/cheatsheet/index.html
ViewMatcher
Dois usos básicos:
• Encontrar uma view (onView)
• Verificar uma condição da View (matches)
Exemplos:
• withId( … )
• withText( … )
• isDisplayed()
ViewAction
Permite executar ações na tela.
Exemplos:
• click()
• scrollTo( … )
• typeText( … )
ViewAssertion
Permite verificar uma determinada propriedade.
Exemplos:
• matches( Matcher )
• doesNotExists( … )
• typeText( … )
Observação:
doesNotExists() != isNotDisplayed()
Criando um teste
Passos para criar um Teste usando Espresso:
• Adicionar a anotação do JUnit na classe.
• Adicionar uma Rule para a Activity a ser testada.
• Criar os métodos de teste.
Exemplo
@RunWith(AndroidJUnit4.class)
@LargeTest
public class HelloWorldEspressoTest {
@Rule
public ActivityTestRule<MainActivity> mActivityRule =
new ActivityTestRule<>(MainActivity.class);
@Test
public void listGoesOverTheFold() {
onView(withText("Hello world!”))
.check(matches(isDisplayed()));
}
}
DEMO
Links Úteis
Site da Google para Android Testing
https://google.github.io/android-testing-support-library/
Código do Demo de Espresso
https://github.com/ppgsalomao/espresso-examples
GTAC 2014: Espresso, Spoon, Wiremock, Oh my!
https://www.youtube.com/watch?v=-xQCNf_5NNM
Droidcon NYC 2015 - Advanced Android Espresso
https://www.youtube.com/watch?v=GlPn60-_txk
Dúvidas?
Obrigado!
Pedro Salomão
@ppgsalomao
ppgsalomao@gmail.com / pedro@onyo.com

Mais conteúdo relacionado

Mais procurados

Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos Letticia Nicoli
 
Automação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e MobileAutomação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e MobileElias Nogueira
 
Automatize seus testes de UI com a Espresso!
Automatize seus testes de UI com a Espresso!Automatize seus testes de UI com a Espresso!
Automatize seus testes de UI com a Espresso!Ramon Ribeiro Rabello
 
TDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteira
TDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteiraTDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteira
TDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteiraDiego Gabriel Cardoso
 
Framework de automação de teste Robotium
Framework de automação de teste RobotiumFramework de automação de teste Robotium
Framework de automação de teste RobotiumBenicio Ávila
 
Como ensinei mais de 1000 testadores
Como ensinei mais de 1000 testadoresComo ensinei mais de 1000 testadores
Como ensinei mais de 1000 testadoresElias Nogueira
 
Teste de aplicações web com selenium
Teste de aplicações web com seleniumTeste de aplicações web com selenium
Teste de aplicações web com seleniumMayron Cachina
 
Como testar sua aplicação Android e iOS: uma abordagem prática
Como testar sua aplicação Android e iOS: uma abordagem práticaComo testar sua aplicação Android e iOS: uma abordagem prática
Como testar sua aplicação Android e iOS: uma abordagem práticaElias Nogueira
 
Appinventor - Faça simples apps android
Appinventor - Faça simples apps androidAppinventor - Faça simples apps android
Appinventor - Faça simples apps androidPedro Cardoso
 
Automatizando testes de UI no Android com Espresso
Automatizando testes de UI no Android com EspressoAutomatizando testes de UI no Android com Espresso
Automatizando testes de UI no Android com EspressoVinícius de Paula
 
Criando aplicações em Android brincando de quebra-cabeça!
Criando aplicações em Android brincando de quebra-cabeça!Criando aplicações em Android brincando de quebra-cabeça!
Criando aplicações em Android brincando de quebra-cabeça!Comunidade Tá safo!
 
Automação de Teste Funcionais - Selenium
Automação de Teste Funcionais - SeleniumAutomação de Teste Funcionais - Selenium
Automação de Teste Funcionais - SeleniumIsrael Santiago
 
Automação de Teste em UI para Android
Automação de Teste em UI para AndroidAutomação de Teste em UI para Android
Automação de Teste em UI para AndroidElias Nogueira
 
Universal Apps: Criando apps para Windows Phone e Windows com um único código
Universal Apps: Criando apps para Windows Phone e Windows com um único códigoUniversal Apps: Criando apps para Windows Phone e Windows com um único código
Universal Apps: Criando apps para Windows Phone e Windows com um único códigoLeandro Borges
 
Visual Studio Summit 2016 - Xamarin Test Cloud
Visual Studio Summit 2016 - Xamarin Test CloudVisual Studio Summit 2016 - Xamarin Test Cloud
Visual Studio Summit 2016 - Xamarin Test CloudAlexandre Zollinger Chohfi
 
Design Factory em testes
Design Factory em testesDesign Factory em testes
Design Factory em testesTestRock!
 

Mais procurados (20)

Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
 
Automação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e MobileAutomação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e Mobile
 
Automatize seus testes de UI com a Espresso!
Automatize seus testes de UI com a Espresso!Automatize seus testes de UI com a Espresso!
Automatize seus testes de UI com a Espresso!
 
TDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteira
TDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteiraTDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteira
TDC2016 - SP - Trilha Xamarin - Entrega Contínua com Xamarin #MonteSuaEsteira
 
Framework de automação de teste Robotium
Framework de automação de teste RobotiumFramework de automação de teste Robotium
Framework de automação de teste Robotium
 
Como ensinei mais de 1000 testadores
Como ensinei mais de 1000 testadoresComo ensinei mais de 1000 testadores
Como ensinei mais de 1000 testadores
 
Teste de aplicações web com selenium
Teste de aplicações web com seleniumTeste de aplicações web com selenium
Teste de aplicações web com selenium
 
Android Espresso
Android EspressoAndroid Espresso
Android Espresso
 
Como testar sua aplicação Android e iOS: uma abordagem prática
Como testar sua aplicação Android e iOS: uma abordagem práticaComo testar sua aplicação Android e iOS: uma abordagem prática
Como testar sua aplicação Android e iOS: uma abordagem prática
 
Appinventor - Faça simples apps android
Appinventor - Faça simples apps androidAppinventor - Faça simples apps android
Appinventor - Faça simples apps android
 
Automatizando testes de UI no Android com Espresso
Automatizando testes de UI no Android com EspressoAutomatizando testes de UI no Android com Espresso
Automatizando testes de UI no Android com Espresso
 
Criando aplicações em Android brincando de quebra-cabeça!
Criando aplicações em Android brincando de quebra-cabeça!Criando aplicações em Android brincando de quebra-cabeça!
Criando aplicações em Android brincando de quebra-cabeça!
 
Automação de Teste Funcionais - Selenium
Automação de Teste Funcionais - SeleniumAutomação de Teste Funcionais - Selenium
Automação de Teste Funcionais - Selenium
 
Coded UI
Coded UICoded UI
Coded UI
 
Automação de Teste em UI para Android
Automação de Teste em UI para AndroidAutomação de Teste em UI para Android
Automação de Teste em UI para Android
 
Titanium
TitaniumTitanium
Titanium
 
Universal Apps: Criando apps para Windows Phone e Windows com um único código
Universal Apps: Criando apps para Windows Phone e Windows com um único códigoUniversal Apps: Criando apps para Windows Phone e Windows com um único código
Universal Apps: Criando apps para Windows Phone e Windows com um único código
 
Selenium
SeleniumSelenium
Selenium
 
Visual Studio Summit 2016 - Xamarin Test Cloud
Visual Studio Summit 2016 - Xamarin Test CloudVisual Studio Summit 2016 - Xamarin Test Cloud
Visual Studio Summit 2016 - Xamarin Test Cloud
 
Design Factory em testes
Design Factory em testesDesign Factory em testes
Design Factory em testes
 

Destaque

Continous UI testing with Espresso and Jenkins
Continous UI testing with Espresso and JenkinsContinous UI testing with Espresso and Jenkins
Continous UI testing with Espresso and JenkinsSylwester Madej
 
Android OS: Arquitetura e Desenvolvimento
Android OS: Arquitetura e DesenvolvimentoAndroid OS: Arquitetura e Desenvolvimento
Android OS: Arquitetura e DesenvolvimentoAugusto Marinho
 
INM Web & Breakfast: Präsentation iway ddos
INM Web & Breakfast: Präsentation iway ddosINM Web & Breakfast: Präsentation iway ddos
INM Web & Breakfast: Präsentation iway ddosINM AG
 
[@NaukriEngineering] Git Basic Commands and Hacks
[@NaukriEngineering] Git Basic Commands and Hacks[@NaukriEngineering] Git Basic Commands and Hacks
[@NaukriEngineering] Git Basic Commands and HacksNaukri.com
 
Android 02 - Recycler View Adapter
Android 02 - Recycler View AdapterAndroid 02 - Recycler View Adapter
Android 02 - Recycler View AdapterAline Borges
 
Desenvolvimento Seguro Android GDG RIO
Desenvolvimento Seguro Android GDG RIODesenvolvimento Seguro Android GDG RIO
Desenvolvimento Seguro Android GDG RIOAugusto Marinho
 
Periscope the School: Broadcast Your Awesome - LHRICTLI Tech Expo 2016
Periscope the School: Broadcast Your Awesome - LHRICTLI Tech Expo 2016Periscope the School: Broadcast Your Awesome - LHRICTLI Tech Expo 2016
Periscope the School: Broadcast Your Awesome - LHRICTLI Tech Expo 2016Christopher Casal
 
EmployeeHandbook Training - PSHR2016
EmployeeHandbook Training - PSHR2016EmployeeHandbook Training - PSHR2016
EmployeeHandbook Training - PSHR2016John Markham
 
POSmart & Trade Smart Business Intelligence for CPG
POSmart & Trade Smart Business Intelligence for CPGPOSmart & Trade Smart Business Intelligence for CPG
POSmart & Trade Smart Business Intelligence for CPGJanet Dorenkott
 
Android Banco de Dados
Android Banco de DadosAndroid Banco de Dados
Android Banco de DadosAlex Braz
 
Android - Dicas de Performance
Android - Dicas de PerformanceAndroid - Dicas de Performance
Android - Dicas de PerformanceAmélia Pessoa
 
ALM no Visual Studio 2010
ALM no Visual Studio 2010ALM no Visual Studio 2010
ALM no Visual Studio 2010Waldyr Felix
 
Desenvolvimento orientado a testes
Desenvolvimento orientado a testesDesenvolvimento orientado a testes
Desenvolvimento orientado a testesCarlos Santana
 

Destaque (18)

Continous UI testing with Espresso and Jenkins
Continous UI testing with Espresso and JenkinsContinous UI testing with Espresso and Jenkins
Continous UI testing with Espresso and Jenkins
 
Android OS: Arquitetura e Desenvolvimento
Android OS: Arquitetura e DesenvolvimentoAndroid OS: Arquitetura e Desenvolvimento
Android OS: Arquitetura e Desenvolvimento
 
Extend the Power of Chrome
Extend the Power of ChromeExtend the Power of Chrome
Extend the Power of Chrome
 
INM Web & Breakfast: Präsentation iway ddos
INM Web & Breakfast: Präsentation iway ddosINM Web & Breakfast: Präsentation iway ddos
INM Web & Breakfast: Präsentation iway ddos
 
[@NaukriEngineering] Git Basic Commands and Hacks
[@NaukriEngineering] Git Basic Commands and Hacks[@NaukriEngineering] Git Basic Commands and Hacks
[@NaukriEngineering] Git Basic Commands and Hacks
 
Android 02 - Recycler View Adapter
Android 02 - Recycler View AdapterAndroid 02 - Recycler View Adapter
Android 02 - Recycler View Adapter
 
Desenvolvimento Seguro Android GDG RIO
Desenvolvimento Seguro Android GDG RIODesenvolvimento Seguro Android GDG RIO
Desenvolvimento Seguro Android GDG RIO
 
Drepte paralele
Drepte paraleleDrepte paralele
Drepte paralele
 
Periscope the School: Broadcast Your Awesome - LHRICTLI Tech Expo 2016
Periscope the School: Broadcast Your Awesome - LHRICTLI Tech Expo 2016Periscope the School: Broadcast Your Awesome - LHRICTLI Tech Expo 2016
Periscope the School: Broadcast Your Awesome - LHRICTLI Tech Expo 2016
 
EmployeeHandbook Training - PSHR2016
EmployeeHandbook Training - PSHR2016EmployeeHandbook Training - PSHR2016
EmployeeHandbook Training - PSHR2016
 
POSmart & Trade Smart Business Intelligence for CPG
POSmart & Trade Smart Business Intelligence for CPGPOSmart & Trade Smart Business Intelligence for CPG
POSmart & Trade Smart Business Intelligence for CPG
 
Android Banco de Dados
Android Banco de DadosAndroid Banco de Dados
Android Banco de Dados
 
Android - Dicas de Performance
Android - Dicas de PerformanceAndroid - Dicas de Performance
Android - Dicas de Performance
 
Testes de software de A a Z
Testes de software de A a ZTestes de software de A a Z
Testes de software de A a Z
 
05 agile
05 agile05 agile
05 agile
 
ALM no Visual Studio 2010
ALM no Visual Studio 2010ALM no Visual Studio 2010
ALM no Visual Studio 2010
 
Desenvolvimento orientado a testes
Desenvolvimento orientado a testesDesenvolvimento orientado a testes
Desenvolvimento orientado a testes
 
04 Unified process
04 Unified process04 Unified process
04 Unified process
 

Semelhante a Espresso 101: Introdução a UI Testing

Testes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio NasTestes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio NasWordCamp Floripa
 
Treinamento Appium - Introdução
Treinamento Appium - IntroduçãoTreinamento Appium - Introdução
Treinamento Appium - IntroduçãoAndré Salla
 
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
4° Encontro Mensal ALATS: Automação de Teste - Mitos e VerdadesElias Nogueira
 
INTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdf
INTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdfINTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdf
INTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdfRonaldAlves15
 
Desmistificando os testes de API
Desmistificando os testes de APIDesmistificando os testes de API
Desmistificando os testes de APIJoão Júnior
 
Teste para dispositivos móveis apresentação pra ufam -eliane
Teste para dispositivos móveis   apresentação pra ufam -elianeTeste para dispositivos móveis   apresentação pra ufam -eliane
Teste para dispositivos móveis apresentação pra ufam -elianeEliane Collins
 
[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...
[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...
[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...GUTS-RS
 
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontaTestando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontatdc-globalcode
 
Api First - A Abordagem
Api First - A AbordagemApi First - A Abordagem
Api First - A AbordagemBruno Paulino
 
Tudo que você sempre quis saber sobre testes de APIs REST, mas que nunca te c...
Tudo que você sempre quis saber sobre testes de APIs REST, mas que nunca te c...Tudo que você sempre quis saber sobre testes de APIs REST, mas que nunca te c...
Tudo que você sempre quis saber sobre testes de APIs REST, mas que nunca te c...Frederico Augusto Do Carmo Moreira
 

Semelhante a Espresso 101: Introdução a UI Testing (20)

Minicurso de App Inventor
Minicurso de App InventorMinicurso de App Inventor
Minicurso de App Inventor
 
Testes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio NasTestes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio Nas
 
Apresentação rest api
Apresentação rest apiApresentação rest api
Apresentação rest api
 
BDD-NamoroOn
BDD-NamoroOnBDD-NamoroOn
BDD-NamoroOn
 
App Inventor: Eu escolho você!
App Inventor: Eu escolho você!App Inventor: Eu escolho você!
App Inventor: Eu escolho você!
 
Treinamento Appium - Introdução
Treinamento Appium - IntroduçãoTreinamento Appium - Introdução
Treinamento Appium - Introdução
 
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
4° Encontro Mensal ALATS: Automação de Teste - Mitos e Verdades
 
Testabilidade no android
Testabilidade no androidTestabilidade no android
Testabilidade no android
 
INTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdf
INTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdfINTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdf
INTRODUÇÃO AOS TESTES NO FRONT-END COM REACT JS E REACT NATIVE.pdf
 
Desmistificando os testes de API
Desmistificando os testes de APIDesmistificando os testes de API
Desmistificando os testes de API
 
Teste para dispositivos móveis apresentação pra ufam -eliane
Teste para dispositivos móveis   apresentação pra ufam -elianeTeste para dispositivos móveis   apresentação pra ufam -eliane
Teste para dispositivos móveis apresentação pra ufam -eliane
 
App inventor
App inventorApp inventor
App inventor
 
Robotium_Sikuli
Robotium_SikuliRobotium_Sikuli
Robotium_Sikuli
 
Xamarin UI Test e VS Mobile Center
Xamarin UI Test e VS Mobile CenterXamarin UI Test e VS Mobile Center
Xamarin UI Test e VS Mobile Center
 
Introdução Ao Desenvolvimento Para Iphone
Introdução Ao Desenvolvimento Para IphoneIntrodução Ao Desenvolvimento Para Iphone
Introdução Ao Desenvolvimento Para Iphone
 
[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...
[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...
[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...
 
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontaTestando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
 
Api First - A Abordagem
Api First - A AbordagemApi First - A Abordagem
Api First - A Abordagem
 
Oficina App Inventor
Oficina App InventorOficina App Inventor
Oficina App Inventor
 
Tudo que você sempre quis saber sobre testes de APIs REST, mas que nunca te c...
Tudo que você sempre quis saber sobre testes de APIs REST, mas que nunca te c...Tudo que você sempre quis saber sobre testes de APIs REST, mas que nunca te c...
Tudo que você sempre quis saber sobre testes de APIs REST, mas que nunca te c...
 

Espresso 101: Introdução a UI Testing