Monday, 5 January 2015

Different Types of Mobile Application Testing & Testing Tools

With the advancement in technology especially excessive use of mobile devices requirement of mobile testing is increased and hence knowledge related to the concepts of mobile testing is one of the biggest requirement for development of mobile devicesTesting and quality assurance (QA) are very important part of any development life cycle, 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.

Mobile application testing is the process of checking the functionality, usability and consistency of application software developed for various handheld devices. It is important part of application development process.
For this purpose, mobile testing tools are required. Different types of tools required for testing applications of different handheld devices due to-
  • Platform diversity
  • Variety of network connectivity options
  • Short release cycles
  • Varied compatibility level of devices for different applications
Mobile app testing is necessary to analyze the performance of particular application in different situations. This process is carried out before launching apps for customer use. Variety of handheld devices, various numbers of network operators, varying platform and variation in scripting has increased the need of testing apps.
Types of Mobile app testing

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, check boxes, 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 data center, 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 usersHealth Fitness Articles, detect areas in tested application so that they do not receive any malicious content.
Mobile testing tools
Releasing new app demands thorough test cases to ensure that particular app will perform up to the scale. Designing test cases for functional and performance testing have been challenging, complex and costly traditionally but now online availability of efficient and flexible mobile testing tools has made it easier. These tools are fast, effective, innovative and affordable. Most popular automation products and services are offered by experitest, ZAP-fix, Borland, Ranorex and QAtestlab etc.

To test applications one needs to be trained for using these tools. Training programs are also provided online for basic and advance level application testing. Various tools used to test mobile applications are:
  • See Test
  • Robotium
  • Salendroid
  • Zap-Fix
  • Testdroid
  • Monkey talk
  • Calabash
  • Appium
  • T-plan
  • Test Studio

Appium and calabash are used specifically to test the functionality of applications. These tools can be used for various platforms. Specifically designed tool is required to test applications of android devices and iPhones. Android Lint and Find Bugs are most commonly used tools for android devices.
Testing is main part of app development process. Following are the points which are tested in particular app before releasing it into market:
  • Notifications
  • Updates
  • Guidelines
  • Orientation
  • Platform related issues
  • Location services
  • Gesture
  • Network
  • Functionality
These criterion cover all the test requirements and if the specific application satisfies these criterion than it becomes ready to release in market for customer use. From tool for carrying out test to training for using such type of tools, everything is now available online. Online portals offering these services also provide interaction platform for testers of different categories of software testing domain.