When you are going to test your mobile application you have two options: either to test it on real device or to test it on emulator that simply copies the behaviors and environment of other device.
You will know from this article what kind of testing is the best and why; will become acquainted with the most popular simulator services and mobile devices that can help you in the process of mobile application testing.
When to test apps on real devices
There are several reasons that make testing on the real devices the best and most reliable type of mobile application testing:
One of the main tasks of the mobile applications testing is usability testing, which is impossible without having the real device at hand;
Real mobile devices mean real user environment. Some definite actions like scrolling and zooming are to a great extent different on the touchscreen;
Only actual mobile device has the platform that is suitable for testing experiences of the end-users;
Usage of real devices is much needed in the process of testing the hardware characteristics, such as quality of the display. Besides, the best way of testing memory consumption is testing it on the whole range of actual devices;
It is impossible to monitor possible network issues with the help of an emulator. In this case you will definitely need an actual mobile device.
The main problem of testing on real devices is a lack of physical devices.
You need to test your app on as many devices as possible to ensure the maximal coverage either geographically or globally.
Here you have three options:
To use your internal team capabilities.
Expensiveness:Low. This is the most cost-saving option. You may use the same team and the same range of mobile devices you usually work with.
Efficiency:Low. As the most IT labs are able to cover no more than 30% of the total device coverage, you mobile app will be released to the market without required testing. This may cause heavy damage to you app rating in the app store or google play.
Expensiveness:Middle. You pay only for time spent on testing. You don’t pay for hiring additional in-house employees or purchasing additional devices. Check the costs for free.
Efficiency:High. You are ensuring the maximal coverage both geographically and globally. As a result, your app is thoroughly tested and can easily qualify for the flawless user experience.
To buy additional devices.
Expensiveness:High. Let me guess – you are still planning to buy iPhone 6 for your office. While your competitors have already tested their apps on it. Nah, it doesn’t work that way.
Efficiency: Middle. Even if you are able to buy all existing devices, you are not able to cover specific user behavior features or issues that simply can’t be reproduced inside the office.
In any case, you need to ensure that your testing strategy is cost-saving and aims to cover at least the range of devices that is used by your target audience.
How to find out which devices are used by your target audience?
If your Android app is already in production, you may get all the required data in your Google Play Developer Console, that provides detailed statistics about your users’ devices.
If your Android app is not in Google Play yet, you may get the relative number of devices that share a certain characteristic (such as platform versions, screen sizes and open GL version) on Google’s Dashboard.
If you are developing iOS app… Heh, make sure to test it on all available devices and versions.
There are several the most popular devices useful for mobile application testing of Android apps:
Samsung Galaxy i9000 since it represents the most widespread and popular hardware that you can find on the phones of your end-users.
Nexus One since it has access to the latest APIs quickest. Large screen is also a big advantage of testing on this device.
Motorola Droid. This device is very popular in the US and is famous for its hardware keyboard
The Nexus S since it is the only Android phone with new sensors including: 3 axis GYROSCOPE, Near Field Communication (NFC), Gingerbread Android 2.3, Proximity Sensor, Light Sensor.
We found out that testing on the target mobile device is a sure-fire way to ensure in correct operation of the application as you run applications on the same hardware that your users will have.
When to test apps on emulators
Sometimes there are circumstances when testers have to deal with testing on the emulators. Testing on emulators can help in the following cases:
When there is a necessity to observe the behaviors of the software product under various adverse conditions such as memory shortage of the device;
In the process of finding obvious issues on several platforms, performing functional testing.
Now let’s talk about the most popular emulators for mobile application testing and describe briefly their primary features:
Official Android SDK Emulator. Android SDK includes a mobile device emulator that emulates all the hardware and software of conventional mobile devices (of course, without the ability to make calls). You will see the control buttons that can be pressed by the mouse or keyboard for a work action, as if in a mobile application. Also, you can see the display where your application will be shown.
MobiOne Studio (iPhone, Android). It is easy-to-use program that helps testers to test software for iOS and Android.
Windows Phone Emulator. Allows emulating Windows Phone device and provides the virtualized environment where you can test the application for Windows phone without having a real device at hand.
TestiPhone. TestiPhone is a simulator based on a Web browser for quick mobile application t4esting for the iPhone. This tool has been tested with Internet Explorer 7, FireFox 2 and Safari 3.
In conclusion it is necessary to admit that mobile application testing on real mobile devices is the best way of testing because only having the real device at hand you will be able to monitor the possible issues of your end users and fix them as soon as it is possible. Nevertheless testing on emulators can be very helpful in such cases where testing on real devices is impossible or hard to perform.