Testing and Usability
Testing of a wireless web application is similar to that of any web application except for the increased importance of usability. Functional testing should be done by independent testers, as it's amazingly difficult for programmers to break their own software! This task required some tools; Empirix and other vendors of automated test tools have extended their web-based regression and load-testing tools to support wireless testing. These are particularly useful when testing your application under load (that is, with multiple concurrent users), as it's easy to write Java servlets that are not "thread-safe." This is also a good time to do some benchmarking of memory use and response times.
Usability testing is crucial in the brave new world of tiny screens and awkward keypad or stylus entry. Ideally, usability testers should be real users of the resulting system. You may find it useful to take several passes through the application, focusing on a different area of usability each time. For example, the first pass can focus on screen layout and navigation, the second on error handling, the third on help functions, and so on. Each pass could perform a normal scenario, or deliberately explore error cases. It's also a good idea to use a checklist to help out in this task. The following is one possibility:
Is the layout of screens consistent across the application?
Is content arranged in a logical way (such as important information placed first)?
Is all information that is displayed necessary?
Is each screen a reasonable size?
Are titles provided for each screen?
Are labels short and meaningful (between 5 and 10 characters)?
Are all labels necessary?
Is terminology consistent?
Is information formatted logically (use of italics, bold, caps)?
Does each deck contain less than 10 fields?
Are format masks used to limit type and length of input fields?
Are select lists used where sensible?
Are menus less than 10 items long?
Is the navigation hierarchy less than four levels deep?
Is the navigation between screens consistent?
Is it possible to return home from anywhere in the application?
Is the amount of scrolling required reasonable?
Error Handling and Help
Is help provided?
Are errors handled consistently?
When an error occurs, can the application recover gracefully?