Mobile app testing has changed considerably in the last decade, due in large part to the enormous strides made in the design, performance and software ecosystems associated with smartphones, tablets, and wearables over that time period. The typical "mobile device" in 2006 was probably a small handheld with a QWERTY keyboard, such as a BlackBerry. But these days, it's more likely to be something with a slate form factor and a touchscreen, i.e., the standard features on any Apple iOS or Google Android device.
Indeed, the change was reflected in the July 2016 announcement that BlackBerry had finally ceased production of the BlackBerry Classic, the company's last phone with a physical keyboard and trackpad. Meanwhile, the iOS and Android platforms that long ago dislodged BlackBerry OS, Symbian, Windows Mobile and other ecosystems from the top of the heap now bring in billions of dollars for app developers.
The mobile app industry is fiercely competitive and increasingly dominated by giants such as Facebook and various messaging services. Standing out requires a smart approach to testing that finds defect trends early and often and supports rapid development cycles as part of an agile culture. Let's look at a few tips for improving your mobile app testing processes:
1) Account for Device Fragmentation
Chances are that your app won't be running on a single type of a device with a uniform screen size — you're not building for the old days of generic IBM PC running Windows 95. You'll likely be targeting anything from a 4-inch phone to a 10-inch tablet. Android, in particular, has become infamous for the literally thousands of different form factors, operating system versions and carrier settings that must be accounted for during development.
To overcome this challenge, it is a good idea to test with as many real-life devices as possible to get a proper feel for how the app looks like and how it behaves on different screens. It may not be possible to test a comprehensive range of hardware, which is why emulators and simulators are important assets to have on hand.
These solutions may be available as in-browser utilities or commands that you can run from the command line interface ("simulators") or as native tools that take advantage of Android or Xcode features ("emulators"). Consider devoting the bulk of your time to the most popular devices or the ones that you are targeting most closely (e.g., tablets in an enterprise deployment).
2) Test Out Different Network Settings
One of the most obvious differences between mobile and desktop devices is in how they stay connected to the internet. Phones and tablets often hop between different wireless networks (e.g., 4G LTE and Wi-Fi), which is not an issue for PCs that can simply connect to the network via an Ethernet cable if need be. There is also the issue of wireless networks being slower and less reliable than wired equivalents, despite the huge strides made in Wi-Fi technology in particular since the mid-1990s.
The volatility of mobile networks can create challenges for some applications, especially ones for tasks such as VoIP and video conferencing that have little room for latency, jitter or packet loss. Even less demanding programs such as mobile games or messaging clients can become virtually useless without a stable IP network connection. This is why it is important to conduct IoT testing to discover what your application will do in lieu of constant, reliable connectivity.
"For voice, video, and other high-data applications, you may want to find a way to 'yank the wire,' to simulate loss of connectivity," explained Matt Heusser of Excelon Development in an article for TechTarget. "Likewise, you may want to let the machine go to sleep (or simulate putting it away in a purse for two hours), then wake it up, perhaps on a different data network."
3) Keep an Eye on Potential Storage Issues
Disk space is not usually something you have to keep in the front of your mind when testing desktop and web applications. It is important, but not a showstopper in most cases. This is because most Mac and PCs have more storage than they need. HDDs and even SSDs with 500GB of capacity or more ship standard with many machines. Capacious external hard drives are also easy to connect via USB or other port.
Mobile devices are much different. Many phones ship with a mere 16GB of onboard flash storage. That was quite a bit back in 2007 or 2008, but it is barely enough nowadays. Huge HD mobile games, gigantic caches for music streaming services and hi-res photos and videos are competing for limited space. Most users have a considerable challenge in front of them: According to a December 2014 survey from mobile camera app IceCream, 91 percent of iPhones in the U.K. were running the 16GB configuration.
During mobile testing, keep these limitations in mind. Consider how much data your application will download to your users' devices, and how this amount might affect their monthly mobile data plans. Apps can behave in unpredictable ways if no disk space is available, so it is a good idea to minimize the storage requirements that your program places on mobile devices.
4) Have a Plan for Different Application Types
Mobile apps come in many forms. They may be native applications that take full advantage of deep interactions with system APIs, they may be web apps that run in the mobile browser or they could be hybrid apps that blend aspects of both of these types.
It is important in mobile app development to note that each app type has its own unique set of requirements. For example, a native app should be optimized for a single platform since it will be tapping into the distinctive features of that OS and be distributed through a specific app store. In contrast, a web app would need to be compatible with several major web browsers and run well on many different device types.
5) Settle on Test Management Tools That Work For You
There is a bevy of testing tools out there today, which makes sense considering how quickly mobile devices have become the primary means of accessing the internet for many individuals. The wide range of choices means that it can be hard to choose something that is right for your requirements.
Solutions such as test management for JIRA can adapt to your needs and provide the integrations and flexibility that help keep your development and testing cycles running smoothly. Mobile app testing will be the main focus area for many organizations going forward, so it will be worthwhile to have a sound strategy and supporting tools in place.