Testing Mobile Apps: Addressing the Challenge
Mobile enterprise apps are complicated to build and test because of the wide variety of devices supported by some companies. An automated approach can help simplify the process.
By Shoeb Javed
Enterprise mobility is becoming increasingly important as companies move to provide mobile users with access to critical business applications in order to accelerate employee productivity and enable real-time decision making, document access and analytics. Typical use cases for enterprise mobility apps include bring-your-own-device (BYOD) programs, field sales applications, field service applications and consumer-facing applications in the retail, banking, insurance and healthcare industries.
For example, field service reps can check the warehouse for repair parts while they are visiting a customer. Sales reps can enter the results of a customer call while they are walking from the customer’s site to their car. Marketing managers will access corporate analytics on their phone while they are in a meeting.
A goal for many companies is making it possible to accomplish anything that can currently be done on a company networked computer on a smartphone or tablet. This requires building enterprise apps on mobile devices and testing them to make sure they securely deliver the functionality to empower the new mobile workforce.
Testing Mobile Apps: Why It's So Hard
Mobile apps are generally more complicated to build and test than desktop apps because of the need to support a variety of devices used by employees. Most companies support at least the Apple iOS and Google Android OSes, and some also choose to support Blackberry and Windows Mobile. Multiple versions of each operating system must typically be supported, particularly on the Android platform where uneven support for OS upgrades means that older versions are still widely used.
With most companies moving many business processes to mobile platforms, many variations of each business process to validate and many different devices to support, the mobile testing challenge is exploding. Simply managing the inventory of test devices can be a difficult challenge. Suppose that you support 10 device variants for each new release. If you have a team of 10 testers, then each tester will probably focus on testing particular apps across a range of devices. In that case, each tester will need to have access to all 10 devices.
While software applications exist that simulate the operation of a mobile device, these applications are limited by the fact that the apps are not running on actual devices. So, for example, they do not take network latency into account or do not allow other hardware-based functions of the device to be exercised.
The current most common approach to testing mobile applications is a manual process, with testers armed with devices in their hands pushing buttons to validate business processes. With this approach, testers need to repeatedly test each business process for each of the devices that are supported.
Usually mobile testers will only test the mobile part of the app, leaving back-end testing to another group and running the risk that the entire end-to-end business process is not covered comprehensively. Having a central repository for all mobile and back-end system tests where they can be easily accessed by the entire team is also a challenge. Most automated testing applications for mobile apps require that tests be developed from scratch for different devices and redone when the app changes.
Emerging Approach to Automated Testing
An alternative automated approach involves hosting real mobile devices in the cloud that are configured so that the user can access both hardware and software functions from a PC. The tester interacts with the device by pushing buttons or executing gestures from their PC. Rather than interacting with a simulation, the tester is interacting with an actual device in the cloud. This form of automated testing is representative of what the end user will experience on a given operator network so it provides accurate end-to-end testing results.
The device is wired so that the tester can not only run apps but can run them over a real cell network, change the SIM card to switch to a different cell network, turn the device in different orientations, take the battery in and out, and other such functions. Only a single device in the cloud is required to service all of the company’s testers, regardless of their location. Upgrades and changes can easily be performed on the real mobile devices and only need to be performed once.
Testers can build tests by interacting with the mobile device, pushing buttons, entering text and swiping the screen. Test processes can be defined and stored in a structured form that is automated, maintainable and reusable. The software produces detailed documentation, supporting regulatory compliance and ensuring that business process documentation is kept current.
Tests can also be developed to be as uniform as possible across different device types so that one test can be used to cover multiple devices as much as possible, further reducing the amount of maintenance.
Changes to business processes, transactions, screens and fields are automatically identified as to their nature and impact on the automated tests stored in the centralized repository. Tests can be easily adapted as changes are made to the underlying applications with a low level of maintenance required. Changes can be implemented on a global basis to keep test processes in sync across the enterprise.
About the author: Shoeb Javed is chief technology officer at Worksoft, an SAP partner and global provider of business process validation software for enterprise systems.