Case Study: Too Fast for the User
To improve the user’s experience for mobile native apps, you sometimes have to run the unit test in production
By: Klaus Enzenhofer
Jul. 28, 2013 11:00 AM
I just heard an interesting story from Runtastic, who is one of our Mobile Real User Monitoring customers. Runtastic's main mobile app allows their users to track their sport activities such as running, biking, hiking or skiing. They had a user complaining about too high speed. He didn't actually complain about the performance of the app but instead complained about his average speed during his workout as calculated by the app. After his one hour biking session, the app showed the he covered a distance of 490 km - that would probably be a world record and give him the yellow shirt in a small French bicycling event.
What went wrong on the mobile device?
After a short brainstorming session, the developers came up with the following three potential root causes for this bug:
Looking at the route traced on the map (see picture above), the recorded GPS coordinates could not be the problem because it matched the route the user took. So, how did the Runtastic team go about finding out which of the remaining two possibilities was the real culprit?
The developers decided to build a unit test into the app where they could check the result of the device's calculation for a well-known distance between two coordinates. Whenever the result was different than the expected, they used the capabilities of Compuware APM to report the error. This allowed the team to check whether the issue was a single user problem or not and which devices/operating systems were impacted.
After a weekend the team had enough visits showing an error like this:
The first guess was that the device has an impact on the calculation. By grouping all the collected error events by device, the team got the following results:
As the error events were evenly distributed across several manufacturers, a particular device could not be the reason. However, grouping them by operating system made the problem obvious.
It turns out that starting with Android 4.1, some of the devices have a bug within the calculation of the "distanceTo"-interface. For the Runtastic team, this unfortunately means that they can't do anything about it as this interface is provided by the operating system. To limit the problem, they can give their users the advice to upgrade their operating system when they run into this problem.
Reader Feedback: Page 1 of 1
Latest Cloud Developer Stories
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
SYS-CON Featured Whitepapers
Most Read This Week