In the world of mobile application development, you may find yourself deciding whether to rely on testing with actual devices for your tests or to make use of emulated devices testing against a simulated environment—but the question you really should be asking isn’t about the use of one or the other. Instead, you need to focus on why both are important, and how you can test with both.
Let’s take some time to look at the advantages and disadvantages of each approach, and then look at how you put together a testing strategy that leverages both for a proactive approach to quality assurance.
An emulator is a software application that mimics the interface of a particular mobile device. By using an emulator, the developer can test the mobile application on the same machine where it is being developed. Deploying a new code base to an emulator is significantly faster than deployment to a real device, and this speed shortens the time a developer must wait before being able to interact with and test their solution.
Emulators allow for rapid identification of simple bugs within the mobile application and allow the developer to quickly gain insight into how the user interface functions and responds to user inputs.
When compared with actual devices, the cost of the emulator is significantly less than would be incurred by purchasing different makes and models of mobile devices.
The advantages of an emulator are also shortcomings. Emulators don’t provide the same level of performance as could be expected from an actual device. Also, the emulator is only as good as the code which attempts to mimic the actual device. There is a very real risk that the user experience on a physical device may be different from that on an emulator, and this is something that can only be discovered by testing on a real device.
Emulators exist for most common types of devices, but emulators will likely never be available for all brands and models of devices.
Using a real device to test an actual mobile application allows the developer insights into:
The actual performance of the mobile application on the target device
The functionality of the device in a world in which it may be subject to:
Variability of network performance
Reality with different lighting conditions or while the user is moving
Realistic memory constraints
Device inputs from the touchscreen, and device-specific input types, such as gestures and input from parallel systems like the GPS systems on most mobile devices.
You will need to purchase many different makes and models of mobile devices to test your applications thoroughly and validate compatibility and performance. How extensively you want to test your mobile application can mean the difference between spending a significant amount of your testing budget, and spending even more. As new models emerge into the marketplace, your mobile lab will need to grow and expand as well. This will require additional expense, as well as maintenance and support of existing devices.
As stated in the beginning, our goal should be to make use of both emulators and real devices for an integrated approach to development and testing that results in mobile applications with high usability and levels of quality.
The decision to use an emulator or a real device should depend on your objective. For prototyping, validation of logic and debugging, an emulator should be your go-to solution. And when the time comes to test the compatibility of the application with a device and usability and performance, then you’re going to want to leverage actual devices.
So yes, you should be using both emulators and real devices, but that doesn’t help you with the initial and ongoing expense of setting up and maintaining a library of physical devices for testing. Fortunately, you have the option of making use of a real device cloud. These services provide the user with the advantages of having access to a variety of devices, platforms, and versions of each.
Providers allow the user to access both Android and IOS devices on everything from a Galaxy S4 to an iPad Pro with a 12.9” screen. Device maintenance is not required, as the provider maintains all devices in a clean state, ready for test deployments and usability testing.
Mike Mackrory is a Global citizen who has settled down in the Pacific Northwest - for now. By day he works as a Senior Engineer on a Quality Engineering team and by night he writes, consults on several web based projects and runs a marginally successful eBay sticker business. When he’s not tapping on the keys, he can be found hiking, fishing and exploring both the urban and the rural landscape with his kids. Always happy to help out another developer, he has a definite preference for helping those who bring gifts of gourmet donuts, craft beer and/or Single-malt Scotch.