Testing and quality assurance (QA) are very important part of any development lifecycle, more so for the mobile platforms. In many ways, testing of mobile apps is harder than the desktop or web programs, because of the diversity of the target platforms, innumerable options of the system specs, and the added complexity of the interface and input mechanisms like touch, keyboard, track pad, trackballs etc. Having said that, it is extremely important the process is enforced with rigor, since these products are subject to a very personal interaction with the users, and therefore can frustrate them very fast if they don’t meet their expectations.There are many types of mobile application testing (MAT), and each has a different goal. These are not mutually exclusive, and for the dev team to be certain that everything is fine, all of these must be done.1. Usability (UT) – UT is focused around ease of use. It is not just functional assessment, but also a convenience test. Here the considerations are the visibility of the text (in different languages and fonts if they are an option), navigation within the app, verification of the functionality, and tool tips etc. 2. Compatibility (CT) – CT includes confirming that the code works as desired on all target devices, OS, screen sizes, and resolutions. Also, data flow and format to and from integrated system (if any) is verified. Another thing that is checked is if there are any clashes with any other applications that might be installed on the device.3. Interface (IT) – All the interfaces in the design, along with the buttons, checkboxes, radio buttons, text boxes, screen flows, gestures etc. are validated for the desired functionality here. The user experience with the program gets evaluated and reviewed.4. Services (ST) – Any piece of code running on a smart device uses and interacts with a number of services, both local to the device and remote on a server in the datacenter, or the cloud. It is important to understand the behavior in one or more of these services are not available, because the user might run into those situations.5. Low level resource (LLRT) – Just like it uses services, an app also requires local device resources like memory, CPU, and storage. How these resources are managed by the code is important, because it can impact the overall performance of the device. Testing of memory being released as required, temporary file management, garbage collection etc. are the scope of LLRT. 6. Performance (PT) – This includes the performance on different connectivity mechanisms like wi-fi, 3G and 4G, different device configurations, CPU cycles, memory leaks, and effective utilization of device features like the GPS, the camera, accelerometer, and other sensors. It is not only important that the app performs well. It is equally important that the resources used are freed when not used.7. Operational (OT) – OT is focused on the behavior in case of non-standard circumstances. It covers scenarios like what happens when the battery dies during app usage, data losses during upgrades, call / message / alert received during usage, recovery from a crash etc. 8. Security (ST) – This includes encryption/decryption techniques used for sensitive data communication, checks for multi-user support without interfering with the data between them, checks for access to files saved in the app by any unintended users, detect areas in tested application so that they do not receive any malicious content.