Friday 17 August 2012

Mobile Application Testing

Unique Challenges in Testing

Mobile business applications can be classified into standalone applications and enterprise applications. Standalone applications reside in the device and do not interface with external systems. Conversely, enterprise applications are built to perform resource-intensive transactions that are typical of corporate computing environments. Enterprise applications also interface with external systems through Wireless Application Protocol (WAP) or Hyper Text Transfer Protocol (HTTP).

The unique challenges in testing mobile applications arise from the diversity of the device environment, hardware and networking considerations, and Rapid Application Development (RAD) methodologies. These challenges are outlined below:

Diversity of the Device Environment
The realm of mobile computing is composed of various types of mobile devices and underlying software (hundreds of device types, more than 40 mobile browsers). Some of the unique challenges involved in mobile testing as a result of this condition are:

  • Rendering of images and positioning  of elements on the screen may be unsuitable in some devices due to the difference in display sizes across mobile devices and models. Exhaustive testing of user interfaces is necessary to ensure compatibility of the application.
  • Mobile devices have different  application runtimes. Binary Runtime Environment for Wireless (BREW), Java, and embedded visual basic runtime are just some of the runtimes commonly available in mobile devices. Applications should be tested exhaustively for the variations specific to runtime.

Hardware Configuration & Network-related Challenges

The mobile environment offers lesser memory and processing power for computing when compared with the traditional PC environment. Unlike the network landscape of the PC environment, the network landscape of a mobile device may have gateways (access points between the wireless internet and the cable internet). Some of the drawbacks of diverse hardware configurations and the network landscape of mobile devices are:

  • Limitations in processing speed and memory size of mobile devices lead to variations in performance of applications across different types of devices. Testing programs should ensure that the applications deliver optimum performance for all desired configurations of hardware.
  • Some devices communicate through WAP while some others use HTTP to communicate. Applications should be tested for their compatibility with WAP-enabled as well as HTTP-enabled devices.
  • Network latency (time taken for data transfer) will be unpredictable when applications communicate over network boundaries, leading to inconsistent data transfer speeds. Testing should measure the performance of applications for various network bandwidths.
  • Gateways in a wireless network may act as data optimizers that deliver content more suitable for specific devices. This data optimization process may result in decreased performance for heavy traffic. Testing should determine the network traffic level at which gateway capabilities will impact the performance of the mobile application.

Rapid Application Development (RAD) Methodologies


In order to deliver the benefits of faster time to market, RAD environments are used for mobile application development. Since the time taken for development is reduced by the introduction of RAD tools, builds will be available for testing much earlier. Therefore, a RAD methodology imposes an indirect pressure on testing teams to reduce the testing cycle time without compromising quality and coverage.

Mobile Application Testing


The critical factors that determine the success of a mobile testing program are:

  • Use of test automation
  • Use of emulators and actual devices
  • Testing for mobile environment and application complexity

In this section, we discuss these critical success factors and present our recommendations for mobile application testing.

Use of test automation


Testing of mobile applications is traditionally done by manual execution of test cases and visual verification of the results. However, it is an effort-intensive and time-consuming process. Automating the appropriate areas of a testing program can yield quantifiable benefits.

Use of emulators and actual devices

Emulators can be beneficial for testing features of the application that are device independent. However, actual devices should be used for validating the results.

Testing for mobile environment and application complexity

Due to diversity in mobile hardware and platforms, testing programs need to incorporate GUI and compatibility tests

No comments:

Post a Comment