Make mobile applications software testing easier and faster by checking these six problems first!
Developing mobile apps is exciting. Getting them ready for market, not so much. Developers aren't happy about the need to test such a vast and growing array of devices and operating systems. “It can be hair-raising to get a firm stance on the compatibility ground as it shifts underneath you,” says Bruce Williams, manager of development at thunder::tech, an integrated marketing firm.
It is exceedingly difficult to standardize testing given all the device type, operating system, and platform fragmentation, but it’s not terribly hard to identify common problem areas such as unintentional caching, platform-specific code fragmentation, widget wedgies, and connectivity snafus. There is even one rule all apps live and die by. “First and foremost, an app should not crash, ever, no matter what the user does,” says Erwin Mazariegos, founder of pTracker, a mobile app developer. “But that's pretty basic and should be considered the price of entry.”
So, testing will remain a major pain for the foreseeable future (and a costly one too) but it is possible to build a solid checklist to organize and speed the process. To help you identify the most common issues (either to prevent problems or to test for them), here are the top six snags in mobile apps:
Ignoring Technology Limitations. Developers know that smartphones are not really miniature laptops, yet it’s common for programmers to design and build mobile apps as though they were running on desktop computers. Fast downloads, fast Internet speeds, reliable connectivity, and memory surplus pretty much don’t exist in the mobile sphere. If mobile apps are built as though these things exist in the world of mobile phones, a crash and burn result is not only possible -- it’s probable. “Developers should avoid network queries and server calls when possible, and optimize caching to reduce the size of the app while keeping critical information in users' devices,” advises Eric Leland, a partner in FivePaths, an Internet strategist firm.
Making Icons Invisible. Some developers make icons so hard to find or to understand that the icons might as well not be there at all. Navigation controls and functional buttons should be easy to find and easy to use even on a tiny, itty-bitty phone screen. “A poorly designed forward or back button, linking tool, or favorites tool can be easily missed, causing the user to miss critical features of the application,” warns Leland. Don’t get crazy creative with icons either. Instead, use icons with well-established meanings that are standard in other mobile and web applications.
App Hangups on Incoming Calls. Developers tend to treat mobile connectivity issues merely as an Internet/No Internet situation. A quick test for errors in airplane mode should be a standard test for connectivity problems but don’t stop there. Think of every conceivable way in which connectivity can be interrupted: a down destination; a WiFi network that requires a log-in; a lost connection in the middle of a long download; and an incoming call. “In all cases, a helpful error message should be displayed, but the app should continue to function as well as possible,” says Mazariegos. “Also in all cases, any incomplete or ‘draft’ state should be plainly obvious to the user when the user returns to the app, which may be several days later.”
Sloppy Software Porting. Given the hassle of writing code for a gazillion different devices, OS, and platforms, it’s quite natural to look for time saving shortcuts such as converting code for one platform into another with as few changes as possible. “While this saves the developer significant time and cost in writing for specific platforms, [porting] often results in applications with more bugs, crashing, and difficult user interfaces,” warns Leland. “Avoid developing a dud app by spending the time up front to build for the specific platform you will release it on.”
Inconsistent Interactions. Developers need to add a multitude of ways the user can control and navigate within the app and to access its features. But this can be a minefield for both developer and user. “Developers commonly mistakenly allow the same user action, such as a left swipe or double tap, to do more than one action,” explains Leland. “This inconsistency confuses users and results in many bug reports and user dissatisfaction.”
Multitasking Mayhem. Mobile apps tend to become lost and confused if allocated to the background for too long. Yet multitasking users like to pile apps in the background – sometimes for days on end. Make sure your app can detect re-activation without re-launching even if content refresh and user log-in are still required. “Testing is straightforward: Put the app in the background, and verify appropriate re-initializations occur when the app is accessed again,” says Mazariegos. “Another test: Put the app in the background, then reboot the phone. This will test that the app performs the proper user data saving activities before being terminated while in the background.”