Back to Resources

Blog

Posted September 28, 2022

Virtual Device (Emulator and Simulator) vs. Real Device: What is the Difference?

This guide discusses the differences between virtual devices (emulators/simulators) and real devices, the benefits of each, when to test on each, and more.

quote

Organizations committed to their mobile application quality efforts are faced with making an important choice regarding where to run their mobile tests. The default for development teams in large enterprises is to use real mobile devices. While this gives them more accurate test results, it is not ideal for scaling and automation of testing.

Startups and SMBs may ignore real devices altogether as they’re perceived to be too expensive, and opt for the more convenient option — emulators and simulators, or virtual devices. In doing so, they miss out on the real-world feedback that a mobile device can provide.

This guide discusses the strengths and weaknesses of each of these options, and suggests a way to use them to take QA efforts to the next level.

In an attempt to move away from testing on physical devices, some organizations have switched to using emulators and simulators for their mobile app testing and deep link testing. However, it’s a best practice to incorporate a combination of real devices and virtual devices (mobile emulators and simulators) for the most comprehensive mobile app testing strategy. Let’s dive into what emulators and simulators are and when they should be used for mobile testing.

What is an emulator?

An emulator, as the term suggests, emulates the device software and hardware on a desktop PC, or as part of a cloud testing platform. It is a complete re-implementation of the mobile software written in a machine level assembly language. The Android (SDK) emulator is one such example.

What is a simulator?

A simulator delivers a replica of a phone’s user interface and does not represent its hardware. A simulator is a partial re-implementation of the operating system written in a high-level language. The iOS simulator for Apple devices is one such example.

What is a real device?

A real device is the actual hardware (plus OS and built-in support resources) on which your software will run in production. For mobile software, it's the mobile phone or tablet. For specialized industrial, scientific, or medical monitoring software, it's the actual monitoring device.

Real Device Difference Table

Real Device Testing vs. Virtual Testing Device

Emulators and simulators have one basic feature in common: they are virtual devices, not real-world test environments. The most important distinction when it comes to software for mobile devices is the difference between virtual environment testing and real device testing.

Real device testing is the practice of installing the latest build of a mobile app on a real mobile device to test the app’s functionality, interactions, and integrations in real-world conditions. Real device testing is a recommended component of a comprehensive mobile app testing strategy, especially when used in combination with virtual devices (Android emulators and iOS simulators).

Emulators and simulators are faster to provision than real devices, as they are software-driven. Additionally, they enable parallel testing and test automation via external frameworks like Appium, Espresso, and XCUITest.

Emulators and simulators enable parallel testing in a way that can’t be achieved with devices in a lab. Because tests on emulators and simulators are software-defined, multiple tests can be run on tens of emulators and simulators at the click of a button without having to manually prepare each emulator/simulator for the tests.

However, mobile QA teams that start to use emulators and simulators may swing to the other extreme of stopping all testing on real devices. While this may speed up the testing process, it comes with a critical drawback — emulators/simulators can’t fully replicate device hardware. This makes it difficult to test against real-world scenarios using an emulator/simulator. Issues related to the kernel code, the amount of memory on a device, the Wi-Fi chip, layout changes, and other device-specific features can’t be replicated on an emulator/simulator. 

To get the most out of your mobile testing efforts, you will need a mix of both real devices and emulators and simulators as part of your mobile testing strategy. One option promises more accurate test results, while the other delivers greater agility.

When to Use Real Devices vs. Emulators vs. Simulators

Emulators and simulators are complementary to real devices, but they can’t deliver the real-world environment that a device can deliver. Real devices and virtual devices (emulators/simulators), when used together in an automated testing environment, enable modern mobile development and testing teams to get the most out of their mobile testing efforts. 

In addition, testing in parallel across multiple platforms helps speed up tests while optimizing costs.

Here’s a quick summary of when to use real devices and emulators and simulators in your testing.

What to Test

Real Devices

Emulators/Simulators

Functional testing for large integration builds

UI layout testing

Mobile web testing

Compatibility testing

Manual/ interactive testing on physical devices

Unit/ System testing

Beta testing

Error monitoring and reporting

Hardware dependencies (CPU, GPS etc.)

Display testing (pixels, resolutions)

Replicate issues to match exact model

Camera mocking

Push notifications (real services)

Natural gestures (pinch, zoom, scroll)

Testing On Virtual Devices and Real Devices at The Same Time

Although, in general, you would first test on emulators and then test on select real devices just before deployment, in some cases it makes sense to perform real-device testing at the same time as emulator testing. If you are trying to achieve a particularly fast release velocity, running real-device tests earlier in the CI/CD pipeline can help to save some time by eliminating the need for a separate suite of real-device tests.

The Solution: Sauce Labs Real Device Cloud

Any organization that competes in the mobile marketplace cannot afford to ignore the value of using real devices, emulators, and simulators in their mobile quality efforts.

The Sauce Labs Real Device Cloud provides instant access to the most extensive range of iOS and Android devices, new/beta operating systems (OS), and test automation frameworks including Appium, Espresso, and XCUITest. With the Sauce Labs Real Device Cloud, mobile app development and QA teams can test securely from virtually anywhere, anytime, on any device/OS combination.

Sign up for a Sauce Labs free trial to start testing your mobile apps on real devices today. 

© 2024 Sauce Labs Inc., all rights reserved. SAUCE and SAUCE LABS are registered trademarks owned by Sauce Labs Inc. in the United States, EU, and may be registered in other jurisdictions.