RSS
Amol Umate

Mobile Application Testing - Part I

Mon, Oct 17, 2011

Amol Umate

With Mobiles becoming a day in and day out affair for everyone, and mobile applications becoming a norm of the day, the organizations are compelled to integrate then into the mainstream computing environment with the web and the enterprise applications.The adorable part of the mobile applications is that it delivers complex functionalities similar to web and enterprise applications on devices with limited computing resources. It helps users stay connected and use the basic servcies with ease. However the applications are not very easy to develop on mobiles as the devices have their own interface requirements, flows and infrastructure dependencies. Moreover porting and maintaining the mobile applications also needs lotsof efforts.

How Mobile Application Testing is different?

While Enterprise testing only concentrates on the functionality and Performance part and there is very little variance on the client interface. In mobile application testing, other factors are also considered such as, operating system, handset manufacturers, devices, wireless carriers as well as the position or location of the device on which the functionality is used.

Challenges in Mobile Application Testing

Unlike the PC-based environment, the mobile environment comprises a number of devices with diverse hardware (physical properties), software configurations (platform, OS etc.) and communication intricacies. You can’t certify that the functionality on one device, will work on all other devices with same properties.

This diversity in mobile computing environments presents unique challenges in application development, deployment and quality assurance, thus requiring unique testing strategies for different platforms.

Few challenges are:

  • Operations with memory control of memory intensive leaks
  • The intensity of power consumption, sensitivity to the charger
  • The use of disk space, stability in the limited space on the drive, logging, work with memory cards
  • Support for various screen resolutions, portrait and landscape modes
  • Different standards compliance for different platform (Symbian Signed certification, Java Verified testing, etc.)

Various types of testing

Functional testing

Functional Testing ensures that the mobile application is behaving as per the requirements. Majority of the testing is driven by the user interface and call flows. However the specialized devices with emerging technologies like smart phones having good processing power, support multi-tasking applications with functional and background processing. This has multi-fold increased the functional testing. The complexity increases when this basic functional testing is combined with other types of testing, like port, laboratory, performance, and memory leakage testing as mentioned below. Due to unavailability of actual connectivity and required infrastructure, the mock/prototype and simulated testing further add the complexity.

Port Testing

This type of testing is done to test the same functionality on different devices with different platforms. It can be classified into 2 categories:

1. Device Testing

  • The testing is done on different devices with same platform.
  • There are chances that the base platform/OS version can change. But it is mostly avoided. However, in case the OS version gets change for same platform, then major testing is recommended in which the complete testing is done again for the variable OS version.
  • Based on the device properties, specific testing scenarios are identified in which testing is done. This is termed as minor testing.

2. Platform Testing

  • Platform testing is done on devices of different platform (OS). For example, functionality testing on device with J2ME to device with BREW platforms. Here because of variable OS architecture, the same application is implemented differently, so complete thorough testing has to be done.

Laboratory Testing

This testing is done specifically at carrier side where the complete wireless network is simulated as similar as the real environment. The actual network problems, which might arise in the real environment, can be identified and resolved in this simulated laboratory. This is very important when application is using voice and/or data connection to perform some functions. Although simulators and other test tools do support simulation of such type of networks. But essentially they are not reliable enough to provide the complete assurance about the real-time network issues. Hence it is not advisable to launch a mobile application based on testing conducted only on simulators.

Performance Testing

Performance testing means the behaviour of the application under certain conditions like low resources (Memory/Space), multi-user simultaneous access to application servers; time taken in data transfer is high.

The applications performance may be affected from two sides; Server side and Client side.

The major performance issues on the server side are:

  • Variations in Response times
  • Streaming resource intensive multimedia packets
  • Delays/Drop in delivery of packets
  • Applications crash
  • In-efficient use of resources

The major performance issues on the client side are:

  • Applications behave differently on various platforms and handsets
  • High Memory and CPU consumption
  • Mobile application too slow to load
  • Application causing battery drain out

To avoid these issues we should do the following

  • Use extensible load testing tools which support custom protocol
  • Include performance testing early in the cycle
  • Using stubs to simulate external components
  • Record work flows using mobile clients or simulators
In next blog, we will continue our discussion about the types of testing performed for mobile applications.

Popularity: 17% [?]

, , , , , ,

2 Comments For This Post

  1. Jacalyn Says:

    Haha, shouldn’t you be crhagnig for that kind of knowledge?!

  2. Bob Binder Says:

    I recently decided to take a fresh look at mobile app testing. It’s clear to me that mobile app devs need an approach to testing that is both practical and effective.

    So, I’ve developed a new course How to Test Mobile Apps, offered online. The backstory of the course is at
    http://www.robertvbinder.com/blog/the-genesis-of-how-to-test-mobile-apps/

    The course is aimed at developers with no testing experience who will do manual testing. BTW, it incorporates Buwalda’s action word concept an new test model.

    For more about the course, go to
    http://www.udemy.com/how-to-test-mobile-apps/

Leave a Reply