Each device type has its own advantages and disadvantages. You should pick the testing device type based on your needs.
Some examples:
• A big team of testers might want to go for cloud devices, since exchanging physical devices can be difficult.
• For apps that are very hardware dependent, you might want to test on a physical device.
• For performance testing you might want to choose an emulator or simulator, since they allow a realtime connection and easy system analysis.
Android | iOS | |
---|---|---|
Physical device | + fast execution + unlimited execution minutes + simple setup |
+ fast execution + unlimited execution minutes – iOS connector needs to be integrated into your app – IDB needs to be installed on your system – resetting app data does not work – auto-accepting permissions does not work |
Simulator | + easy to use within a team + unlimited execution minutes – needs to be setup on your local system |
+ easy to use within a team + unlimited execution minutes – iOS connector needs to be integrated into your app |
Cloud device BETA | + very easy setup + very easy to use within a team – slow execution – limited testing minutes – adb or idb commands can’t be executed |
In contrast to a physical device, a virtual testing device is a piece of computer software that simulates most of the key elements of a genuine smartphone. Because it closely resembles a smartphone, testers can use it to test software applications and gain a sense of how they will function on the chosen real device.
Although virtual testing devices can replicate genuine devices and are economical, real devices cannot be replaced because of accuracy and reliability issues.
Virtual testing tools come in two varieties:
Testing on physical devices is the best you can do when you need to test hardware features such as the camera or GPS.
However, virtual devices have their benefits too:
The difference is quite theoretical and is not really relevant for testing. However, it’s good to know is that the standard virtual device for Android is an emulator, whereas the standard virtual device for iOS is often referred to as “Simulator”.
On a more theoretical subject:
Binary translation makes emulators slower due to latency. Simulators are faster as there is no binary translation.
The easiest way to get this done is to download Android Studio and then use it to download, configure and launch your AVDs (=”Android Virtual Device”). If you want to save disk-space, or you prefer to use the command line, there is also another (slightly more complicated) way to install emulators without Android Studio.
The easiest way to create your virtual device however is this:
If you run into issues: Please consult the original documentation on managing AVDs.
Be aware: iOS Simulators are only available for Mac OS users. Why? Because Xcode is only available for Mac OS.
For performance testing processing, graphics, or networking, tests must be run on actual hardware: Simulator is a Mac application that utilizes the CPU, memory, and network connection of the desktop machine. The performance, memory use, and networking speed of an iOS app can therefore not be accurately tested using the simulator. Results from Simulator performance testing should only be used to compare relative variations in app functionality.
When results from the real world are needed, user testing should be conducted on actual hardware
Test automation on physical iOS devices is much more limited than on the Simulator. This is due to the security constraints implemented by Apple. A variety of things such as clicking system dialogs is simply not possible on physical iOS devices. That’s why on iOS we strongly suggest using the Simulator to automate your app.
The following hardware is not supported in Simulator: