I have been helping my QA team to write test cases for testing the mobile application. I see that there are generic test cases to be tested for any native application.some of the scenarios are captured here.
1. Install of the application
2. Un-install of the application: Are all the files created by the application deleted?
3. Network Issues: In our office, we have places where the network connectivity is best on the mobile and area where the connectivity is worse. Though we cannot help this, what happens when a data download is initiated and the user moves from the best connectivity area to the worst and vice-versa? I find my tester get frustrated with this testing and i am afraid that this can lead errors to slip.
4. Voice Call Handling: What happens to the timer when there is a sudden call and user decides to take the call? This is very important when one is testing audio application. Can the user resume the audio from where the audio was interrupted due to the call? if there is data download operation, running in the background, will it be affected by the voice call. Some of the above scenarios also apply for receiving SMS in the mobile.
5. Verify that application logo comes properly. some times i find developers using the same image for different applications and if user installs it is not good for the user to select the application. i also ask for the version of the application to be mentioned to validate the same during testing.
6. Which server is the application connected? The application connects to server on the cloud, and the challenge is to determine at runtime where the mobile application connects to local development server or staging server on cloud or the production server. Though it is easier to display on the mobile, does it make sense for the end user and can it be displayed? Sometimes. i am going to build a debug and release config file to determine what gets displayed.
7. Application Start/ Restart: i would expect the application must not take more than 25s to start.
8. Exit application: Though we all think running application is challenge, some times exiting application is night mare. The commands in display are not displayed and the user enters a zombie state. Effectively the user should be able to exit the application in every form or activity and from any point or work flow of the application.
9. Low memory: We find that our application needs more runtime memory than available in the device and the application stops at the launch step. Though i am not happy that my app could not run on user’s mobile, i am happy that my application did not hang or interrupt the mobile operations. Same is the need for applications to check whether there is sufficient memory before the application initiates download of files.
10.Data Download: How to make sure that the data is downloaded in its full extent to be used by the application? Some times due to network issues, the complete file might not be downloaded and the application needs to handle this gracefully.
11. Mobile Storage: if your application is J2ME based and if you make use of record store, then you need to test the stability of application by removing the battery.I found scenario where RMS(record store) of the application was totally corrupted when application restarted after reinserting the battery. Can your application still go forward? May be the application needs to detect the corruption and ask the user to reinstall the application?