mobile app testing guide

11
2015 Mobile App Testing Guide Basics of Mobile App Testing

Upload: mobilepundits

Post on 27-Jan-2017

228 views

Category:

Technology


0 download

TRANSCRIPT

2015

Mobile App Testing Guide

Basics of Mobile App Testing

Introduction

Technology is on peek, where each and every day we set a new benchmark. Those days are gone when computers were just a machine and only few people were using them. In last 2 decades we have seen massive change in computers and other computing devices not only in sizes but also in functionalities. Today computers and mobiles are like our virtual servants who follow our commands. They have changed the human life, their way of thinking and made this world a place where nothing is impossible. Mobile technology was a revolution that has changed the technology as well as the human lifestyle forever. Smart devices are now in trend where N number of tasks can be easily done by these devices. Here in this tutorial I am not going to list out those things because you people know better than i do. Smartphone are not only considered as a mini computer but also offers vast capabilities to the users. Apps are the soul for a Smartphone that can make a Smartphone even smarter. Here in this article we are going to cover all aspects of mobile app testing and its importance for a successful mobile app.

Mobile App Testing

Mobile apps come either pre installed in mobile devices or can be installed from mobile software distribution platforms. So Mobile application testing is a process in which application software within a hand held mobile device tested for its functionality, usability and consistency. This is a long run process which starts from the initial development phase of an app and each and every developed component tested throughout the process. The final piece of software must be high performance, error (bug) free application. Source: Wikipedia

Why Mobile App Testing

Today Smartphone is a very common term for us where we have a huge variety of mobile devices in the market. Many mobile OS are available in the market with millions of mobile applications on their app stores. As developers developing apps for users it’s very important to test them for 100% efficiency. There is no margin for errors in an app because of negative marketing by the users and all of your investment will lost just because of few silly bugs. On the other hand developers are also humans and there is always an element of risk of errors. A proper product testing can minimize them to make a successful bug free application. The reasons why mobile application testing is required 1. To test a variety of mobile device hardware 2. To test a variety of mobile platforms/ Operating systems 3. To test a variety of network carrier 4. To test a variety of mobile screen sizes

Category of Mobile App Testing

Manual testing

Automation testing

Manual testing is a process in which a tester uses an application and goes through with all

functionalities as an end user to check the behavior of the mobile app. Generally, to ensure the correct behavior of mobile app, tester follows the written test plan that is actually a set of test cases. Test cases are set of conditions under which a tester can determine whether an app or one of its features is working properly or not. Stages of manual testing:

1. Unit testing 2. Integrating testing 3. System testing 4. User acceptance testing

Unit testing is a testing in which an individual unit of a source code is tested- for example: function, class, procedure and interface. This is the smallest testable part of the application. Integration testing is a testing in which individual units of an application or source code combines together and tested as a group. In simple words integration testing is a process in which tester test the interfaces between the components. Integration testing comes after unit testing and before system testing. System testing: Testing in a complete integrated system to evaluate the system compliance with its predefined specification and requirements is known as system testing. User acceptance testing: This is considered as last phase of the mobile app testing which ensures the application quality for the real world scenario. In this testing the actual users of the mobile app test the app for the real world to verify whether the app can handle the required task in the real world or not. It is also known beta testing or end user testing.

Automation testing: Automation testing is a process in which tester controls the execution of tests

through special tools and software and compare the actual results and expected results. Types of approaches in Automation testing,

Code driven automation testing

Graphical user interface testing

API driven testing

Mobile Testing

Hardware testing

Software or Mobile app testing

Hardware testing is a mobile device testing including all hardware, screen size, resolution, camera, processes, memory, Bluetooth, Wi-Fi etc. On the other hand testing applications that are running on a particular mobile device is known as the Mobile application testing. Further mobile apps can be categorized into three parts,

Native apps are developed to use on a particular mobile device or platform. They have their own development environment and development languages.

Mobile web apps are websites or apps that can be accessed through the mobile web browsers like Firefox, opera or chrome by connecting through mobile data network or WIFI.

Hybrid apps are the combination of native mobile apps and mobile web apps that can be accessed through different mobile devices and based on the web technologies like HTML5 and CSS3.

Types of Mobile Application Testing

Usability testing: It is all about user satisfaction and user experience. In this type of testing testers make sure that the app is easy to use and how to increase the user experience. Compatibility testing: There are N numbers of mobile devices, screen sizes, browsers and operating systems versions in the market. In this testing tester ensures the compatibility of a mobile app into all the above mentioned variations of the mobile and their types. Interface testing: In this phase of testing we generally test all the basic interfaces of an app like buttons, menu, navigation, history, bookmarks and basic flow of an app. Services testing: Testing the basic services of an application in both the modes (Online & Offline) Performance testing: Testing the performance of an application on different conditions is known as performance testing. Testing mobile app performance in low battery condition or monitoring their performance on 2G, 3G and Wi-Fi connectivity separately. This is one of the most important testing that ensures the overall effectiveness of a mobile app. Security testing: Generally mobile apps contains lots of user’s data and this type of testing ensures that the information system protests data or not. This is one of the most important issues these days in the mobile app development. Security testing is all about securing app and other user related information from the unauthorized access.

Installation testing: This type of testing ensures the proper installation and uninstallation of an app on different devices. Low level resource testing: This type of testing validates all types of resources usage by the application. Memory usage, data base and temporary files behavior are some of the examples of this type of testing. Operational testing: Backup, recovery and up gradations are some of the common issues covered in this type of testing. Here in this testing tester validate the backup and recovery plans in the low battery conditions or validate the data loss conditions while updating an app on app stores.

Mobile App Testing Strategy

Mobile application testing strategy is your plan that you are going to follow throughout the testing process. This plan ensures the quality and performance standard for a mobile app. Selection of devices: This is one of the most crucial stages of testing where we have to make a market research for the mobile devices. As we know the fact that today market is full of different devices but which one you want to target is totally up to you. Sometimes this decision is unto your client where he or she has to decide the desired device. Generally popularity factor matters where people pick the most popular devices from the market or you can choose the devices which best fits in your application scope and usage. Emulators: Emulators are software where testers can check the display of their mobile apps on different mobile devices. In simple words emulators help to test mobile website or mobile app on different mobile and tablet devices through your web browser. They simply duplicate the looks and features of a device in your web browser remotely. Emulators ensure the quality and looks of an app from the initial stages of the mobile app development and testing. There are a wide variety of emulators,

Mobile emulator

Browser emulator

Operating system emulator

Test Cases for Mobile App Testing

Some of the sample test cases are given below for Mobile app testing (Android, iPhone & Windows) Generic test cases,

1. Battery usage, while running an app 2. Speed of the application, how quick app loads with all features while comes in action 3. Data requirement, how much data it requires to download 4. Memory requirement, how much memory consumes to use the app 5. Functionality of the app

Specific test cases, Verify the app installation/uninstallation successfully Verify the app performance in the low network conditions Verify the app can be resumed in its same point after taking a call Verify that user can reject the call while using an app and again resume the same app point Verify that user can get the SMS alerts while running the app Verify that user can resume back to the app same point after reading the SMS . . . . And many more,

Challenges of Mobile App Testing

Device Fragmentation: Till now millions of mobile devices sold in all over the world and still counting. More than 20 small and big mobile manufacturing companies are selling their mobile devices with android OS. Many screen sizes, resolutions, memory, hardware and other type of diversity is available for android app testing. It is very difficult to test an app for android devices because you have to test on lots of devices. On the other hand iOS testing is little bit easier as compared to android because iOS is not open for all. iOS comes only with Apple products so that testers can easily test iOS apps for all device variations. Connection Type: There are many types of standard for mobile data connection available like 2G, 3G, 4G and Wi-Fi. The performance of a carrier network is very important factor while testing an app because sometimes your device may not be connected to the network or it may be in flight mode. Different OS Versions: Mobile OS like iOS and Android are some of the most popular OS in the market. iOS upgrading is very quick and easy for Apple user because of less fragmentation in the devices. On the other hand Android uptake has historically been very slow and fragmentation is very huge.

Power Consumption and Battery Life: Smartphone’s battery life is a very serious concern for any user and it is very important for an app to use minimal battery. We use many apps daily and some of the apps silently runs on the background and uses the CPU cycles to run. It is very important for developers to develop mobile apps that can run on very low battery consumption and it’s also tester‘s duty to validate the app low battery consumption. Usability: App usability is important because complex apps can frustrate the users. Sometimes device screens are too small and we try to put maximum information on the app in this case your app is for looks so good for a user. Font size and visibility is also important and plays important role in the app popularity. Internationalization: This is one of the most serious issues these days and still need development and analysis in it. Most of the apps designed for global use and it is very important to also care of regional trails like languages, time zone etc. It’s important to validate the app’s functionality when someone changes the time zone. It’s also considerable that sometimes western design may not work with eastern countries audience or vice-versa. Right to left languages is still a big challenge for developers and testers.

Thanks