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

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

Android 02 - Recycler View Adapter
Android 02 - Recycler View AdapterAndroid 02 - Recycler View Adapter
Android 02 - Recycler View Adapter
Aline Borges
 
EmployeeHandbook Training - PSHR2016
EmployeeHandbook Training - PSHR2016EmployeeHandbook Training - PSHR2016
EmployeeHandbook Training - PSHR2016
John Markham
 

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

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
Eliane Collins
 

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...
 

Último

Último (8)

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 

Espresso 101: Introdução a UI Testing