Several best practices, when combined with iterative development, will help achieve optimal results from testing. Note that most of these best practices are applicable regardless of the lifecycle model being used. Involve Testing Expertise During Requirements ElicitationEarlier, this chapter explained how iterative development enables testing earlier in the project lifecycle. Even more benefits can be realized by involving testing expertise during the requirements elicitation activity. Obtaining the perspective of an experienced tester during requirements elicitation, before the requirements are finalized, helps the project in a number of ways. A tester can examine the requirements and do the following:
Keep Testing Staff in the LoopA common complaint heard from testing personnel involves changes to requirements and the project in general. As test planning takes shape, many artifacts are created that are tied to the requirements. If the requirements change, the artifacts tied to those requirements may need to change as well. Therefore, make sure that testing personnel are aware of any changes to requirements. If you are using an automated requirements management tool, this will be easier. Replicate the Production EnvironmentAnother important aspect of proper testing involves testing in an environment that mimics the production environment as closely as possible. If possible, the best arrangement is to test in the exact environment, including using the same machines, operating system, networking environment, and so on that will be used when the system is in production. In most cases, this is probably not possible. Therefore, a test environment must be created. It should be physically separate from the machines on which development is performed. It also must be carefully controlled to ensure that no changes to the operating system, hardware configuration, and so on, are made without being carefully documented. Even if you believe you have created a testing environment that duplicates every possible aspect of the operational environment, you will probably find something that was overlooked when the system is placed into production. For this reason, it is a best practice to schedule some time for final testing on the actual operational environment before the new system is placed into production. Testing Is Part of the Delivered ProductThe customer that accepts delivery of the product should be assured that the product has been tested to meet its requirements. For requirements that have defects outstanding, these defects should be listed in the product's release notes. A process for reporting any new defects should be defined and communicated to the customer. |