Total Pageviews

This blog is dedicated to knowledge about software testing.

Thursday, April 15, 2010

Testing Techniques of Mobile Applications

When you use a mobile application, you may not realize the challenges which the team of developers and testers have dealt with before packaging this product for launch. Developing and Testing mobile applications is a complex and challenging task, and involves quite a few brainstorms to deal with many a cases, which are not normally encountered in other platforms like Web and Desktop.

The small screen, the compact device with lots of hidden mysteries around hardware inside it, the power supply, the network connection behavior and many such aspects make mobile application computing an interesting undertaking. This article deals with a few mobile testing generics, which can be applied to any mobile application type on any mobile application in any mobile platform.


Mobile Testing Generics :

Network Related cases
  • Testing in various Network Types
Some mobile applications which require network connection operate on different network types on different handsets.
Examples of such applications are:
  • Search Based applications
  • Financial transactions aiding applications
  • Email/IM based applications.
Such applications should be tested on all possible network types, that the devices for which they are being built for support.

Some network types on which applications can be tested in different devices are:
  • 2G
    • GPRS
    • CDMA
    • EDGE
  • 3G
  • Wi-Fi
  • Different types of plans based on service providers.
  • Testing in various Network Strengths
Mobile applications which operate on network connections should be tested in different network strengths.

Various measures of network strengths would be:
  • No Network
  • Low
  • Medium
  • High
Additionally, testing during network strength change should also be done. Some example of such cases would be:
  • Change of network strength from No Network/Low Network to high Network.
  • Change of network strength from High to No Network/Low Network.
  • Testing in various Network Speeds
Network speed affects rate of data transfer, and hence provides another important set of conditions in which the mobile application should be tested:
  • Low Speed
  • Medium Speed
  • High Speed
Change of network Speed can also cause the rate of data transfer to be affected, and hence form another set of test case criteria:
  • Low to high speed transition during data transfer
  • High to low speed transition during data transfer.

Memory Management Related cases
  • Monitoring Memory Usage patterns
Memory management and Garbage Collection have no specific test cases for them, but need a lot of observation while doing an action which requires memory like creating an object. Multiple combinations of such actions done in different sequences and under continuous monitoring is the key to test memory consumption patterns of the applications. If the application crashes during such cases, normally the reason is an out of memory exception. Monitoring for memory usage should be done on different times. One should observe memory usage pattern as the application is being:
  • Launched
  • Run in foreground
  • Run in background
  • Exit
  • Running continuously for a long time.
  • Monitor memory usage patterns for different number of third party applications installed in device
Free memory available for an application usage also depends upon other applications which are installed in the device. It may so happen that the application may manage memory very effectively when tested stand alone in a device which doesn't have many third party applications, but it may not be able to do so when there are multiple other applications installed in the device. It therefore becomes an important test scenario to observe memory usage of the application when it is running in a device which has multiple applications installed. One should check memory usage patterns when in device apart from the pre installed applications:
  • No other applications are installed. So a lot of free memory available in device.
  • Some third party applications are installed. So lesser free memory available in device.
  • Lot of third party applications are installed. Hence, very less free memory available in device.
  • Memory consumption pattern when applications are in different modes
One should also validate that when multiple applications run in the device, memory consumption of the application is not having any issues, or causing any issues to other application which are running in the device. This leads to another set of test scenarios where in one should check memory consumption pattern when multiple applications are running while the application is being:
  • Launched
  • Run in foreground
  • Run in background
  • Exit
  • Running continuously for a long time.
Battery Related cases
  • Testing in various Battery Strengths
Running of mobile applications in a mobile device gets affected in quite a few ways by the state of battery of the device. It may so happen when in low battery mode, the device automatically goes into silent mode as per setting. Also, during charging the incoming call alert might change from vibrate to ring as per setting. Cases as stated above and many more need to be observed when the application is running in foreground or background for the following device battery strengths:
  • Critical
  • Low
  • During Charging
  • High
  • Monitoring Battery Consumption patterns
Battery consumption rate is a very critical test scenario for mobile applications. No matter how good the application is, if while using it the device battery drains considerably, then the user would surely reduce or stop using the application. Therefore, the battery consumption rate of the application must be observed when its running in foreground or background for a long time. Also, if parallely some other applications are running along with the application in question, this should not affect the battery consumption rate adversely by that application.
Some Other cases
  • Interruptions
Interruptions are activities which can occur parallely in the device while the application is being:
  • Installed
  • Launched
  • Run
  • Exit
  • Upgraded
  • Uninstalled/Deleted
The impact of the interruption on the application needs to be monitored. Some examples
are:
  • Incoming call
  • Receiving incoming call
  • Receiving message
  • Device shutdown
  • Remove battery
  • Camera activated
  • Lose network connectivity and then regain.
Its important to validate that application handles interruptions and doesn't crash as the interruptions can occur in a normal use scenario frequently when the application is running.
  • Debug Build
This is a very important asset for reproducing difficult to reproduce bugs in mobile device. Debug build refers to a build released in Debug mode, which has logs enabled. The enabling of logs is based on a sequence of keys. Once the logs are enabled, all events and actions from the application are recorded when the application is running. This helps in retracing the issue.

*Please Note: Contents of this article have been presented at Software Testing conference at indicThreads in March 2010


Creative Commons License
Software Testing by Indira Pai is licensed under a Creative Commons Attribution 3.0 Unported License.

No comments:

Post a Comment