There’s nothing worse than taking the time to develop your mobile app for release, only to discover that it is not loading, has bugs, or even worse - crashes. The result of these failures in a mobile-centric, get-it-now world can be catastrophic to an enterprise mobile business.
Developing mobile apps is extremely expensive and quality is often sidestepped due to the focus on getting your mobile app to market first. Without testing, your app could easily be the victim of poor reviews and a bad user experience.
The mobile app market hit 13.4 billion downloads in Q1 of 2013. With popular belief that an app with better ratings is more successful in the long run, skipping critical steps like testing could be the difference between a 1 star and 5 star rating in the app store.
Testing for Variables
During development, it is important to consider the varying factors that will apply to your target audiences when they are ready to use your app. For the best understanding of the functionality and feel of your mobile app there are several key factors to keep in mind while testing your mobile app including; device type, OS’s, screen size/hardware and connectivity.
Device Diversity - While it seems that testing on the most popular devices should be standard, it isn’t. It is crucial to address the diversity of the devices’ software, multiple OS’s (Android, iOS, Windows Mobile, BlackBerry etc.) and different versions within each, and in Android’s case, the various device manufacturers. To compound this, consumers of mobile products don’t consume applications in a uniform way. When asked what types of mobile technologies they are using to deliver their products (web, native, or hybrid), most customers answer “all of the above.” In these cases, a strong quality assurance strategy should include the ability to understand and support mobile across all of these technologies.
Hardware Diversity - The reality is, with the growing presence of hardware diversity, you should run your mobile application through several tests to ensure that it functions and appears as it should, regardless of screen resolution or available controls. In many cases, customers testing mobile applications across different handsets often identify bugs that occur in the device, rather than identifying bugs in the application itself. That is why it is important to test across several devices, ensuring that your mobile product works across the many smartphone and tablet configurations that exist in the market today.
Connectivity Diversity - Another complexity for your mobile application is connectivity. Unfortunately, your application has to contend with everything a traditional networked product does (such as functionality, memory usage, and power usage), with an added difficulty of an “Over-the-Air” (OTA) connection. Understanding how unpredictable wireless is, you may have no control over connectivity. Therefore, you need to take OTA performance into account with graceful failover procedures or with smaller downloads that are less likely to fail over a slow connection. In all cases, you want to avoid download abandonment, especially where the download speed may be too slow to stomach for the customer.
Overall, the complexities of testing your mobile product comes down to the devices and having the appropriate tools to support testing efforts are necessary to assure quality despite these diversities.
With BYOD (Bring Your Own Device) becoming increasingly prevalent, a major concern for enterprise organizations is mobile application security. Whether it means a secure environment for their remote workforce to function, (for example, leveraging ERP apps) or a consumer environment (such as a bank ensuring login and logout protocols are in place and functioning); security is critical and can make or break the success of the user experience. While PC’s have suffered malware issues for years, from major attacks to spam, etc, malware has only recently been spilling into the mobile space.
Caleb Sima of CMS Wire says, “At this point it is largely Android-specific nuisance-ware linked to SMS toll scams. Once you dig deeper into the details of many of these “reports” you can see that the malware issues are largely found outside of the U.S. and affecting people downloading apps from third-party stores, NOT in the Google Play Store.”
As companies continue to adopt the BYOD approach in the enterprise, mobile malware will become a much larger threat, not just to the success of the application but also to the company opening itself up to a new channel of threats and exposure.
Determining Your Testing Strategy
With so many factors to consider, it is important to have an effective mobile application testing strategy that uses real devices while leveraging manual testing, automated testing, and continuous monitoring.
Real vs. Emulated Device Testing - Depending on your application, you will have to assess whether testing on an emulated device or real device is the best option. Many times it is not an either/or decision and the best choice is both. Emulators offer the less expensive testing option, but they have many limitations for mobile testing and may not give an accurate depiction of the mobile user experience.
Testing on real devices gives the tester full functionality of the mobile device. While device types may be more limited than the emulated devices, testers should be able to have access to the real processor and hardware to understand the quirks that some real devices have. Without this ability, users may not discover real life issues that device differences would present in a real environment versus in an emulated environment.
Automated Testing - Automating your mobile testing has two main advantages, increasing efficiency and cost savings. With automated testing, you are able to conduct manual tests with simple scripts and run it repeatedly. You save human resources and money. Automated testing helps QA teams quickly create and test scripts to capture, verify and replay user interactions.
Every second saved by forgoing continuous manual input adds up. This relieves stress, resources and enables testing to be streamlined. Some companies are able to automate most of their mobile testing. Depending on the type of app being tested, at least 80 percent of it can be automated, however, factoring app functionality on different devices and platforms, there is often a need to supplement it with ad hoc manual testing.
Ensuring the Mobile User Experience
With new devices coming to market everyday, it is possible that developers can miss details, which is why it is important to be aware of what users are saying. Users are the ones who will experience the app on different devices and need to put up with compatibility issues, bugs and glitches. Before releasing new updates and patches, developers should test them to ensure that the app works across the board keeping in mind the diversity of devices, software and mobile OS’s. Not addressing user comments can cause considerable user backlash and lead to a decline in ratings.
Leveraging testing throughout the application development process can help you reap the benefits of a positive app rating as soon as you get approved. While you can’t always foresee one hundred percent of the issues that may occur with your mobile app, with continuous testing in place you can manage negative feedback quickly and efficiently, ensuring that the functionality and overall performance of your app results in positive ratings in the app store.
This content is made possible by a guest author, or sponsor; it is not written by and does not necessarily reflect the views of App Developer Magazine's editorial staff.
READ MORE: article from july issue...