1. https://appdevelopermagazine.com/android
  2. https://appdevelopermagazine.com/android-test-butler--whiteglove-service-for-automated-mobile-tests/
8/8/2016 4:23:16 PM
Android Test Butler WhiteGlove Service for Automated Mobile Tests
Android Butler,Test Butler,Google Android
/Android-Test-Butler-App-Developer-Magazine_b80f71bi.jpg
App Developer Magazine
Android Test Butler  WhiteGlove Service for Automated Mobile Tests

Android

Android Test Butler WhiteGlove Service for Automated Mobile Tests


Monday, August 8, 2016

Drew Hannay Drew Hannay


At LinkedIn, automated testing is a key component of our new strategy for releasing mobile applications with greater frequency. As we developed the new LinkedIn Android app that we launched late last year, we found that our tests had a major problem: our testing environment itself was unreliable, so our tests failed intermittently. 

We needed a solution that would let us rely on our tests to inform us when there was a problem with the app. In short, we wanted our engineers to focus on worrying about finding bugs in our apps, not the testing environment. 

Many developers probably know from experience that UI testing on Android can be unstable for a variety of reasons: tests could depend on being run in a certain order, or depend on some shared application state that may not be reset between tests. These types of flakiness are largely up to app developers to address, but the more insidious issues can occur within the Android device itself.

If you’ve ever tried to run a large number of UI tests on Android, you may be familiar with some of the ways the emulator can be unreliable. Animations must be disabled, so that Espresso tests can run reliably. Tests may fail because the emulator CPU randomly goes to sleep, WiFi turns off unexpectedly, or rogue accelerometer data causes the device to change orientations. At LinkedIn, we’ve even seen cases where the lock screen on the emulator is randomly triggered, causing tests to fail. 

This inconsistent behavior was causing our developers to lose trust in our tests and question why we were even writing them in the first place.

For this reason, we created and open sourced Test Butler, a reliable Android testing tool. LinkedIn runs over one million tests each day using Test Butler and we believe that it can provide a benefit to anyone running Android tests. 

Test Butler heavily inspired by the Google presentation “Going Green: Cleaning up the Toxic Mobile Environment” which outlines the tools that the Google testing team had developed to manage their own tests on Android. We were fortunate enough to meet up with members of this team to get their input on the direction we were taking as we developed Test Butler. 

Test Butler - A Brief Overview


Test Butler includes an Android library that your test code can depend on, as well as a companion Android app APK that you can install on your Android emulator before running tests. It provides a number of features that will make your testing safer and more reliable:

- Signature-level permissions: Test Butler is signed with the system keystore for the stock Android emulator, which means it will automatically be granted any signature-level permissions it requests without the need to grant those permissions through Android Debug Bridge (ADB).

- Disable crash & App Not Responding (ANR) dialogs: Since it’s a system app, Test Butler can install a custom IActivityController on the emulator and suppress system crash & ANR dialogs from appearing and causing test failures.

- Disable animations: Test Butler handles all the steps of disabling animations with a single line of code in your app!

- Lock screen, WiFi, CPU: Test Butler holds locks on the keyguard, WiFi radio, and CPU to ensure they won’t go to sleep and cause test failures.

In addition to system stability enhancements, Test Butler can also help handle other testing tasks that require extra permissions for your app:

- Enable/disable WiFi: Test Butler allows tests to simulate a situation where WiFi is not connected or changes availability at some point.

- Change device orientation: Tests can manually set the orientation of the device during test execution.

- Set location services mode: Test Butler lets your code simulate different location services modes, like battery saver or high accuracy.

- Set application locale: Tests can set a custom Locale object for their application to simulate running the app in another language.

Getting Started with Test Butler


We’re happy to announce that Test Butler has been released under the Apache 2.0 license and the code is available on GitHub. Please take a look at our code, and let us know what you do and don’t like. Contributions and suggestions are welcome!

Image credit: The Android robot is reproduced or modified from work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License.




Read more: https://github.com/linkedin/test-butler




This content is made possible by a guest author, or sponsor; it is not written by and does not necessarily reflect the views of App Developer Magazine's editorial staff.

Subscribe to App Developer Magazine

Become a subscriber of App Developer Magazine for just $5.99 a month and take advantage of all these perks.

MEMBERS GET ACCESS TO

  • - Exclusive content from leaders in the industry
  • - Q&A articles from industry leaders
  • - Tips and tricks from the most successful developers weekly
  • - Monthly issues, including all 90+ back-issues since 2012
  • - Event discounts and early-bird signups
  • - Gain insight from top achievers in the app store
  • - Learn what tools to use, what SDK's to use, and more

    Subscribe here



Featured Stories


Tether QVAC SDK Powers AI Across Devices and Platforms
Tether QVAC SDK Powers AI Across Devices and Platforms Wednesday, April 22, 2026




APAC 5G expansion to fuel 347B mobile market by 2030
APAC 5G expansion to fuel 347B mobile market by 2030 Tuesday, April 21, 2026


How AI is causing app litter everywhere
How AI is causing app litter everywhere Tuesday, April 21, 2026


The App Economy Is Thriving
The App Economy Is Thriving Monday, April 20, 2026


NIKKE 3.5 anniversary update livestream coming soon
NIKKE 3.5 anniversary update livestream coming soon Friday, April 17, 2026


New AI tool targets early dementia detection
New AI tool targets early dementia detection Thursday, April 16, 2026


Jentic launch gives AI agents api access
Jentic launch gives AI agents api access Wednesday, April 15, 2026


Experts warn ai-generated health content risks misinterpretation without human oversight
Experts warn ai-generated health content risks misinterpretation without human oversight Wednesday, April 15, 2026


Ludo.ai Unveils API and MCP Beta to Power AI Game Asset Pipelines
Ludo.ai Unveils API and MCP Beta to Power AI Game Asset Pipelines Tuesday, April 14, 2026


AccuWeather Launches ChatGPT Integration for Live Weather Updates
AccuWeather Launches ChatGPT Integration for Live Weather Updates Tuesday, April 14, 2026


Stay Updated

Sign up for our newsletter for the headlines delivered to you

SuccessFull SignUp

Get More App News



/sites/themes/prod/assets/js/less.js"> ' ' %>