There are 3 types of mobile applications; native, HTML5 (web) and hybrid
Native apps: are specific to a given mobile platform (iOS or Android) using the development tools and language that the respective platform supports (e.g., Xcode and Objective-C with iOS, Eclipse and Java with Android
Hybrid apps: make it possible to embed HTML5 apps inside a thin native container, combining the best elements of native and HTML5 apps.
Testing Strategy for Mobile Apps
When testing mobile applications one has to focus on the following for complete test coverage.
1. Functionality: Ensuring functionality provided by the application works.
2. Usability: To make sure that the mobile app is easy to use and provides a satisfactory user experience to the customers.
3. Security: Testing an application to validate if the information system protects data or not.
4. Offline capability: testing if the application works with / without network connectivity.
5. Interoperability: Testing on various devices & operating system versions
6. Performance: UI responsiveness, peak load, transaction response time etc
7. Conformance: To the standards laid out by Apple & Google
8. Various Network Operators: Testing on CDMA and GSM networks
9. Network configuration: 2G, 3G, 4G or WIFI
Test Environment & Device Selection
One of the biggest item to plan is where all to test the mobile application and what to utilize for testing. A range of options exist.
First and foremost, you must plan for the devices (hardware), operating system and the browser. Create a matrix and mark which ones you’d like to target.
Next you must decide how you are going to test on these devices. Are you going to utilize emulators, real devices (that you buy yourself) or online mobile labs? Each of the 3 options has its pros and cons so choose and plan carefully.
Another critical aspect of mobile test planning is to decide on the tool if you plan to automate testing. Two kinds of tools are available for mobile test automation
Object based: automation by mapping elements on the device screen into objects. This approach is independent of screen size and mainly used for Android devices since Android devices come in various sizes. E.g.: Ranorex, Jamo Solutions
Image based: create automation scripts based on screen coordinates of elements. E.g.: Eggplant, Perfecto Mobile
To conclude, you cannot replicate desktop or web testing practices to mobile testing. The first step for testing mobile apps effectively is to realize that mobile application testing is very different from traditional testing (desktop + Web) because of the way users interact with the mobile applications. Add to this complexity the mix of devices, operating systems and browser. Users use touch to interact with mobile applications, rather than the traditional point-and-click used to navigate desktop and web applications. A key challenge therefore lies in testing these interactions (touch) in a repeatable and consistent manner across this fragmented mobile space.