SlideShare a Scribd company logo
Danny Preussler | Groupon
Rockstar Android Testing
about me
•  Android Engineer @ Groupon
•  Lead Engineer Android @ ebay Kleinanzeigen
•  Team Lead Mobile @ Cortado
•  C++ Developer @ PSI AG
•  Started career as developer @ Alcatel
•  Articles in: android360, mobile Technology, Java Magazin
•  Speaker: DroidCon.de/nl, CONFESS, Blackberry DevCon
Believer in Testing
Sources: Internal Data; iTunes ranking for US stores available here - https://itunes.apple.com/WebObjects/
MZStore.woa/wa/viewFeature?id=500873243&mt=8&v0=www-itunes25Bcountdown-appstore 
Nearly 70 million people worldwide
have downloaded our mobile app to
date; 9 million in Q4 2013.
One of the 25 most downloaded
free apps of all time
Nearly 50% of our global transactions
completed on a mobile device in
December 2013 
a mobile company
Our mobile app is available in 43 countries
Android Testing?
Android Firewall by Uncalno, CC BY 2.0 flickr.com/photos/uncalno/8538679708
Robotium
Appium
Calabash
Robolectric
Espresso
Cloud
Crowd
Real Device?
uiautomator
monkeyrunner
Emulator
Selenium?
InstrumentationTest
Rockstar Testing?
•  Fast! Faster!
•  Reliable!
•  Scalable!
Acrassicau 6 by Bruce Martin, CC BY 2.0, https://www.flickr.com/photos/shotbydarko/4692892946/
InstrumentationTests
vs uiautomator
•  Base for most frameworks
•  Understand the differences!
Android Activity Tests
•  JUnit3 Tests
•  Android Project (android application)
•  Tight coupling to app under test (project needed)
•  Direct access to activities (find element by id)
Android Activity Tests
public class MyActivityTest extends
ActivityInstrumentationTestCase2<MyActivity> {
...
public void testButtons() {
MyActivity activity = getActivity();
Button view = (Button)
activity.findViewById(R.id.button1);
assertEquals("My Button", view.getText());
}
Robotium
•  Based on Intrumentation Tests
•  Removes complexity
•  Very popular (used to be the standard)
Robotium
public class SimpleActivityTest extends
ActivityInstrumentationTestCase2<MyActivity> {
...
public void setUp() throws Exception {
solo = new Solo(getInstrumentation(), getActivity());
}
public void testPressButton() throws Exception {
solo.clickOnButton("press me");
assertTrue(solo.waitForText("New Window"));
UIAutomator
•  JUnit3 Tests
•  Java Project
•  Simple API
•  Can access everything on device a user can
•  Loose coupling to app under test
UIAutomator
public class LaunchSettings extends UiAutomatorTestCase {
public void testPressButton()
throws UiObjectNotFoundException {
getUiDevice().pressHome();
... find and start app
UiObject button = new UiObject(
new UiSelector().text(“clickMe");
button.clickAndWaitForNewWindow();
UIAutomator
•  Blackbox Testing
•  Can only access what is visible
•  API 16+
InstrumentationTests
vs uiautomator
•  Understand the differences
Device
Application
Under Test
uiatuomator
Device
Instrumentaion
Application
Under Test
apps
apps
apps
Other Basics...
•  Calabash: BDD
Given I am a valid user
And I press "Login"
Then I see "Welcome to coolest app ever”
•  Robolectric: unit testing
•  Monkey Runner
That‘s
not
rock star
testing!
Guitar Hero!!! By JoshBerglund19, CC BY 2.0
What about Selenium?
•  Any language
•  Any test framework
•  Selenium Client API (Json Wire Protocol)
•  Scale and parallize via Selenium Grid
In Theory:
•  Used by eBay, Facebook
source: https://github.com/selendroid/selendroid/blob/master/AUTHORS
•  Open Source
Rockstar Android Testing (Mobile TechCon Munich 2014)
Appium
•  Used by
Expedia, LinkedIn, Brands4friends
•  Rising Star
•  Open Source
•  Cross platform
•  Based on ui automator
Rock
without
Selenium?
•  Used by: Groupon
•  Open Sourced recently
•  Remote Control your tests
RoboRemote
RoboRemote Architecture
Page 23
Computer/Build Server Device/Emulator
Application
Under Test
RoboRemoteServer
Robotium
UIAutomatorClient
Legend
Groupon Test Engineering Application Developer/Tester Open Source
RoboRemoteClient
UIAutomatorServer
UIAutomator
Tests
RoboRemote Sample
•  RoboRemote: UIAutomator
UiObject myLabel = new UiObject(
new UiSelector()
.call(“className”, ”android.widget.TextView”)
.call(“text”, “My Text”));
myLabel.call(“click”);
UiObject myLabel = new UiObject(
new UiSelector()
.className(”android.widget.TextView”)
.text(“My Text”));
myLabel.click();
•  UIAutomator
•  Man in the Middle HTTP Proxy
with REST API
•  Single war-file
•  Open Sourcing planned
RoboRemote + Odo
Response Override
•  Custom (stub) response
•  Modify response contents
•  Change HTTP response code
•  Add Delay
Odo-ed
(…“soldOut”:“false”,…)(“soldOut”:“true”,…)
RoboRemote
•  RoboRemote Github:
https://github.com/groupon/robo-remote
•  Maven:
http://search.maven.org/ - search|ga|1|
roboremote
This was QA view.
What about
developers?
•  Used by:
Google, XING, mobile.de,
eBay Kleinanzeigen
•  Open Sourced October 2013
•  Based on Instrumentation
Simple! Reliable! Fast!
ViewMatcher
->ViewAction
->ViewAssert
Simple
onView(withId(R.id.myview))
.perform(click())
.check(matches(isDisplayed()));
Simple
Use Power of Hamcrest Matcher
Simple
Waiting is the root of all evil!
Evil face in Ninnaji Temple, Kyoto by MrHicks46, CC BY 2.0, http://www.flickr.com/photos/teosaurio/10138704345/
•  No „wait()“ in Espresso API!
Speed
•  Instead:
– Operation on UIThread
– Wait until idle
– Action on UI Thread
– Wait until idle
– Check Result
Speed
•  What is idle?
– UI Thread
– AsyncTask
– ???? via IdleResource
Speed
•  Removed flakyness of sleeping
•  Improved Testrunner
Reliable
Rockstar Android Testing (Mobile TechCon Munich 2014)
•  Used by: Google, Paypal, facebook,
Cisco, LinkedIn, eBay, BMW, Intel,
Evernote (source http://testdroid.com/products/success-stories)
•  Real devices in the cloud
•  Works with:
Espresso, uiautomator, Calabash,
Appium, Robotium + x
•  Example via Gradle:
...
apply plugin: 'testdroid‘
testdroid {
...
deviceGroup "10_inch_tablets"
deviceLanguageCode "de-DE"
fullRunConfig {
instrumentationRunner =
“... GoogleInstrumentationTestRunner"
}
Rockstar Android Testing (Mobile TechCon Munich 2014)
http://testdroid.com/testautomatisierung
Try it and get a free shirt:
So what is the
ultimate
rock star test
tool now?
Fazit?
Check your needs and your Resources!
Let’s rock test!
mobile rockstars
•  Michael Burton
Creator of Roboguice
Author of „Android Application Development for Dummies“
•  Carlos Sessa
Author of „50 Android Hacks“
https://engineering.groupon.com/
https://github.com/groupon
More Links
•  http://developer.android.com/tools/testing/testing_ui.html
•  https://code.google.com/p/robotium/
•  https://github.com/calabash/calabash-android
•  http://selendroid.io/
•  https://github.com/appium/appium
•  https://plus.google.com/+StephanLinzner/posts/HhXutBz7tcV-
•  https://code.google.com/p/android-test-kit/wiki/Espresso
•  https://code.google.com/p/hamcrest/
•  https://cloud.testdroid.com

More Related Content

PDF
Challenges in writing roboelectric tests
PDF
Developing PWAs and Mobile Apps with Ionic, Angular, and JHipster - Devoxx Mo...
PDF
crashing in style
PDF
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - GeekOut 2016
PDF
Spring Boot and JHipster
PDF
From zero to hero with React Native!
PDF
少し幸せになる技術
PPTX
React Native
Challenges in writing roboelectric tests
Developing PWAs and Mobile Apps with Ionic, Angular, and JHipster - Devoxx Mo...
crashing in style
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - GeekOut 2016
Spring Boot and JHipster
From zero to hero with React Native!
少し幸せになる技術
React Native

What's hot (20)

PDF
Using JHipster 4 for generating Angular/Spring Boot apps
PDF
手機自動化測試和持續整合
PDF
React Nativeの光と闇
PDF
Intro to react native
PDF
Effective Android Development
PDF
Experiences building apps with React Native @DomCode 2016
PDF
Vietnam qa meetup
PDF
Using JHipster for generating Angular/Spring Boot apps
PPTX
Using Android Studio and Genymotion for improved productivity
PDF
The Art of Angular in 2016 - Devoxx France 2016
PDF
Automating Your Way out of the Dark Ages: Our Experience with (And Without) P...
PDF
React-Native for multi-platform mobile applications @ Codemotion Rome 2017
PDF
Rapid Android Development for Hackathon
PDF
Effective Android Development. UA Mobile 2016.
PDF
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
PDF
Build Your First Android App Session #1
PDF
Mobile Development with Ionic, React Native, and JHipster - ACGNJ Java Users ...
PDF
Mobile Development with Ionic, React Native, and JHipster - AllTheTalks 2020
PDF
Bootiful Development with Spring Boot and Angular - Spring I/O 2017
PDF
Docker.key
Using JHipster 4 for generating Angular/Spring Boot apps
手機自動化測試和持續整合
React Nativeの光と闇
Intro to react native
Effective Android Development
Experiences building apps with React Native @DomCode 2016
Vietnam qa meetup
Using JHipster for generating Angular/Spring Boot apps
Using Android Studio and Genymotion for improved productivity
The Art of Angular in 2016 - Devoxx France 2016
Automating Your Way out of the Dark Ages: Our Experience with (And Without) P...
React-Native for multi-platform mobile applications @ Codemotion Rome 2017
Rapid Android Development for Hackathon
Effective Android Development. UA Mobile 2016.
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
Build Your First Android App Session #1
Mobile Development with Ionic, React Native, and JHipster - ACGNJ Java Users ...
Mobile Development with Ionic, React Native, and JHipster - AllTheTalks 2020
Bootiful Development with Spring Boot and Angular - Spring I/O 2017
Docker.key
Ad

Similar to Rockstar Android Testing (Mobile TechCon Munich 2014) (20)

PDF
Android Unit Testing With Robolectric
PPTX
Different Android Test Automation Frameworks - What Works You the Best?
PPTX
Mobile developer is Software developer
PDF
[Ultracode Munich #4] Short introduction to the new Android build system incl...
PPTX
Selendroid - Selenium for Android
PPT
Bye Bye Charles, Welcome Odo, Android Meetup Berlin May 2014
PDF
2012 java one-con3648
PPTX
Lecture #3 activities and intents
PDF
Robotium framework & Jenkins CI tools - TdT@Cluj #19
PDF
Android development first steps
PDF
2012 star west-t10
PPTX
Lecture 12 - Maps, AR_VR_aaaaHardware.pptx
PPTX
Appium overview
PPTX
Hieu Xamarin iOS9, Android M 3-11-2015
PDF
Android Building, Testing and reversing
PPTX
Android testing
PDF
Android - Open Source Bridge 2011
PPTX
Automating the Gaps of Unit Testing Mobile Apps
PPT
Android class provider in mumbai
PDF
Android studio
Android Unit Testing With Robolectric
Different Android Test Automation Frameworks - What Works You the Best?
Mobile developer is Software developer
[Ultracode Munich #4] Short introduction to the new Android build system incl...
Selendroid - Selenium for Android
Bye Bye Charles, Welcome Odo, Android Meetup Berlin May 2014
2012 java one-con3648
Lecture #3 activities and intents
Robotium framework & Jenkins CI tools - TdT@Cluj #19
Android development first steps
2012 star west-t10
Lecture 12 - Maps, AR_VR_aaaaHardware.pptx
Appium overview
Hieu Xamarin iOS9, Android M 3-11-2015
Android Building, Testing and reversing
Android testing
Android - Open Source Bridge 2011
Automating the Gaps of Unit Testing Mobile Apps
Android class provider in mumbai
Android studio
Ad

More from Danny Preussler (16)

PDF
We aint got no time - Droidcon Nairobi
PPTX
Test Driven Development on Android (Kotlin Kenya)
PDF
TDD on android. Why and How? (Coding Serbia 2019)
PDF
TDD on Android (Øredev 2018)
PDF
Junit5: the next gen of testing, don't stay behind
PPTX
Demystifying dependency Injection: Dagger and Toothpick
PDF
Unit Testing on Android: why and how? DevFest Romania, Bucharest 2016
PPTX
Unit testing without Robolectric, Droidcon Berlin 2016
PPTX
15 tips to improve your unit tests (Droidcon Berlin 2016 Barcamp)
PPTX
All around the world, localization and internationalization on Android (Droid...
PPTX
(Android) Developer Survival in Multiscreen World, MobCon Sofia 2016
PDF
Unit testing on Android (Droidcon Dubai 2015)
PDF
Clean code on Android (Droidcon Dubai 2015)
PDF
More android code puzzles
PPTX
Abgeschottete Realität - Testen im Emulator, Mobile Testing Days 2014, Berlin
PDF
Android Code Puzzles (DroidCon Amsterdam 2012)
We aint got no time - Droidcon Nairobi
Test Driven Development on Android (Kotlin Kenya)
TDD on android. Why and How? (Coding Serbia 2019)
TDD on Android (Øredev 2018)
Junit5: the next gen of testing, don't stay behind
Demystifying dependency Injection: Dagger and Toothpick
Unit Testing on Android: why and how? DevFest Romania, Bucharest 2016
Unit testing without Robolectric, Droidcon Berlin 2016
15 tips to improve your unit tests (Droidcon Berlin 2016 Barcamp)
All around the world, localization and internationalization on Android (Droid...
(Android) Developer Survival in Multiscreen World, MobCon Sofia 2016
Unit testing on Android (Droidcon Dubai 2015)
Clean code on Android (Droidcon Dubai 2015)
More android code puzzles
Abgeschottete Realität - Testen im Emulator, Mobile Testing Days 2014, Berlin
Android Code Puzzles (DroidCon Amsterdam 2012)

Recently uploaded (20)

PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
cuic standard and advanced reporting.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Empathic Computing: Creating Shared Understanding
PDF
Machine learning based COVID-19 study performance prediction
PDF
KodekX | Application Modernization Development
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Electronic commerce courselecture one. Pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Review of recent advances in non-invasive hemoglobin estimation
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Spectral efficient network and resource selection model in 5G networks
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Building Integrated photovoltaic BIPV_UPV.pdf
cuic standard and advanced reporting.pdf
MYSQL Presentation for SQL database connectivity
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Digital-Transformation-Roadmap-for-Companies.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
Empathic Computing: Creating Shared Understanding
Machine learning based COVID-19 study performance prediction
KodekX | Application Modernization Development
20250228 LYD VKU AI Blended-Learning.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Electronic commerce courselecture one. Pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx

Rockstar Android Testing (Mobile TechCon Munich 2014)

  • 1. Danny Preussler | Groupon Rockstar Android Testing
  • 2. about me •  Android Engineer @ Groupon •  Lead Engineer Android @ ebay Kleinanzeigen •  Team Lead Mobile @ Cortado •  C++ Developer @ PSI AG •  Started career as developer @ Alcatel •  Articles in: android360, mobile Technology, Java Magazin •  Speaker: DroidCon.de/nl, CONFESS, Blackberry DevCon Believer in Testing
  • 3. Sources: Internal Data; iTunes ranking for US stores available here - https://itunes.apple.com/WebObjects/ MZStore.woa/wa/viewFeature?id=500873243&mt=8&v0=www-itunes25Bcountdown-appstore Nearly 70 million people worldwide have downloaded our mobile app to date; 9 million in Q4 2013. One of the 25 most downloaded free apps of all time Nearly 50% of our global transactions completed on a mobile device in December 2013 a mobile company Our mobile app is available in 43 countries
  • 4. Android Testing? Android Firewall by Uncalno, CC BY 2.0 flickr.com/photos/uncalno/8538679708 Robotium Appium Calabash Robolectric Espresso Cloud Crowd Real Device? uiautomator monkeyrunner Emulator Selenium? InstrumentationTest
  • 5. Rockstar Testing? •  Fast! Faster! •  Reliable! •  Scalable! Acrassicau 6 by Bruce Martin, CC BY 2.0, https://www.flickr.com/photos/shotbydarko/4692892946/
  • 6. InstrumentationTests vs uiautomator •  Base for most frameworks •  Understand the differences!
  • 7. Android Activity Tests •  JUnit3 Tests •  Android Project (android application) •  Tight coupling to app under test (project needed) •  Direct access to activities (find element by id)
  • 8. Android Activity Tests public class MyActivityTest extends ActivityInstrumentationTestCase2<MyActivity> { ... public void testButtons() { MyActivity activity = getActivity(); Button view = (Button) activity.findViewById(R.id.button1); assertEquals("My Button", view.getText()); }
  • 9. Robotium •  Based on Intrumentation Tests •  Removes complexity •  Very popular (used to be the standard)
  • 10. Robotium public class SimpleActivityTest extends ActivityInstrumentationTestCase2<MyActivity> { ... public void setUp() throws Exception { solo = new Solo(getInstrumentation(), getActivity()); } public void testPressButton() throws Exception { solo.clickOnButton("press me"); assertTrue(solo.waitForText("New Window"));
  • 11. UIAutomator •  JUnit3 Tests •  Java Project •  Simple API •  Can access everything on device a user can •  Loose coupling to app under test
  • 12. UIAutomator public class LaunchSettings extends UiAutomatorTestCase { public void testPressButton() throws UiObjectNotFoundException { getUiDevice().pressHome(); ... find and start app UiObject button = new UiObject( new UiSelector().text(“clickMe"); button.clickAndWaitForNewWindow();
  • 13. UIAutomator •  Blackbox Testing •  Can only access what is visible •  API 16+
  • 14. InstrumentationTests vs uiautomator •  Understand the differences Device Application Under Test uiatuomator Device Instrumentaion Application Under Test apps apps apps
  • 15. Other Basics... •  Calabash: BDD Given I am a valid user And I press "Login" Then I see "Welcome to coolest app ever” •  Robolectric: unit testing •  Monkey Runner
  • 16. That‘s not rock star testing! Guitar Hero!!! By JoshBerglund19, CC BY 2.0
  • 17. What about Selenium? •  Any language •  Any test framework •  Selenium Client API (Json Wire Protocol) •  Scale and parallize via Selenium Grid In Theory:
  • 18. •  Used by eBay, Facebook source: https://github.com/selendroid/selendroid/blob/master/AUTHORS •  Open Source
  • 20. Appium •  Used by Expedia, LinkedIn, Brands4friends •  Rising Star •  Open Source •  Cross platform •  Based on ui automator
  • 22. •  Used by: Groupon •  Open Sourced recently •  Remote Control your tests RoboRemote
  • 23. RoboRemote Architecture Page 23 Computer/Build Server Device/Emulator Application Under Test RoboRemoteServer Robotium UIAutomatorClient Legend Groupon Test Engineering Application Developer/Tester Open Source RoboRemoteClient UIAutomatorServer UIAutomator Tests
  • 24. RoboRemote Sample •  RoboRemote: UIAutomator UiObject myLabel = new UiObject( new UiSelector() .call(“className”, ”android.widget.TextView”) .call(“text”, “My Text”)); myLabel.call(“click”); UiObject myLabel = new UiObject( new UiSelector() .className(”android.widget.TextView”) .text(“My Text”)); myLabel.click(); •  UIAutomator
  • 25. •  Man in the Middle HTTP Proxy with REST API •  Single war-file •  Open Sourcing planned RoboRemote + Odo
  • 26. Response Override •  Custom (stub) response •  Modify response contents •  Change HTTP response code •  Add Delay Odo-ed (…“soldOut”:“false”,…)(“soldOut”:“true”,…)
  • 27. RoboRemote •  RoboRemote Github: https://github.com/groupon/robo-remote •  Maven: http://search.maven.org/ - search|ga|1| roboremote
  • 28. This was QA view. What about developers?
  • 29. •  Used by: Google, XING, mobile.de, eBay Kleinanzeigen •  Open Sourced October 2013 •  Based on Instrumentation Simple! Reliable! Fast!
  • 32. Use Power of Hamcrest Matcher Simple
  • 33. Waiting is the root of all evil! Evil face in Ninnaji Temple, Kyoto by MrHicks46, CC BY 2.0, http://www.flickr.com/photos/teosaurio/10138704345/
  • 34. •  No „wait()“ in Espresso API! Speed
  • 35. •  Instead: – Operation on UIThread – Wait until idle – Action on UI Thread – Wait until idle – Check Result Speed
  • 36. •  What is idle? – UI Thread – AsyncTask – ???? via IdleResource Speed
  • 37. •  Removed flakyness of sleeping •  Improved Testrunner Reliable
  • 39. •  Used by: Google, Paypal, facebook, Cisco, LinkedIn, eBay, BMW, Intel, Evernote (source http://testdroid.com/products/success-stories) •  Real devices in the cloud •  Works with: Espresso, uiautomator, Calabash, Appium, Robotium + x
  • 40. •  Example via Gradle: ... apply plugin: 'testdroid‘ testdroid { ... deviceGroup "10_inch_tablets" deviceLanguageCode "de-DE" fullRunConfig { instrumentationRunner = “... GoogleInstrumentationTestRunner" }
  • 43. So what is the ultimate rock star test tool now?
  • 44. Fazit? Check your needs and your Resources!
  • 46. mobile rockstars •  Michael Burton Creator of Roboguice Author of „Android Application Development for Dummies“ •  Carlos Sessa Author of „50 Android Hacks“ https://engineering.groupon.com/ https://github.com/groupon
  • 47. More Links •  http://developer.android.com/tools/testing/testing_ui.html •  https://code.google.com/p/robotium/ •  https://github.com/calabash/calabash-android •  http://selendroid.io/ •  https://github.com/appium/appium •  https://plus.google.com/+StephanLinzner/posts/HhXutBz7tcV- •  https://code.google.com/p/android-test-kit/wiki/Espresso •  https://code.google.com/p/hamcrest/ •  https://cloud.testdroid.com