kantver - Fotolia


Dial in to the AWS Device Farm mobile app testing service

The average U.S. adult spends nearly three hours a day viewing mobile content, shows research. AWS Device Farm helps developers ensure consistent app performance on all devices.

When it comes to delivering a robust mobile experience, development is just the tip of the iceberg. The requirement for a high-quality mobile experience has increased due to a large growth in online user engagement through mobile devices, in particular. But nothing can be released until IT teams deploy a mobile app testing service to work with several different combinations of devices and software.

According to eMarketer, an independent research firm located in New York City, consumption of online content and services through mobile devices has risen 11%, with the average U.S. adult spending almost three hours a day viewing digital content on their phones. Businesses must focus their digital strategies on mobile applications to stay relevant and increase profits.

To help address this, Amazon Web Services (AWS) acquired AppThwack, a company that helps developers test phone apps in the cloud and released AWS Device Farm, a mobile app testing service. Using AWS Device Farm, developers can automate and schedule tests using an API or Jenkins integration framework. Here's how it works.

The struggle is real with mobile app testing

Mobile app testing is an extremely important stage although it's not the easiest to implement. Think of all of the possible different combinations of operating systems, carriers, phone manufacturers, screen sizes, connectivity options, input devices, and device and permission settings. Each and every one needs to be tested before an application can be released.

In the past, resources were bought specifically for testing purposes; there would be periods of time where the purchased capacity was idle. The cloud, on the other hand, enabled developers to use what they need when they need it -- increase usage efficiency and reduce resource costs. When an application stack running on AWS is no longer in use, it can be terminated.

AWS Device Farm can help streamline testing and make sure it's integrated with software development lifecycles. The service was originally produced for Android due to its large number of software versions, which made testing particularly challenging. In August, however, AWS announced that Device Farm also supports iOS. Currently, the service works with more than 200 operating environments -- with more to be added in the future -- and it enables developers to test devices concurrently and in parallel.

Working on the AWS Device Farm

To get started with AWS Device Farm, developers need to upload an application's archive file (.apk for Android or .ipa for iOS) to the service and configure the test. They can choose to build a script or use either the built-in fuzz test or instrument tests with frameworks such as JUnit or Espresso. Click Confirm and start run and AWS will run the tests in the background using its pool of instances (Figure 1).

AWS Device Farm mobile app testing service.
Figure 1. AWS Device Farm active test screen.

AWS Device Farm also enables developers to determine how users are using an app, such as accessing it through WiFi or Bluetooth, if they need any extra data on their devices, and where it is located to see any latency. They can also implement tests in specific areas where the app is more popular.

Once tests complete, AWS Device Farm gives IT teams a breakdown of where things went wrong using screenshots and offers a summary that includes performance data and log file output for each device. These performance metrics should then be used to help improve app performance before running another round of tests.

The AWS Device Farm service comes with a free trial of 250 device minutes; customers are charged $0.17 per minute after that. Unlimited testing tops out at $250 a month per device.

Next Steps

Ten tips for testing mobile apps

Test responsive apps with these tools

Track changes to configurations during mobile app testing

Dig Deeper on AWS CloudWatch and application performance monitoring