One of the wrong assumptions client app developers make is the stability of the network – that it is the same everywhere as where they tested. Unfortunately that is not true. Not only are networks slow and unstable in certain countries, a user may be using the app while travelling and his phone switching cells. This means the app needs to be able to handle such cases and gracefully degrade in order to give the user a good experience.
Another wrong assumption is that operators are just pipe – that whatever TCP/UDP/HTTP requests the app makes to our servers, it goes through un-hindered. Unfortunately, operator gateways do stuff like mangle or block cookies, URL encode/decode incorrectly and add extra headers to your requests.
The recommended test sequence would be to:
- Test using WiFi – to ensure app is working fine given the best possible network condition
- Test at a location where you know the cell reception is good
- Choose several locations within the city especially where people gather to see how app behaves at locations where cellular traffic is high
- Test while travelling on a car or bus so that the handset switches cells.
As with Client App testing – the issues faced for mobile web are pretty similar ie. network stability issues and operator gateway issues. However, for mobile web there is the possibility of the operator either (a) adding extra markup eg. their own headers or ads (b) doing HTMLTidy like operations on the markup.
It may seem like overkill to test in various locations around the city and in a travelling vehicle and for some apps it is. It really depends on the most common use case for the app if the app requires constant network connectivity – eg. if the app is a game that has minimal network calls then there’s really no need to test in various locations. On the other end of the spectrum would be an app that frequently tracks the location of the user to display location aware coupons – in this case you can expect the user to use it while travelling in a vehicle and locations where people congregate like a mall.