Any application software developed for mobile should be tested for its correct functioning, user friendly approach and consistency. Testing could be either manual or automated. Ever since smart phones came in to use, more than 2 million Apps have become available for downloading. We have Apps for music, games, financial transactions, ticket booking, ordering food, social networking and so many more categories, and the number is still growing. As these apps are invading into our personal and professional lives, it becomes increasingly important to ensure that these Apps are trustworthy, useful, easy to use and well developed by following certain techniques and best practices to test any mobile application.
A comprehensive testing strategy with specified guidelines for all testers should be devised so as to bring uniformity in testing. Once an App is designed and developed, it should be tested on real devices once it has been tested on emulator and simulator. Testing on real devices ensures realistic results and also the tester can understand the look and feel of the App with its general usability. The App should be tested at different stages of the development. This helps in identifying issues at an early stage, if any. With so many services, networks and operating systems available easily, it becomes an exhausting task to test an app that can meet all the criterion. It is essential to determine the devices and operating systems that the App caters to, and then perform tests on them. At any time, automated testing is better than manual testing as it saves time and can be used repeatedly. As an app gets more complex, repeatedly testing them for bugs becomes difficult. Hence certain software have been developed that take care of the testing. Software such as Monkey runner and Robotium automate the entire testing process.
One of the biggest challenges in the world of mobile app users is the high user expectations. It is better to know target groups and their expectations. Once user preferences have been identified, it becomes easier to decide the testing devices. To achieve this, we can conduct market research, use mobile app statistics and interview customers. Based on this information, different groups can be created based on the priorities. One group may require latest testing devices and another may require fewer. The functioning of mobile apps in various types of data networks should be tested. The app should be able to work with different network speeds and handle network transitions. For example, 3G or Wi-Fi is comparatively faster than a data network like EDGE. The app should be capable of a smooth transition from 3G to EDGE, depending on the availability.
It is advisable to start testing during the development stage itself as it reduces the cost of fixing it. Early detection and fixing of bugs ensures that the problem does not magnify later. And testing should be carried out often because with every small development in the app, it is essential to ensure that everything works as expected according to the new changes.
The app must also be tested for various languages across the globe along with popular social networking sites and markets because they can significantly impact the layout. Hence it must be addressed at the beginning of the development process. Most of the modern phones are equipped with different hardware and sensors. The app should function against sensor specific scenarios and hardware. For example, if the mobile app takes a picture, it should handle picture resolutions, sizes and uploading photos to the server. It is important to check how much battery is consumed by the app. Chances of an app that consumes more battery getting deleted is higher.
It is necessary to test the app’s installation and update processes. During install and uninstall tests, app testers have to look for crashes or any other problems that might occur. After uninstalling an app, the phone storage should be checked to ensure that all app data has been removed. The usability of an app has to be constantly tested. All UI elements must be easy to use and understand. The app must provide clear explanatory text and error messages. In case of an error situation, the app should guide the user how to resolve the problem in the app. During development and testing phase, app testers need to verify that the app uses only permissions that the app requires. Mobile users who are sensitive about private data are unlikely to install any app that is unclear about permission requirements.
In conclusion, for any mobile app to be successful, it must undergo complete and accurate testing. It has to rise above the challenges and deliver high performance under varying conditions of usage.
Mobile application manual testing Process in real time:
• App should be tested on all types of mobile networks (ex:2G,3G,4G,LTE,and Wifi)
• App should be tested on different OS environments like iOS (iPhone and iTab), Android (mobiles &Tab) and Windows OS enabled mobile.
• Automatic updates suggestions/Alerts should be available whenever there is new features/updates done on App.
• Tester needs to uninstall the old version of app and install new version of App on mobile to test new version
• Make sure that app screen should be auto fit to any size screens of mobile device (3 inches to latest 5.5 inches screen)
• Make sure that GUI is as per the requirement specification .It should be user friendly.
Mobile application automation testing Process in real time:
Pre-requisite for automation: App must be tested manually and should be stable.
• All the above scenarios can be tested using automation except for the GUI testing.
• Monkey talk, Selendriod plug-inns are used to test Android apps along with Selenium tool.
• Appium plug-inns are used to test iOS apps along with Selenium tool.
• Automation tool should capture all the gestures available from smart phones like tapping ,pinching, scroll-down ,scroll-up etc.,
• Tool should have capabilities to automate functional testing and non functional testing for the App.
• Different tools like HP UFT, Telerik test Studio Complete, Selenium etc., are available in the market to automate Mobile apps.