Mobile application testing is different from traditional software testing in term of the very mobile functions, like small screen sizes, heterogeneous devices or complicated form factors. This article studies best practices in mobile application testing, regarding functional and non-functional testing of the mobile app.
Functional testing of mobile app
Functional testing is the first aspect to be mentioned when discussing on mobile app testing. In functional testing, an application is conducted on a fully integrated system, to assess the suitability of the system with its requirements specification. The tester can do both manual and automated testing. Manual testing is to do simple and separated tasks, like clicking a button, submitting a form, etc. This action allows a tester to make the test carefully and visibly, however, it takes much time and energy. Automated testing is to test the app using automation tools. There are a lot of that tool on the market, each one serves the best for a particular platform, like Robotium, Robolectric, Roboguice, MonkeyTalk, etc., for Android apps; and KIF (Keep It Functional), UIAutomation , MonkeyTalk for iOS apps. Tester has to choose a tool that fits into the company strategy and infrastructure.
Non-functional testing of mobile app
Non-functional testing is to make sure that the functionality of the app can operate normally even if it receives the invalid or unexpected input data. Non-functional testing includes testing on software performance, load, stability, usability, security, internationalization, and localization. In sum, what is the best practice in mobile application testing? Choosing the right devices for testing It is the fact that the wide range of devices with different kinds of a platform is confusing testers, and testing is such a time-consuming work. It is better for tester to group the devices depending on their technical features, such as (1) smaller screen mobile devices with a slower CPU, small RAM and lower screen resolution; (2) mid-range devices with average CPU, RAM and processor speed with good screen size and better resolution; and (3) High End Devices with dual/quad core CPU, higher RAM and greater screen resolution with all the latest software installations. Each group will bear a common test on typical devices.
Combine automated tools
When using automated tools to test the app, testers should choose the optimal strategy in order to prevent code changes to affect a core functionality. To combine the best testing tool, it is advisable to have developers write unit tests for their code so that each small component of the app is safe and works as expected.
Know the end customers
The testing team can optimize their works by taking advantages of app stores (like Apple App Store, Google Play Store, Windows Marketplace) to get user’s information such as preferences about devices, software versions, languages and carriers used. That information is helpful in an aspect of decreasing the amount of development and testing effort required for the various devices and software versions.