Previous Next |
TestingThe technical team should be able to construct, set up, and perform appropriate testing for the project. The aim of this section is not to create a checklist for the technical team, but rather to describe how the business users can assist in creating test cases and performing some of the testing. Use CasesAn excellent technique for testing apps is the awkwardly named "use cases." A use case is, very simply, a short scenario for real-world functionality. For instance, Table 9.1 is a use case for identifying a customer who is calling for assistance from a help desk system. Table 9.1. Use Case Example for a Customer Assistance Call
Functionality TestingUser testing should occur at each milestone, using the use cases that are appropriate for that portion of the tool being delivered at the milestone. Super-users should conduct the testing against the use cases, although other end-users may be recruited as well. The technical team should run through the use cases before the delivery, but the technical staffers, not knowing the business purpose behind the cases (and, to be sure, knowing entirely too much about the tool) often miss subtle and not so subtle issues with the use cases, issues that are spotted within seconds by the business users. It's very useful to get multiple individuals to perform the tests. Untrained testers have inconsistent approaches to testing and may miss crucial misbehaviors, which is also true of trained testers but to a much smaller degree. Whenever possible, hold the testing in a central lab with some developers in attendance to observe the testers, answer questions as needed, take notes on testing outcomes, and even, whenever possible, to make immediate changes based on the feedback, allowing an immediate opportunity to retest. Testers should not be required to file copious reports, just demonstrate the problem behaviors to the developers. Make it easy for them! Although testing should concentrate on whether or not the objective tests are successful, much interesting information about usability also emerges during the testing sessions. Therefore, the developers in attendance should observe the users and note any hesitation or confusion. Are users confused about what screen to use? Are they overwhelmed by a particular screen? This is where having testers who are not the super-users is helpful, since super-users know the tool "too well" to be objective by that point. Usability testing is best done by simply observing the users performing their tasks rather than interviewing them afterwards about the experience. Users have their pride, so they may not admit that something was difficult. Or they may forget! In the same vein, an unobtrusive observer does better than videotaping or recording users, which makes them nervous and distorts the results. Stick to informal observations and invest the recording money somewhere else. Load TestingLoad testing is mostly a technical issue, however from the point of view of business users it's critical that the system be tested under adequate loads (numbers) of users and transactions. Much of that testing can be done through automated tools so you should not have to ask end-users to all bang on the system at the same time, as we did in the olden days. Just make sure that the load testing is done, that it's done as early as possible to give the team time to address issues, and that it be done with the actual customizations in the product. Experience shows that a product may perform well right out of the box, but crawl miserably under inadequate customizations. Integrations are another notorious cause of performance issues. |
Previous Next |