Mobile phones and software applications have become a part of our lives. Approximately 1500 apps are being delivered each day. Customers have too many options when it comes to mobile apps. So, it is imperative that for the success of your application it is thoroughly tested.
While all software development companies ensure that their app is tested well before rolling it out to production, some important points get missed. Though they may seem like minor things, they can have a huge impact when the app reaches the end customers. The result of such incomplete testing is that the product/app bombs are in production and need to be rolled back.
In this section, let us look at some very common pitfalls and mistakes that can be avoided to ensure your app is received well.
1. Avoiding testing on real devices
In order to test the application, Many companies prefer to go with cloud-based tools. But it is important to understand that these tools are expected to support the real device but can not replace them completely. Some user experience and functionalities can show a different picture on cloud devices as compared to real devices. So, make sure you test in at least two – Android and iOS real devices along with a minimum last 2 iOS or Android Versions.
Testscenario uses real devices for application testing because the end-user will also be using a real device, this method provides precise performance and metrics for the application being tested. Please get in touch with Testscenario if you want to test your apps on real devices.
2. No proper responsive testing
Another common mistake is not checking the rendering of the application in devices with different sizes and OS. Many companies would test in a limited number of devices, which may or may not be enough. To ensure maximum coverage we can go in for cloud-based responsive testing tools, which make this testing very easy and cost-effective too.
3. Not considering the device configuration and network
This is critical when your application needs a specific amount of free space or internet connectivity. Make to test with varied RAM sized to check the speed of the application. Concerning internet connectivity, network virtualization testing is mandatory testing with various internet speeds, Wi-Fi, data, hotspot, and varied packet loss combinations.
4. Testing at the end
This is true not only for mobile testing but also for normal applications. Testing needs to be part of the process from the very beginning. This ensures that the mobile app is stable, and the development team has enough bandwidth to fix the issues found rather than racing against time when the production move dates are fixed.
5. Ignoring critical conditions
Unlike a desktop application where the AUT remains in the same state through the testing, a mobile app can be different. Several conditions can impact the way your mobile app behaves. To make the app more robust it is important to create an exhaustive list of these conditions and ensure these scenarios are tested. Some of the important conditions are:
- GPS services ON/OFF for localization and general testing as well
- Battery level – full, low, and critically low.
- Incoming calls, messages and push notifications during the app usage
- Actions performed on the physical buttons like home, back, etc.
- App open, close, and repeat without login and logging out.
- Low brightness level
- Permissions and settings
6. Unable to replicate user expectation/usage
unlike desktop applications, user experience (UX) is very critical for mobile applications. It is thus important to test the app from a user perspective. It should be able to perform as per the expectation of the end-user and not just do what it is expected to do. There is a subtle but very important difference between the two. For e.g., the application may be expected to show the sum of two numbers as per the functionality, but as per the user experience how long it took to display the sum is of more importance.
7. Not using automation
In many cases, people try to avoid automation for mobile application testing. This is a big mistake. Automation can help you increase your scope and coverage of testing. It can also be very helpful in responsive testing. There is several open-source software that you can leverage for your testing including the market leader Appium.
8. Not setting the correct SLA
It is very important to get the right SLA that is also acceptable to the client. Another very important factor is that before deploying to production we should ensure that the app corresponds to the SLA with no load in the system and preferably with no cache (if it is applicable). This will ensure that the system would perform well in production too.
9. More focus on localized testing
While testing a mobile app, the testing is normally done in the same region. Any translation or other changes related to the geography are kept for the end. This can create problems, especially in translations when the number of characters is different, and you end up with non-aligned text and broken words.
10. Less focus on non-functional testing
Non functional requirements are a major deciding factor in the success and acceptability of any mobile application. These include the performance of the application in load, stress, security, etc. The change in the UX values of the application in these conditions.
The world of testing is changing at a rapid pace. The timelines are reducing, the time to market is coming down drastically and the customer expectations are sky-rocketing. It is thus important for any company or organization to get it right in the first go itself. The above-mentioned are some of my learnings from working in mobile testing. Hope these points help