Testing location-based services on real mobile devices
Mobile devices and mobile applications have become prevalent and one of the most powerful features that mobile devices bring is location-based services. Location-based services, as the name implies, enables the possibility to offer services to users based on their actual geographic location.
Examples of location-based services are applications that calculate the itinerary from point A to point B, taking as point A the actual position of the user based on the GPS information on the mobile device, or applications that offer to its users available discounts and deals nearby the user’s physical location.
The problem arises when, as a tester, you are being asked to test on real mobile devices a mobile application with location-based services functionality. We are assuming that no one takes as a practical solution to physically travel to different places, so we think we are safely leaving this option out. We also would like to point out that this problem is specific to testing on real devices and not emulators, as most emulators come with the ability to set GPS coordinates. Other solutions such as Ripple also allow users to set the device’s geo location.What can we do, then, if we need to test location-based services on real devices?
A potential solution would be to use products such as DeviceAnywhere or PerfectoMobile , which offer remote access to real devices located in various geographical locations. However, these devices are actually sitting in an data center so it’s not possible to, say, test an application around the streets of London using these products because the actual mobile device is in a fixed place in a data center. For this reason this solution has obviously limitations.
A possible workaround would be to install an application on the mobile device that lets the user ‘fake’ the location of the mobile device. We have successfully tested these applications on iOS and Android, although we have not come across similar applications for Blackberry. We think this is a viable alternative even though it is not a real user environment, therefore there is the possibility that the mobile application may behave differently depending on whether the geo location is provided by the ‘fake’ location application or the actual GPS data from the mobile device.
Finally, if installing a ‘fake’ location application on the mobile device is not acceptable, there is the possibility to use GPS simulators such as LabSat . This product lets you simulate the GPS signal that is picked up by the mobile device. It does this by recording and replaying GPS data or simply recreating the GPS data for a specific pre-defined path. Therefore, with these type of solution you would be very close to testing the mobile location-based service in a real mobile environment without tampering with the device software or having to take the mobile device to the real geographical location. There are some downsides to this solution though, mainly the cost of purchasing the product as well regulations which only permit generating ‘fake’ GPS signals in a contained environment in order to avoid affecting real GPS signals.