Maintaining quality of mobile apps under the current market dynamics is a challenging task. With numerous OS, multiple platform versions, networks, and hardware, the mobile market is highly unpredictable and fragmented. Multitude of permutations and combinations of android devices in addition to multiple iOS operating systems and screen sizes clutter the marketplace.
In such a scenario, developers literally enter the zone of turmoil when they need to create newer versions of the same mobile app, and ensure that they work correctly with diverse Operating Systems. Furthermore, development of different versions of the same OS adds to the already complex state of affairs. The task of testers goes well beyond the stated overwhelming task of developers, and even with some amount of pruning, an exhaustive testing effort is required to achieve the intended behavior of the app in all operating contexts. Let us reflect on some of the consequences of this cumbersome testing process.
Evils of Fragmentation
Compromised Product Quality: The complexity involved in making an app compatible across a range of OS and devices increases the probability of bugs. Additionally, cost considerations may lead to the release of suboptimal versions of the app.
Small players are sidelined: The competition is reduced due to the inability of smaller players to deal with the costly app testing process, thus developing apps consistent with a limited number of devices and OS, hindering the overall market growth.
Lengthy Release Cycles: Testing the app for each and every variation is a herculean task and may lead to a longer software development life cycle.
There appears to be no distinct solution to this crushing problem, however, adherence to certain guidelines may help reduce the severity of the impact of fragmentation.
Dealing with Fragmentation
Test Automation: Choosing an automation tool can lead to more efficient, secure, and consistent app, reducing the cost and time-to-market. A multi-layered approach to automated testing can be used to quickly capture bugs and errors. Some popular automation tools that can be used are Appium, Calabash, MoneyTalk and Robotium.
Target your audience: Rather than developing and testing an app that can address the full range of devices and operating systems; a viable option is to initially understand and analyze customer data and target few right devices and compatible operating systems to reach your audience.This can save a lot of effort and cost. This is definitely not a painless task, but with increasing fragmentation, a ‘catering to all’ strategy would not suffice and will prove heavy on your pockets.
Crowdsourced Approach: App developers may contract out the testing process to third party vendors who have the resources, and can perform testing in a more realistic environment including testers across different locations. The mobile devices can be linked to the cloud, and are accessible from anywhere, anytime, through a web-based application.This enables quicker and cost-effective test results throughout the mobile app development lifecycle.
The course of action looks helpful, but treading the above path is not easy.
Though the solutions appear feasible, however, there are few ordeals to overcome.
First of all, complete automation is not possible, and some amount of manual testing is critical. Automation tools may run seamlessly around variety of devices and emulators but testing with some real devices in real networks is also mandatory
Secondly, finding your exact target audience and accordingly deciding the devices is not a straightforward task, and is a neither a time-saving resolution.
Thirdly, relying on third party vendors may prove to be a costly and ineffectual process.Cloud- based testing is subject to cloud vulnerabilities, and companies or third party vendors must have a good understanding of capabilities of the cloud and how to optimize them, or else, all their testing efforts will be worthless.
Finally, the concept of fragmentation has not yet fully evolved, and many definitions of fragmentation exist in the testing world; and developers and testers need better tool support to extract the relevant information related to fragmentation and fix the inconsistencies along the development process of the app.
In a nutshell, developing mobile apps that can work across the whole range of OS and devices can be an extremely challenging and time-consuming task. The Android OS is already extremely fragmented, as compared to the iOS, with a multitude of OS versions running across a wide variety of devices, and in future, developers may build apps with a potential to reach even more customer base through highly customized devices and better OS versions. This simply reflects that fragmentation problems are going to mount up further with no discrete solution in view, and more research is required on the topic to come up with better and more powerful tools.
As of now, the most probable way to accelerate mobile app testing by overcoming fragmentation issues calls for the implementation of robust automated testing across a variety of targeted platforms via an optimized approach to app testing on the cloud, and on real devices in real network environments, wherever possible.