A year ago, Facebook received a lot of criticism for its iPhone app being slow. The New York Times reported that 'At Apple's App Store, out of 38,000 reviews, more than 21,000 customers have given the app a measly single star. Users repeatedly describe the app as slow, crashes, stinks, fail and "is always loading."'1
Smartphone penetration among Singaporeans as of May 2012 was at 88 percent. Mobile penetration rate was at a massive 148.9 percent of which three-quarters were 3G subscriptions. Singapore's population has earned a reputation of being one of Southeast Asia's most mobile savvy and are not afraid to call a spade a spade, or lend their voice when apps of renowned blue chips don't perform up to the mark.2
As consumers' demands of mobile technology continues to accelerate, application developers and testers will struggle to keep pace without a shift in thinking when it comes to mobile quality, performance and development. Creating effective apps for an increasingly competitive market depends on rigorous testing to minimise errors and failures. However, this is not as straightforward as it sounds as apps today may need to run smoothly across as many as 1,800 different device platforms. Developing apps for Android OS, for example, demands the consideration of over 130 different devices, running seven different platforms on two firmware sets.
The challenges for developers and testers in the new world of the mobile device app are daunting. Their products need to work smoothly across many existing device platforms while trying to predict the requirements of handsets currently in development - a sizeable challenge for any organisation.
Developers and even testers are often sitting in silos and are both at times culpable for skipping the testing either at the development or during the lifecycle of apps. Thus, it is important to ensure apps continually perform from the moment they go live.
Here are top tips for making sure that testing apps is done thoroughly.
- Reusability: By definition, mobile app development is a moving environment. Systems must withstand frequent changes and keep pace with rapid developments.
- Maintainability: Mobile testing scripts need to be easily modified and portable across platforms to avoid rework which results in delays and added costs.
- Real world mobile use: While what we perceive as the 'real world' will change, mobile apps should be tested in the same way that the audience will use them.
- Industry standard languages: Some things are more stable. Java or C# will integrate into any continuous delivery system.
- Multiple devices: The testing solution should support multiple iterations of the mainstream mobile development platforms.
- Improved performance tests: Accuracy is paramount in performance testing. You want real traffic from native apps that mimic real devices.
- Use emulators and simulators: Take away the legwork by using software that mimics the actions of different devices.
- Simulate real mobile bandwidth: Test for the real world by covering and replicating real mobile bandwidth speeds such as GPRS, EDGE, UMTS, HSDPA, HSPA+, and LTE.
- Scale it up: While there are some variables, the future is going to see more people using your app, so scale up your mobile testing to a global scale.
- Identify the correct testing subset: It is unrealistic to test your app on every known released device and mobile OS platform, so identify your key players - and recalibrate it as required.
Sign up for CIO Asia eNewsletters.