Creating and testing an app was never an easy job. It requires a lot of time and patience from the app tester to test the app for faults and errors. Editing huge source codes to rectify errors is another headache for testers, who often tend to forget and get confused between different variables.
But still, testing the app is important to ensure its quality and reliability. A lot of time, energy and money go into creating an app and it could all go to waste if the app is not tested properly for technical faults. No user likes to download an app which is full of technical glitches and bugs.
So here is your step by step guide to methods for testing an app for bugs and errors
Step 1: Make sure that the app is ready for testing
The app you are beginning to test should be complete and ready to test in every respect. While in the development stage, developers keep on making changes to an app, but what you require is a final and a stable version of the app for testing. For this a developer must first employ unit testing methods to the app. Many bugs can be taken care of during unit testing.
Testing should always begin at the source code level, during the App development process, as this reduces the bugs which you will encounter at the final test phase. There are many tools available for unit testing, so that should not be a problem. A developer must write down unit test cases.
Using Static Code Analyzers ensures that there are no basic programming issues in an app which have been left unaddressed. Build frequency should also be limited to enable testers to focus on testing.
Inter communication between a tester and a developer is equally important. A developer must inform the tester about any changes and updates he has made to the app before submitting it for tests. Developing and testing an app is all about good teamwork.
Before you proceed with complete tests you should run a sanity test on the app. This will speed up your testing and keep things simple. When your app passes the sanity test cases, you should proceed with further testing.
Related Post: Why you need to test your Mobile Application
Step 2: Automation
Automation of the testing process is a crucial for time saving. Automation also ensures that many general issues with the app are found and further communicated through emails. Automated tests are easy to run, so can be implemented by developers too before sending it to the Quality Assurance team. Emulators are a good option for automated testing, but real device options should also be considered.
Step 3: Emulator before device
A simulator or an emulator is a device or a platform which provides a suitable environment for testing the app instead of directly testing it on the device. Installing and re-installing the app on a real device is time consuming. Most bugs are easily caught with emulators.
Step 4: Device testing
Testing on a real device is the ultimate test for an app. Emulators can provide a similar environment, but are still not the real devices. Here are a few aspects of testing on real devices.
- Multi-device testing
Specific devices pose specific performance issues in apps. So it is always a smart idea to test the app across multiple device types. For instance there are many Android device manufacturers like Samsung, Sony and Motorola etc. You can never be sure if an app will work perfectly on all device types without proper testing.
- Devices with varied screen sizes
Apps have to perform well on all screen size devices, which includes smart phones and tablets as well. You can never know how the UI of the app will look on different screen size devices until you install and run the app on them.
- Devices with different operating systems
iOS app testers don’t have to fret a lot due to this issue as Apple provides upgrades for older versions of its operating systems. But Android phones come in a large variety of operating systems. Before you can catch up with the latest Android OS, a new one is already available. Android Lollipop, KitKat and Ice Cream Sandwich are a few of them. An app needs to be compatible with all current OS to perform optimally; hence cross OS testing is required.
- Testing on Rooted devices
Many people use rooted device features on their phone. So an app should also be tested on a rooted device to see its behaviour.
Step 5: Network testing
This is an essential element of testing apps which work online and send/receive data.
- No Network testing
An app which works online with the help of a network should be tested on a device without network availability. An app in such a case should tell the user that the network is missing and he should connect to it to use the app.
- Wi-Fi network testing
If your application supports Wi-Fi then test it by switching the Wi-Fi signal off and see how the app behaves. Now switch on the Wi-Fi and try taking the device out of range. Test the app with a week Wi-Fi signal and lastly take the device out of range which performing a network associated task on the app.
- App should allow background network tasks
An app should allow a user to download files in the background while using the app. What’s the point if a user has stop using the app to download his file. UX will go straight out of the window.
Step 6: Re-installation test
It is a common habit of users to download apps and then uninstall them, only to reinstall them later on. Make sure that your app installs properly each time after it is uninstalled from the device. This will ensure that your app users receive regular upgrades.
Step 7: Device functions inside and outside the app
All device functions like the back key should function in the same way, both within and outside the app. The app should not fiddle with the device behaviour and all normal device functions like incoming calls and SMS alerts should remain unaffected.
Step 8: App in motion test
Make sure that your app remains unaffected while the device is in motion. It is especially important for network based functions. Try the app while driving in a car by using its network features.
Step 9: UI Design test
The UI is the first impression that your app puts on users. If the UI is unattractive or looks different across different devices, then the users will lose interest in your app.
Step 10: Landscape and portrait mode testing
Most mobile devices have auto rotation feature, which means that when the user turn the device vertically or horizontally, the screen auto rotates and switches orientation from portrait to landscape and vice-versa. Make sure that the transition of app pages is smooth and flawless.
Step 11: Default keyboard behaviour
The app should not alter or affect the default keyboard behaviour. The buttons assigned for specific tasks should work properly. The keyboard should pop in and out as and when required.
Step 12: Field specific keyboard
Data in an app is entered in fields. Make sure that your app displays filed relevant keyboards to users. A field which requires a user to enter should his email display symbols like “@” to make it easy for the user to enter his email ID. This goes a long way in enhancing the user experience of the app.
Step 13: Crash testing
An app might encounter exceptional situations and close abruptly due to hardware or software related issues. Here’s how to test the app in various such conditions.
- Test the app in low battery mode. When the battery goes dead and the phone switches off automatically, the app and its data should not get corrupted. The network should be kept switched on in such a scenario to check the app behaviour.
- Remove the phone battery while the app is running. Replace the battery and switch on the phone to make sure that the app data has not got corrupted.
- Try sending and receiving large amounts of data through the app. Sometimes users enter large amounts of data in the fields, making the app crash. Your app should be able to handle large data flawlessly.
- Each app has its file upload and download limit. These files could be either images or videos or text. Make sure that you communicate the app’s upload/download limit to users for preventing it to crash.
Step 14: When to stop testing?
App testing can be draining on the mind and body of an app tester. So he/she should well know when to stop. It is best to ignore minor issues while releasing the first version of the app. Subsequent App updates will take care of them later on. It is more important to focus on major issues and releasing the app on time.
To wrap it up
I hope that I have been able to cover every minor aspect of app testing elaborately, but it is still possible that I might have left something out. So I request readers to review this article and enlighten me with their valuable suggestions and comments.