Testing can be broadly defined as an investigation conducted to map the expected functionalities with the actual implementation at hand. The outcome of testing process is a performance sheet of sorts about the quality and performance of the product or service undergoing the testing process. A well conducted testing process ensures that there are lesser glitches at the user level, which would in turn result in lesser after-sales/maintenance efforts, thereby driving down the product development cost as well as ensuring higher customer satisfaction indexes, both of which are equally desirable components in a software company’s wish list.
The importance of testing as a process can be gauged from the fact that most if not all software development models include it as a major phase in their totality providing a substantial time and budget for it. Depending upon the complexity of the software and the resultant performance/quality desirables out of it, the budgetary and time allocations for testing vary. For instance a health care, space program solution would be less tolerable for faults hence would end up allocating even higher bandwidths for testing as compared to say a game application.
Testing on the mobile is however very different and sometimes a more involved process then testing conducted on the desktop environment because of the following key differences between the desktop and mobile :-
* Constraints and difference in hardware capabilities
The screen size of a typical desktop nowadays is around 19-23 inches as compared to the mobile which could be around 1-2 inches, with limited color display options, the input mechanisms of a desktop with a full QWERTY keypad with mouse as compared to a limited keypad, both virtual and actual along with the absence of a mouse, the processor capabilities are some of the key hardware differences between a mobile and a desktop. These constraints do limit the amount of processing/input/output which the application can possibly do in a satisfactory time line from a user perspective. It then becomes imperative for the development team to take these factors into consideration while developing and testing any application for the mobile environment.
* Varying environments of usage
A mobile by its very definition is a device always ready to use and generally on the go, compared to a desktop which pretty often sits on the desk meant for sedentary usage, even in the case of laptops to a large degree. A mobile could be used while shopping, traveling, driving and many other divergent activities, so it’s very important that the applications developed for a mobile subscribe to the basic idea of a mobile and should not place any demands on the user from a usability perspective. More often then not while using applications on the mobile; the user wants faster response and quicker access to services and features with the least possible input/decision making process. This should be kept in mind while developing the look and feel, functionality and usage patterns for the application.
* Divergent demands/expectations of the end user
Compared to a desktop a user has different demands and expectations from a mobile. For instance a typical user would expect to use different applications like phone/camera/music players at the same time, and expect all of them to work reliably together. The developer thus has to ensure that their application is not making too many demands or using up too many resources off the hardware of other inbuilt applications up to a point where they might end up hampering the performance of other applications.
It is against this backdrop that a mobile application has to be designed, developed and then tested.
I found an article about mobile and handheld usability testing written by Tim Fidgeon. He pointed out that mobile and handheld testing could actually be more important than computer-based usability testing. Could he be right??
He has three main arguments for his statement.
* A growing number of users are accessing the internet from mobile devices:
This is true. The awareness of the opportunity to get online anywhere you are is spreading. More often then not the websites/content have been developed keeping in mind the IO capabilities of a desktop and it doesn’t get rendered properly on the mobile. It is thus imperative to ensure that the website development is done keeping in mind the mobile, and should also ensure lesser inputs required in the case of mobile. Generally on a desktop lot of times in case of IO errors, the developer notifies and expects response from the user, but in the case of mobile the interaction between the user and the system should be minimized because of the constraints discussed earlier.
* Going online with your mobile is fairly new way of using the internet:
Computers have been in use “for ages”. Even if someone makes a rather unique design for a web site, users are somewhat expert users and can navigate in almost all conditions. Accessing the internet with mobile devices hasn’t been possible for that long. It’s a new thing and the users may still be a bit confused about this opportunity, they may find the navigation, layout and other things very different from the desktop environment. The typical user could as well be a complete novice at this mode of accessing the internet and this poses a challenge for the developers to ensure that they make the user at ease while using the content, otherwise chances are that the user might end up abandoning the idea of using the services through a mobile once and for all.
* There is much more varying with different mobile and handheld device platforms than with computers:
The sizes of the screens differ. The platforms differ. With computers it doesn’t really make much of a difference whether you use IE or Firefox. But it might make a big difference whether you use NOKIA E90 communicator or iPhone, for example. Thus it is imperative to ensure that the look and feel remain pretty much consistent on different platforms/form factors and devices, as too much changing might end up confusing the user even more.
I think Tim has a point here!
The tester needs to ensure that the applications developed for the mobile are able to perform reliably, with both speed and accuracy. They also need to ensure that the usability aspect has been well taken care of, as usability remains a critical component of any system.
--- Edited by Mayank on 16/06/2009 ---