LinkedIn combats 'toxic' mobile application testing

Social network and new member of the Microsoft family LinkedIn has open sourced an Android app testing tool called Test Butler. LinkedIn has been working to refine its own app on Android… and this development is a result of that effort.

Now available on GitHub at the software itself was developed inside the LinkedIn test and development team in response to what the testers defined as limitations with existing Android application test emulators.

Testers at LinkedIn have reported their frustration at failed tests which were not due to the quality of the code… this is due to the presence of so-called ‘toxic’ mobile testing environments.

Toxic mobile environments

Test Butler was inspired by the Google presentation “Going Green: Cleaning up the Toxic Mobile Environment“.

Test Butler is a two-part project. It includes an Android library that test code can depend on, as well as a companion Android app apk that is installed on the Android emulator before running tests.

The Test Butler library is a thin wrapper around an AIDL interface to give tests a safe way to talk to the Test Butler app’s service running in the background on the emulator.

Why automation is the key to testing

The so-termed ‘toxic’ testing environments referred to here can be circumvented (says LinkedIn) with more automation intelligence. One key recurring scenario would be where a test emulator could crash due to some application process or component…. the emulator would typically produce a dialogue at this point and, typically, a human developer would be required to manually close. Without that manual intervention, the system falters. This type of process can be more smoothly handled if it is automated.

Resource allocation for the emulator can also crash the system while it is working i.e. if the emulator gets too greedy without enough automation intelligence to throttle back on resource demands, then crashes can occur.

The above link goes to Google’s original classroom presentation on toxic testing.