5] Give them business training. Station Casinos’ Andrew makes members of his testing department work the front desk, the casino floor and in different corporate departments so they can learn the lingo and better understand the systems they’re testing. (Most of his 125-person IT staff had never placed a bet on a sporting event at a casino prior to joining the company.)
6] Allow business users to test too. Most testing involves banging on systems and fiddling with code—technical stuff—which can tempt IT to leave business users out of the loop. Bad mistake. At La Quinta, "the testers are always coming out of the business community," says Novak, to ensure that the systems IT is developing meet their specs. For some applications, especially those that run in hospitals, getting end users to test applications is a matter of life and death. "Technology people can only go so far," says Patricia Skarulis, vice president of information systems and CIO of Memorial Sloan-Kettering Cancer Center. "We need to have users involved."
7] Involve network operations. Nate Hayward, vice president and director of quality management with HomeBanc Mortgage, says that during testing, his company’s network operations group uses a software tool (Compuware’s ServerVantage) to monitor servers for performance issues that could originate from the way hardware or software is configured. Involving the network operations experts in testing also gives them the opportunity to rehearse a deployment before a system goes into production, ensuring that the actual implementation will proceed smoothly.
8] Build a lab that replicates your business environment. Four years ago, Station Casinos built a costly test lab that looks like a minicasino with slot machines, point-of-sale terminals and Web-based kiosks that simulate the computing environments at all 13 of Station Casinos’ properties. Ninety percent of the applications the company runs, including wireless apps, are duplicated in the test lab. For the other 10 percent of applications, which are too big or complex to create an exact testing replica, Andrew comes up with a scaled-down subset of the app to predict how it will run when it’s fully rolled out. Or he gets help. With Station Casinos’ last system rollout, he used Microsoft’s test labs to run simulation models.
9] Develop tests during the requirements phase. Companies traditionally have waited to do testing until requirements have been established and coding has begun—or finished. A growing school of thought says that testing can still be done effectively even if the requirements have not been developed fully. Fans of "agile programming" (see "Fixing the Requirements Mess," Page 52) believe that testing should be done continually from the beginning of the project until the end.
10] Test the old with the new. EBay uses a statistical analysis tool it built in-house to compare defects discovered by testers to the code that was tested during a particular testing cycle. The goal is to make sure that previously tested pieces of software still work properly when new features are added. Pride says the statistical analysis tool pinpoints where testers need to add test cases in the current project and also helps determine the overall effectiveness of current regression tests for forthcoming software projects. EBay needs to continually refine the tests because some new projects may contain the same functionality as previous projects. The better those tests can be, the better future projects will be.
11] Apply equivalence class partitioning. This is a mathematical technique that testers can use to identify additional functional requirements that business analysts and users might have overlooked or not articulated, says Magdy Hanna, chairman and CEO of the International Institute for Software Testing. He says equivalence class partitioning gives testers a clear picture of the number of test cases they need to run to adequately exercise all of a system’s functional requirements. Pride says equivalence class partitioning is one way his group can determine all the ways in which eBay’s 157 million users might use its online auction platform.