When the app development is completed or almost completed, you have to carry out testing of your app, mobile app testing is a very important phase of app development life cycle.
Quality assurance(QA) is an integral part of app development, here in this article, we are going to cover the mobile app testing process step by step.
Mobile app testing has the following phases:
- Mobile app test planning
- Testing Types
- Preparation of test scripts
- Manual and automation app testing
- Usability testing
- Device testing
- Performance testing
- Security testing
- Compliance testing
Mobile app test planning
When you are planning for the mobile app testing you need to start with test preparation. Once the app development is completed, the development team provide the test builds, make sure to take a brief of the app screens, functionality, etc. before you start the test planning.
Following are the important considerations in the test planning phase:
- Is the app partially functional or fully functional
- Is the app allowed to interact with the other apps in the device
- The technology used to build the app, native or hybrid
- Is there any back-end that app uses
- Does the app uses a wireless network to function
- Any local storage that app uses and the type of local storage
- How the load is handled and how the app performs when the load is high
- How the app handles different device status
This is an identification phase for the different types of tests that will be performed, this includes functional, usability, user interface, device, security testing, etc.
There are some important considerations:
- What are the devices app supports, Is it a universal app? Or an app just made specifically for smartphone or tablet devices
- Device orientations that the app supports
- Minimum Operating system version the app support, and the list of other versions
- Selection of a range of devices for testing, it’s a good practice to test in one low-end, one mid-end and one high-end device
- Simulator testing and environmental testing is important as well
Preparation of test scripts
Test script preparation starts with preparing a document, it will include a list of all the app functionality. Prepare automated and manual test cases, automated test cases ensure the reusability of the test cases, modify the automated test scripts to suit the project requirements.
Once the functional test cases are prepared, there are some other important test cases need to consider:
- Battery usage of the app
- Speed of the app on different networks, devices, and environments
- The data requirement of the app, upload/download limits
- The memory requirement of the app, the operating system can kill the app if the app uses too much system resources
Manual and automation app testing
This type of testing involves writing good test cases and scripts, as the term state manual it requires human testers. Automated testing can’t cover all the app testing aspects, in the end, there are humans who will use the app, so why not let humans do the testing.
Once manual testing is completed, the QA team require to prepare a good bug report, this helps the development team to resolve the existing bugs in the app.
The advantage of manual testing is it delivers a rich user experience. While the high resource cost is the disadvantage of using manual testing.
Automated testing involves the use of tools for testing such as Selenium. Automation testing is good when we have several repeat test cases, and thus it saves a lot of time in testing. As the testing tools can easily cover the repeat case, however, you need to ensure to alter the repeat cases to suit your testing requirements.
Running automation testing involves a high initial setup cost, tools purchase cost, training cost, etc. But saves cost later by reducing the human resource cost.
Automation testing can’t cover 100% testing of the app, there are some cases as well which require manual testing. Some testing types such as performance testing can be conducted through 100% automation. Test cases which involve user interface testing, installation testing, etc. must be done manually.
The purpose of usability testing to check the user-friendliness of the app and to determine how the app performs in actual user testing environment. This testing phase involves identification of the test group, the right audience to test the app. For example, if an app is made for the kids from 3 to 5 years, then conduct the usability testing with the kids from the same age group and another usability testing with the parents of those kids.
When they are using the app, you have to analyze their behaviour, you can install recording equipment to record their audio or video. Analyze while they test the app, you can note down the important points and pass this information to the development team.
When you are performing device testing first identify the list of devices for testing, the test devices must include different screen sizes.
For example, when you are testing an iPhone app, it must be tested all the available screen sizes. You can take one device for each screen size. Testing a 4-inch device choose from iPhone 5, iPhone 5s or iPhone 5SE. If the devices are not available, user simulators to simulate the testing environments. Simulators are also good when testing the app for different operating systems.
For Android app testing, make the right device selection for the testing, as there are thousands of devices in the market. Using test devices with small, medium and large screen sizes is a good option, this avoids most of the UI related issues.
Mobile devices have fewer resources available compared to laptops or desktop devices, the app must handle the device resources efficiently, test the app for the load, memory leaks. The operating system kills the app if the app starts using too much system resources.
Ensure that your app is tested on different networks 2G/3G/4G or Wifi network, check for online/offline modes working correctly with changing network.
Another important point is scalability testing of your app. As the data size increases local or through a cloud server, the load increases to the app as well as the operating system. The increased load must be handled efficiently. For example, loading a large data, you can implement techniques such as pagination, use recycler view to in your app user interface for the smooth scrolling. The scalability testing must be done as well to ensure optimum performance.
Some other important considerations in performance testing:
- Installation testing using different test cases
- Upgrade testing from older to newer, in some case you need to test newer to older version testing as well
- Device-related testing of your application, if there are any specific feature offered by the device, that must be tested
- Exception testing, exceptions must be handled by the app properly without any crash issues
- If your app offers online/offline modes, you need to make sure the app works on both modes properly, and the data pushed correctly to the server when a device switches from offline to online mode
Security-Related testing is extremely important nowadays, perform both back-end and front-end security checks for the app.
Use of secured headers in API calls is a good practice. If the app has login function, then it’s recommended generating access tokens for the logged in user. All the API calls must go through the security token provided by the server and through secured headers.
The passwords and other sensitive information must be encrypted at the back-end side of the app. You can perform security tests by validating SQL injections, session hijacking, packet sniffing, SSL pinning. Here are some more tips in details to improve your app security, read more.
Compliance testing is basically to ensure your app meets the app store review guidelines and enterprise guidelines, If the app doesn’t follow the required guidelines, violation of guidelines can result in the app removal from the app store.
App Store guidelines
- Check all the app store review guidelines one by one, to ensure all are followed. For example, if the app is rated for the kid’s category and shows ads, it must be relevant to the kids or there is a violation
- If any guidelines are not followed correctly, then report the issues to the development team, so they can resolve
There are industry-specific guidelines that the app must follow to avoid any violations. The different industries such as the food industry, healthcare industry, etc, these industries can set their rules for apps to follow. Running an industry guideline check is important to avoid penalties. Also, keep track of these guidelines as they can change.
Mobile app testing can be tough, these steps ensure your app product is fully functional and bug-free. Whether your app is a native app or cross-platform app, follow the right testing procedure based on the technology you select. Also, make sure to repeat the necessary testing steps after app upgrades.
Choosing the correct testing type is very important and it can save a ton of time. Proper planning and implementation is the key to successfully carry out mobile app testing.