Mobile has become a buzzword for practically every industry that you can think of. Whether you wish to sell a service, or garner a huge user base, or grow a community, you need a mobile strategy. And more often than not, for enterprises and product companies, leveraging mobile inevitably means engaging your customers via an app.
However, someone has to ensure that all these apps getting created, or websites accessed via a mobile browser, are actually functioning as intended. Are they offering customers the responsiveness and ease-of-use that you want your brand to be known for, or are they delivering buggy, extremely frustrating experiences? And that is why you need mobile testing.
Mobile testing is performed to make sure that the website or app under development is delivering the features and functionalities that it is meant for. As with any QA testing, mobile testing involves the following types:
Functional Testing: This type of testing deals with ensuring that the functional behavior of the application is as expected. This includes:
Performance Testing: Performance testing is very crucial when developing a mobile application. For example, let’s look at a simple ticket booking system. There are thousands of travelers who could be booking tickets for bus, train, and flights. Even if the application is for any one single mode of transport, at the peak time, there could be thousands of requests that hitting the application. This makes it very important that the app is able to handle the load.
Having said that, it is actually the API that caters to the requests. However, we need to ensure that the app does not fail when there are slow responses.
Security Testing: The most valuable thing today is data. And when users interact with a mobile website or application, there are numerous scenarios that involve data security:
Interrupts Testing: This testing is very specific to mobiles. Here we need to make sure that the application runs fine even when there are system generated interrupts. System generated interrupts can be any of the following:
Incoming phone call
SMS
MMS
Airplane mode
Low battery popup
Phone shutdown
Low memory
Installation Testing: This is another key aspect unique to mobile testing. Any application goes through a series of development stages and hence we need to test for the following:
Installation using the .apk files on Android, and .ipa files on iOS
Installation from Google play store on Android and iTunes on iOS
Installation of updates from Google play store on Android and iTunes on iOS
Usability Testing: The final key area for testing on a mobile device is usability testing. The tester needs to make sure that the app is easily usable, all navigations are as per the wireframes, and meet the iOS and Android standards. Also, we need to test the application on different screen sizes and make sure that there are no issues in the rendering of the application.
One very common question that we get to hear to is, what is the difference between web based testing and mobile testing?
Indeed, testing on a mobile web browser is similar to testing on a desktop web browser. The functional, performance, and security testing is common for mobile and web testing processes. However, there are certain key differences that need to be kept in mind:
There are a lot of native events that occur on a mobile device that would not occur on a desktop browser. To name a few would be phone calls, messages, airplane mode etc. And hence interrupts testing is unique to mobile testing.
Mobile testing is not limited to browser alone, there are apps that need to be tested. The current user preference is to use an app rather than browsing on a website, even a mobile optimized website. And while testing an app, the perspective completely changes in the sense that we are no longer just looking at the features and functionality, but also having a close look at the UI. There are separate wireframes that are created for testing on Android and iOS, primarily to maintain the design standards and also to be able to utilize the native features available with the OS.
While the goal of mobile testing is the same as web testing, there are certain additional elements that get added to the basics of mobile testing. Given that the application has to run on a mobile device, we need to consider and test for certain native conditions that do not exist while operating on a web browser. Below is a quick checklist that needs to be considered when performing basic mobile testing:
App installation - Test the app installation in different OS and devices with different supported OS versions.
Interrupt conditions - When the app is loaded or is loading, and a call is received, it generates an interrupt condition. It is important to check if the app handles the interrupt conditions properly.
Offline mode - Check if there are any crashes/issues seen when the app is operated in no network/airplane mode.
Landscape and Portrait orientation - Check if the app supports a change in device orientation. If it does, ensure that upon screen rotation the UI remains consistent.
Location based services - If the app has any location services, it should display the location correctly. It is very important to check this on data as well as wireless network.
Test the app on Wifi and data network - Check if the app works correctly on data as well as wireless medium.
Simulate phone restart interrupt - Check if the app works fine if the phone restarts when the application is running.
Simulate message interrupt - Check if the app works fine if there is a message received when the application is running.
Simulate a low battery interrupt - When the app is running, simulate a scenario for a low battery popup and check how the application responds to the popup.
Simulate a low memory interrupt - When the app is running, simulate a scenario for low memory pop-up and check how the application responds to the popup.
Security - It is important to ensure that the app being used is secure. There should not be any vulnerabilities in the form of advertisements or any other medium that causes a threat to users’ data.
App social network integration - With almost all applications using Facebook and Google integrations for login, it becomes very important for testers to check if the privacy policy and notification settings are considered in the application.
Performance requirements - It is important to know what is the minimum configuration needed for the application to run properly. Hence we need to do a proper benchmarking of the application to ensure that the application does not hamper the performance of the device
Images - In the case of images used in the application, the images should not get distorted/stretched/pixelated when uploaded.
App installation from App store/iTunes - Check if the app gets correctly installed when downloaded from the App store/iTunes.
This basic checklist helps you make sure that you do not miss out on testing any key feature, scenario, or functionality while performing mobile testing. You can take a look at the most prevalent mobile test automation tools and decide which one to use, depending upon your project requirements.
You can also check out our range of webinars on QA and Testing, especially our session on mobile test automation, to know more about mobile testing and the best practices for mobile test automation.