As per Statista, there are approx. 2.8 million apps on Google Play- with 1300 apps being uploaded daily. Given the scale of the uploaded apps – it is clear that Google’s Android is not just most popular mobile platform in the world, but the most widely used platform as well. Android expansion just continues to grow steadily.
Keeping the above facts in mind, it can safely be said that Android is the largest operating system in the world. However, at the same time- Android is fragmented- there are tons of devices and versions that your app must be compatible with. Android virtually being the biggest OS in the world, it is necessary that crucial facts regarding Android app testing must be highlighted.
Crucial Points in Android App Testing
Most of the idiosyncrasies of Android apps are rooted from the open-source nature of the platform. As Google allows mobile manufacturers to use and customize Android as per their requirements- the diverse versions of Android power various mobile devices. This results in a considerable challenge for testing engineers.
- Android is Fragmented
The most known models and manufacturers are the ones that usually predefine the OS versions popular in the region. For e.g. According to App Brain – Samsung Galaxy S7 and Samsung Galaxy S8 and Pixel Android 7 on Android 6 and 7 are the most used Android manufacturers and model (bound with OS versions) in the United States.
- Supporting multiple screens and densities
Android developers support four pre-defined screen sizes – small, normal, large and extra-large. Thus, testing engineers choose the two opposites in the spectrum- the largest and smallest screen of the listed targeted devices and test the app on them.
The same it is for density for e.g. Samsung Galaxy S5 with 432 dpi is the smallest smartphone screen, meanwhile, Samsung Galaxy S8 with 567 dpi is the largest. According to 1Android development guide – xlarge screens are at least 960dp x 720dp, large screens are at least 640dp x 480dp, normal screens are at least 470dp x 320dp, small screens are at least 426dp x 320dp.
Now that the overall aspects of Android-based mobile app testing are deliberated upon, let’s look at the technical side of testing like – android app testing strategies, methods and types of testing.
Android testing Strategy
Choosing an appropriate strategy relies on the type of the app. A native app is depended on the mobile platform capabilities, therefore testing native apps on Android needs to focus on UI testing and integration with Android OS. In this instance, Android community UI guidelines may help. Most of the Android testing specifics are regarding the app non-functional elements.
Non-functional testing for Android Apps
Non-functional testing refers to testing the features of a software application that may not be associated with the defined user function or action. This goes well beyond just performance testing, they also comprise of –
- Uninstallation and installability testing
One more critical aspect is handling updates. When the app requires an update, the user must receive the needed / relevant notification. As Android apps update very frequently, the user loses track of space available on the device- hindering the UX.
Two critical things installability testing confirms is whether the app components are correctly installed and if the updates are popping up designated time intervals.
- Device and Power Efficiency
While there are battery saving modes and standby mode for saving power on devices when accessing network, these advanced features are only available in Android 5.0 and versions after that. For older versions that do not have these features, it is necessary to assure that the app is closed on the user’s command.
- App behavior during connectivity issues
Therefore, testing engineers must always check if the app handles conditions like transition (WiFi-3G/4G) on the go, intermittent connection or loss of connection. In such cases, manual testing efforts are the most essential as they simulate real-life situations better.
- Recovery Testing
- Security issues
Manual and Automated Android App Testing
Android developers endeavor to deliver quality apps speedily and efficiently. Initially, this makes automated testing a reasonable choice to minimize time/efforts employed on testing. It is not so simple, however, as mobile apps are generally compact- a manual testing is usually more efficient.
Instances where automated testing is necessary (like deadlines, wide market targets & device coverage, comprehensive compatibility work), experts recommend using automation testing to 1) test suites that cannot be run manually, like performance testing for example 2) automate the scripts for regression test cases. If the regression tests are repetitive – automated testing is more appropriate.
If the application contains new functionality, manual testing is more suitable. Plus, if the application requires testing once or twice- you must do the testing manually.
Optimal test automation may take up more than 70% of testing efforts in a project, even if the above list doesn’t look that long. There are some testing tools like Espresso, Roboelectric and Android Studio suggested by Android developer community as well as tutorials that enable automated testing.
Android app testing issues are due to its widespread popularity across the world as well as the specifics of the platform, referring to the screen size/ density variations and fragmentation. The testers face these issue on basis of statistics (based on regional location) and choosing the most used/popular manufacturers and models, OS versions in a particular region. They select the devices with largest and smallest density per inch (dpi). Concerning platform specifics, testers should pay attention to non-functional elements of Android apps- like installability, deletion, power/device efficiency, security and recovery testing and connectivity issues.
Furthermore, when choosing an appropriate strategy for Android app testing, testers should depend upon the peculiarities as well as project specifics to make sure that the testing is efficient leading the project success.