Monthly Archives: March 2017

How Should You Test A Mobile App?

A buggy mobile application can pose serious problems, and not only for the person who downloads it on his/her device. Researches have shown that, nearly 45% of users immediately uninstall mobile applications that are apparently buggy (causes battery drain, overheating, screen freezes, lags, etc.). In addition, over 95% people actually take the trouble of leaving a low rating (and a bad review, to boot!) for that app at the store. This negative word-of-mouth publicity, in turn, kills off all chances of success of the concerned mobile application – and soon enough, it becomes a ‘zombie app’ at the stores. Before submitting any new app, developers need to thoroughly test it. Here are some useful pointers on how to go about it:

  1. Focus on the core functionality – Each mobile application needs to have a core feature – the reason that would motivate users to give it a try. App testers need to ensure that this core functionality is implemented and accessible in an optimized manner in the app. The software should not have too many features – which would dilute the very purpose of its existence, and would confuse end-users as well. If the most important feature of an app is incorrectly implemented and/or too complicated, it would be a recipe for failure.
  2. Factor in the varying screen sizes – This is a particularly important factor for Android app developers. Phones of varying screen sizes are available (launched by the various OEMs) – and a new app must deliver the same performance across all of them. There should not be any cases of portions of app screens getting hidden, or ‘bleeding out’ of the display area. The placement of in-app ads has to be carefully tested as well. Testing iOS applications is easier in this regard, since iPhones come in a standard size.

Note: There should be separate, customized versions of an app for mobile phones and tablets (and smartwatches, if required). Using the same version across different smart devices generally does not yield an optimal experience.

3. Consider the OS versions and backward compatibility – While testing a mobile app on emulators, there is always an outside chance of forgetting the various versions of an operating system it is supposed to be supporting. Testers need to find out the backward compatibility limit of an app (i.e., the oldest version of the OS for which the app has been built) – and make sure that it is working properly on all the target versions (for instance, iOS 6.0 or later). Once again, the extreme fragmentation in the Android market poses a greater challenge. At any time, developers have to test a mobile app on 6-8 OS versions here.

4. Test on actual devices – Testing applications on iOS simulators and reliable Android emulators (like, say, Genymotion) is all very fine – but developers need to get a first-hand feel on how an app performs on an actual device. This brings to light the importance of any good mobile app company having the latest smartphone models (iPhones and Android phones) available for testing. In addition to phones, testers should also have access to tablets, phablets, smart TVs and wearable devices to test apps, as and when required.

Note: Ideally, Android testing should start simultaneously on at least two devices. The testing devices should be running on different OS versions.

5. Network speed and offline performance – If an app requires strong wifi connectivity to work properly, developers need to inform that to the users at the very outset. An important aspect of the capabilities of a new application is how it performs under varying network connectivity speeds. In case the app loses its main functionality in areas with no coverage (e.g., Uber or Facebook), it should notify the users about the same. On the other hand, applications that do not require internet for their core feature (for instance, Candy Crush needs internet, but only for playing with FB friends) should retain their functionalities even while working offline. Testers also have to be mindful about how the app ‘behaves’ when the cell signal drops due to any reason.

6. Replicate the actual production environment – An app should be subjected to the same data loads in the test environment, as it is expected to perform in the actual world. For example, if an application is supposed to work in 15 countries and corresponding languages, testers need to check it for the entire data-set – and not only for 2-3 sample countries. Unless the real-usage scenario is replicated during testing, it would be impossible to find out if there are any glitches in the app. Mistakes can remain undetected in a scaled-down, ‘dummy’ version.

Note: At times, an app can seem to perform fine, when working with small data volumes – but show lags when the full data load is applied. Testers have to be wary about that.

7. Mind the battery monster – Both iOS and Android have built-in tools for monitoring the battery consumption of each app installed on a device. According to a recent survey, more than 56% smartphone-owners revealed that they have faced issues with apps that cause heavy battery-drainage. Prior to submission, app developers must make sure that their software does not hog too much of battery juice or memory space. Smartphones do not offer great battery performance in any case – and no app is worth carrying a charger along all the time!

8. Go for cloud-based testing – In addition to test simulators/emulators and actual devices (as highlighted in an earlier point) – apps should ideally be tested in the cloud environment as well. That would make it simpler of the QA teams to check the software on a wide range of virtual devices as well as platform versions. It is close to impossible for any app company to have ALL the target devices available for testing – and cloud-based testing can plug that gap.

9. Integration with other apps/device features – In many cases, a new application might have to interact with another app – to deliver its services. A classic example of this would be the various image editor apps, which collaborate with the built-in camera app of devices. Depending on the nature of an app, testers need to find out whether it can work as desired with the other applications. In addition, a newly downloaded app should not adversely affect the performance of a device (or of other applications) in any way. A great app is one that seamlessly fits into the users’ handsets.

10. Emotional engagement is a must – There are 2.2 million apps in Apple App Store, and well over 2.6 million apps in the Google Play Store. Developers have to provide enough motivation to users to actually download a new app – and stay engaged with it over time. This is precisely where the emotional quotient of an app comes into the picture. Testers should ideally take the help of a carefully chosen focus group to find out whether final users are indeed likely to feel the ‘need’ of using their application. There are plenty of apps that are launched only once on devices – and a vast majority of them lack in this emotional engagement factor.

Note: An app like Pokemon Go serves as the perfect case study of how emotional connections can be built with users.

11. Test-driven development – Test-driven development (TTD) is a vital cog in the overall wheel of agile app development practices. Android or iPhone app developers should not wait for an application to be built completely – before starting out with the testing. Instead, the app should be tested at every stage of the development process – right after a prototype or a minimum viable product (MVP) is ready. That way, it will be easier to flush out bugs and errors…and testers won’t be burdened with too much during the final testing phase. The time-to-market, in turn, will be shorter.

12. Follow the platform-specific guidelines – Developers also need to carefully abide by all the guidelines and regulations specified by Apple and Google – to minimize rejection risks as well chances of user-dissatisfaction. Both the platforms offer detailed ‘Human Interface Guidelines’, along with other ‘Developer Guidelines’ (Apple developers have more guidelines to follow than their Android counterparts). Right from the UI features, graphics and animation, loading speeds and in-app navigation, to app monetization strategies, ads and in-app purchases – everything has to be planned according to these guidelines.

Bonus Tip: Developers working on apps with multi-lingual support have to be extremely careful about the content published in the different versions of the app (everything should be consistent across versions). What’s more, there are several regional conventions and practices to consider – like the format in which dates are written, the date/hour format, and the visual elements (images/icons/videos). The varying socio-cultural backgrounds of users from different geographical areas must be factored in as well.

Excelling in the field of mobile app development is all about living up to user-expectations with every new application. Being thorough while testing apps is vital for this – and the tips shared here should come in handy for developers/testers.