Is Genymotion emulator effective to run android applications or using data-cable connected with a physical device to run android applications is better? Which method is faster and more helpful?
It depends on your computer and or your mobile device. Each one has its pros and cons, but again, that depends on the quality of each scenario.
If you have a good computer to run the emulator it will be all you need, maybe even better than your mobile, on the other side if you have a not so nice computer and have a good mobile device it will be easier to test on it.
Now let's assume the two have the same capacity. It will depend on what you need to test, some functionalities are better tested in a real device, and some are more practical to test in the emulator. If your question is "Is emulator effective?" then YES, the emulator its effective. But let's be more detailed:
- Subject: Situation-based application
Emulator Testing: There are specific situations where the deadline to produce text execution results are short and purchasing the required mobile devices may be not possible. Thereby it might be necessary to use the emulator/simulator in these circumstances for testing the relevant mobile applications which need to be tested.
Real Device: The real device allows the testers to test almost all the real time scenarios which can be tested for the mobile applications. These devices are operated using fingers and simulate real-life usage. They also help in situation Real context: is it easy to use the app on the train, or while walking down the street? The situation about in bright sunlight or in the rain?
- Subject: Feeling of closeness towards the real handheld devices
Emulator Testing: The wide gamut of mobile devices creates the problems, whereby the testers are not confident about which mobile devices to invest in for testing, considering the budget constraints. Emulator/simulator (s) is tailor made for this type of situation(s).
Real Device Testing: The real device allows the testers to test even usability issues like the look and feel of the application, color resolution of the screen, whether the picture is bright or not under both day and night conditions and so on.
- Subject: Ease of availability
Emulator Testing: Emulator/simulator(s) are in most cases open and free software which can be very easily downloaded from Internet and ready to be tested for.
Real Device Testing: The real devices allow stringent Performance Testing issues like working with a real time transport application for 15 hours continuously which cannot be successfully simulated by the emulators.
- Subject: Ease of opening an Web application through URL
Emulator Testing: It is easier to do web application testing when it comes to opening the web application. The user just needs to copy and paste the application URL.
Real Device Testing: Testing on real devices provides more in terms of reliability.
- Subject: Capturing screenshots of the situations where defects appear
Emulator Testing: Capturing issue of screenshots over simulator is very easy with the simulator since we just need to use Microsoft office facilities.
Real Device Testing: Testing with real world devices is very helpful in terms of interoperability testing.
- Subject: Simulation of validation of battery scenarios
Emulator Testing: The emulator/simulators are not able to simulate the battery issues.
Real Device Testing: Real world devices can easily perform the same.
- Subject: Validation of incoming interrupts
Emulator Testing: The emulator/simulators are not able to simulate the incoming interrupts for SMS as well as the incoming calls.
Real Device Testing: Real world devices can easily simulates incoming interrupts.
- Subject: Validation of exact color displays
Emulator Testing: The emulator/simulator is not able to properly emulate/simulate the exact color display of the devices when the real device is in sunlight or in black.
Real Device Testing: Real world devices can easily simulates the exact color displays.
- Subject: Validation of the performance
Emulator Testing: The performance of the emulator/simulator tends to be slower than the original devices at times.
Real Device Testing: The original devices tend to perform faster than the emulator or the simulators.
- Subject: Simulating memory related issues
Emulator Testing: The memory available at the emulator/simulator tends to be far more than the real devices so this may create misconception for the users who would be using the same validations.
Real Device Testing: The memory storage level of the devices tend to be far less than the emulators thus it may
Some problems of each one:
- Emulators:
The emulator/simulator is not always the best type of solution for scenarios such as the ones whereby the testing team needs to validate the performance of the application for a longer period of time.
The emulator/simulator is suitable mostly for certain types of functional test case executions.
The emulator/simulator can some time not be supportive of certain types of application and in these cases the testing team may need to purchase software patches which may not always be free but could be costly at times.
Not all the emulator/simulator supports the complete gamut of mobile applications. For example the bada simulator supports the Maemo (such as Nokia N900), Symbian Touch (such as Nokia N8) and Symbian non-touch (such as Nokia E71) but it does not support other mobile devices like Android. As per as the application testing functionalities are concerned, bada does not support direct web browsing testing but it allows the user to test and create only webapps and widgets.
.
- Real Device:
The real devices are costly compared to the emulator/simulators. Thereby projects under budget and timeline constraints may risk profitability as well as the viability of the overall project.
There is a very wide variety of mobile devices from apple to Samsung to android and to Symbian and so on. Considering this wide range of mobile devices it is very hard for the testing team to arrange all sorts of mobile devices while working under considerable amount of budget and timeline related constraints.
Real Mobile devices when used in the developing stage for Unit Testing and similar purposes could turn out to be harder to connect to the IDE than the emulators and this causes tremendous problems for debugging and in a project with timeline constraints this may very well hamper the overall conclusion of the project.
In order to test with the real world devices, the devices need to be always connected to the USB port of the machines. So if the USB ports are not working properly, the testing would not be possible. Without providing adequate security measures mobile devices (if they happen to be costly like the apple Iphone) may be lost or stolen thus hampering the overall effort. Increasing security may also go on to increase the overall expenditure involved with the project.
The user has to type manually the URL for opening up the web application which is needed to be tested. To solve this particular issue, the tester may need to create phone bookmarks, short URL services or sending URLs to mobile using Bluetooth connection or creating the webpage that contains some URL-s. The adoption of these procedures would ensure that a lot of very important memory space may be eaten up thus impacting on the overall performance of the application.
There's a lot more we could say about specific cases with specific devices and emulators, but to conclude I would say: use both, get the best qualities of each one and use when it suits better.