Amazon Device Farm Service


SAA-C03 Introduction
Decoupled Architecture
AWS Step Functions
AWS Step Functions
AWS Machine Learning Services
Design considerations
SAA-C03 Review
Start course
3h 46m

Domain One of The AWS Solution Architect Associate exam guide SAA-C03 requires us to be able to Design a multi-tier architecture solution so that is our topic for this section.
We cover the need to know aspects of how to design Multi-Tier solutions using AWS services. 

Want more? Try a lab playground or do a Lab Challenge!

Learning Objectives

  • Learn some of the essential services for creating multi-tier architect on AWS, including the Simple Queue Service (SQS) and the Simple Notification Service (SNS)
  • Understand data streaming and how Amazon Kinesis can be used to stream data
  • Learn how to design a multi-tier solution on AWS, and the important aspects to take into consideration when doing so
  • Learn how to design cost-optimized AWS architectures
  • Understand how to leverage AWS services to migrate applications and databases to the AWS Cloud

In this next section, we'll describe the Amazon Device Farm Service and talk about how and why we should use it.

What is Amazon Device Farm? By definition, AWS Device Farm is an app testing service that lets you test and interact with your Android, iOS, and web apps on many devices at once, or reproduce issues on a device in real time. View video, screenshots, logs, and performance data to pinpoint and fix issues before shipping your app. So what does that mean?

Device Farm can replace that collection of devices that application developers and companies must purchase and maintain for app testing. It can be used for all stages of testing applications whether iterative changes or cumulative and there are hundreds of both iOS and Android devices to choose from. It can also be used to reproduce any reported issues about application performance. Device Farm can also be used through a remote access session which allows developers and testers to interact with a device through a browser, emulating the same experience they would get as they were testing the physical device.

With so many variables like the wide variety of phones on the market, a multitude of tablet options, different operating systems and OS versions, carrier and manufacturer modifications to firmware, along with environmental factors such as signal strength, it's no wonder that developers struggle with building quality into their mobile applications. Purchasing the hardware for testing is expensive. Plus, it must be maintained and updated and technology changes so quickly that old devices must be replaced with new ones to keep up with the latest innovations. On top of that, the mobile application market is highly competitive. Users discard a malfunctioning app for a functioning one and a customer is lost. On top of losing a customer, poor ratings can affect the ranking of an application and make discoverability more difficult.

Now let's take a look at some important features of Amazon Device Farm. The Device Farm service enables you to test applications on real mobile devices, not emulators. Amazon provides a wide variety of Android and iOS phones and tablets to choose from.

Device Farm offers flexible testing methods. You can perform automated tests using the built-in tests or custom scripts or use compatible open source frameworks like Appium, Calabash, Espresso, and more. The automated testing feature allows you to run many tests across many devices in parallel with results returned in minutes. You can also test manually with the remote access option. During a remote access session, you can interact with a device as if it was on your desk, but you use your browser instead. You can rotate the device, install applications, swipe and gesture, as well as other interactions.

In Device Farm, devices are secured on both the hardware and the software side. The physical devices in the farm cannot take video or photos of other devices in the farm. They can't connect or communicate with each other over a WiFi connection. Each has a dedicated WiFi connection. Devices do not share any kind of network infrastructure, LAN, WAN, or internet. In a standard testing environment, the mobile device is usually connected to a host machine like a laptop or a server, and then tests are run against the device from the host machine. Device Farm offers a similar configuration. You have dedicated devices for your session. Once you have completed your session, the host is wiped clean or destroyed to ensure that you have a clean environment that is not affected by another customer's test or even yours from a previous session.

Amazon provides non-rooted iOS and Android devices on which you can install any appropriate applications necessary. You can choose different languages and locations and other features to simulate the real world environment that your users experience when they use the application.

You can also catch potential issues during the development process. Device Farm includes service plugins and APIs that can be configured to automatically initiate tests from IDEs and continuous integration systems like Jenkins, Android Studio, and more.

Device Farm also provides reports containing pass/fail information, crash reports, both the test and device logs, and they can contain screenshots based on when you want to take those screenshots. You can download testing logs and performance data. The reports provide detailed data per device and also high-level information like how many occurrences there were of a specific problem.

About the Author
Learning Paths

Andrew is fanatical about helping business teams gain the maximum ROI possible from adopting, using, and optimizing Public Cloud Services. Having built  70+ Cloud Academy courses, Andrew has helped over 50,000 students master cloud computing by sharing the skills and experiences he gained during 20+  years leading digital teams in code and consulting. Before joining Cloud Academy, Andrew worked for AWS and for AWS technology partners Ooyala and Adobe.