Android Functional UI Testing John Lloyd QA Engineer jlloyd@amplify.com
Amplify UI Testing 30000 Android 4.2.1 Devices (API Level 17) 50 Developers pushing to 139 Repos 2 build agents (Ubuntu) testing 6 devices 3-4 releases a week ● 6 servers ● 5 apks ● Additional 3rd party apks
How much automation? Project X 5 scenarios 44 steps 10 mins Project Y 9 scenarios 96 steps 5.2 mins Pipelines take 20-40 mins!
Functional UI Tools We Android Device Cucumber RSpec Honeydew UI Automator Android SDK Monkey Web Cucumber RSpec Selenium Webdriver Chromedriver Capybara
Honeydew Honeydew is a Ruby driver for UIAutomator which enables testing of Android devices. Supports API 16 or higher (4.1 Jelly Bean) Supports cross app testing! Developed and opened sourced by Amplify https://github.com/amplify-education/honeydew $ gem install honeydew
Demo
Emulator Testing • Any* device! • Cheap! • Scale • Snapshots - Reproducible • Can’t interact with Bluetooth, Camera, Battery, GPS, sensors • Slow • *System images not always available
Physical Device Testing • Any device • Fast • Better for exploratory testing • Expensive • Fragile • Limited availability • Consumer Hardware will not handle lab abuse
Hardware tricks we have learned • Setup/Takedown Hooks to Wipe Data / Factory Reset • Disable Performance Modes and Battery Savers. • Separate your USB and Power supply when possible • Wireless ADB • Get Static IPs • Isolate Wireless Network • Dirty displays, labels and stickers = flakey tests • Keep a box of backup devices, fully charged
Upcoming challenges Multiple device support • ARM/Intel • 2.4.1 / 2.4.4 • Marketplace 3rd Party Apps
We are open to new tools Calabash • Cucumber • Robotium Appium • Webdriver based
And we are on the right path
Keep in touch, join us, or fork us jlloyd@amplify.com github.com/amplify-education http://extracredit.amplify.com/jobs http://extracredit.amplify.com

Android Functional UI Testing at Amplify

  • 1.
    Android Functional UITesting John Lloyd QA Engineer jlloyd@amplify.com
  • 2.
    Amplify UI Testing 30000Android 4.2.1 Devices (API Level 17) 50 Developers pushing to 139 Repos 2 build agents (Ubuntu) testing 6 devices 3-4 releases a week ● 6 servers ● 5 apks ● Additional 3rd party apks
  • 4.
    How much automation? ProjectX 5 scenarios 44 steps 10 mins Project Y 9 scenarios 96 steps 5.2 mins Pipelines take 20-40 mins!
  • 5.
    Functional UI ToolsWe Android Device Cucumber RSpec Honeydew UI Automator Android SDK Monkey Web Cucumber RSpec Selenium Webdriver Chromedriver Capybara
  • 6.
    Honeydew Honeydew is aRuby driver for UIAutomator which enables testing of Android devices. Supports API 16 or higher (4.1 Jelly Bean) Supports cross app testing! Developed and opened sourced by Amplify https://github.com/amplify-education/honeydew $ gem install honeydew
  • 7.
  • 8.
    Emulator Testing • Any*device! • Cheap! • Scale • Snapshots - Reproducible • Can’t interact with Bluetooth, Camera, Battery, GPS, sensors • Slow • *System images not always available
  • 9.
    Physical Device Testing •Any device • Fast • Better for exploratory testing • Expensive • Fragile • Limited availability • Consumer Hardware will not handle lab abuse
  • 11.
    Hardware tricks wehave learned • Setup/Takedown Hooks to Wipe Data / Factory Reset • Disable Performance Modes and Battery Savers. • Separate your USB and Power supply when possible • Wireless ADB • Get Static IPs • Isolate Wireless Network • Dirty displays, labels and stickers = flakey tests • Keep a box of backup devices, fully charged
  • 12.
    Upcoming challenges Multiple devicesupport • ARM/Intel • 2.4.1 / 2.4.4 • Marketplace 3rd Party Apps
  • 13.
    We are opento new tools Calabash • Cucumber • Robotium Appium • Webdriver based
  • 14.
    And we areon the right path
  • 15.
    Keep in touch,join us, or fork us jlloyd@amplify.com github.com/amplify-education http://extracredit.amplify.com/jobs http://extracredit.amplify.com