Mobile application testing basically includes the normal testing types used for any other application and few things which are specific to the mobile environment. Additionally, the type of application would demand specific testing treatment. For e.g. a gaming application would be tested differently than a banking application. Still, following testing types apply more or less to most of the applications:
1. Functional Testing: Similar to functional testing for any application, we ensure that the requirements are met and the application does what it is supposed to do.
2. Platform Testing: Application should work smoothly on all the Operating Systems as required by Business.
3. Multi-device Testing: This includes verifying apps functionality on devices :
a) From different manufacturers: app interaction with device keys like home button, back button.
b) With varying Screen sizes and resolution.
c)With different screens: Multi-Touch, Single-Touch.
c) With different Keyboards: Touch and QWERTY.
d) With different hardware buttons.
4. Performance Testing: It is very important because of the nature and complexity of mobile environment. Some factors to be considered are:
a) Response time
b) Performance in case of low resources : Inadequate memory.
c) Performance when multiple apps are running simultaneously on device.
d) Memory consumption by the application.
e) Device Battery consumption by the application.
f) App performance when multiple users access the server.
g) App performance after prolonged use, repetitive actions.
h) Memory Allocation and de-allocation.
5. Certification Testing: After all the in-house testing, it is important to make sure the app meets all the guidelines and criteria of various platforms. Often a small mistake can cause rejection of an otherwise fabulous application from the marketplaces.
6. Usability Testing: Being fully functional does not guarantee the application to be satisfactory from Usability point of view as well. Usability testing aims at attributes like intuition, understandability learnability, efficiency etc. Usability testing poses a bit of challenge as there are no strict guidelines or checklists to perform it. Any trivial thing could become a usability issue. See this for more information.
7. Installation and Uninstallation Testing: The user should be able to install applications from marketplaces on different devices/platforms. Likewise, uninstallation should work smoothly.
8. Upgrade Testing: It includes checking:
a) Upgrade to the application works properly.
b) Upgrade to OS does not break the application.
9. Interruption Testing: This type of testing is particular to mobile applications as there can be lot of activities which can happen while the application is in use. Some of them are:
a) Incoming Call.
b) VoiceMail Notification.
c) Calendar Events and Reminders.
g) Network Outage
h) Low Battery Message & charging notification.
i) Device shutdown after battery drain.
j) Screen Timeout.
k) USB Mode.
l) Phone charging.
m) Connecting a headset.
n) Bluetooth notification.
10. Network Testing: The application might be used under different networks in terms of type, strength etc. Following things are worth considering:
a) 2G/3G/4G networks.
c) Switching between networks.
d) Real-life scenarios like in a lift/tunnel/moving vehicle to simulate varying signal strength.
11. Security Testing: The application needs to be checked for session management, authentication checks, encryption checks etc. 10 OWASP rules can be referred as well. Security Testing is significantly important for banking apps.
a) Suspend the application.
b ) Resume the application.
c) Application does not freeze/crash.
13. Localization and Internationalization Testing: Localization (also referred to as L10n) testing is applicable if your application has customised features for audience of a particular area. It could be local language/symbols, date formats, currency, colors/background etc. Internationalization of application is developing an app such that it can accommodate localization changes easily later. Testing for it would depend on the measures taken to internationalize the application.