Test plans
Test plans focus on how the system will be tested during each phase of testing. It specifies what part of the system is being tested, together with a detailed description of the test cases to be applied. The test data for each test case will be identified, together with the expected outcome of each test. The various test phases are listed below, together with a description of the type of activity and test data that should be included in the test plans devised for each phase.
- Unit testing - the unit test plan defines a set of test cases for a unit, listed in the order in which they should be carried out. The test plan should be in place before coding begins, and should be informed by the functional specification and design parameters laid down for the unit. Test cases should allow the tester to determine whether or not the unit performs as expected for each execution path through the unit, and an appropriate range of test data and expected outputs should be identified.
- Integration testing - the integration test plan sets out the test cases for testing the interfaces between software units that must work together. As with unit testing, test cases should be listed in the order in which they will be carried out. The design documentation should be used to identify the interface points between units. If necessary, an IPC (Inter-Process Communication) diagram can be used to illustrate the interface points. Test cases should cover every interaction that may occur across each interface point. Appropriate test data and expected outputs should be identified. The test data identified should include the data that could be expected to pass through each interface point.
- System testing - the system test plan should include test cases for all of the business functions that the system should be able to carry out according to the high-level system specification, arranged to reflect the order in which they would occur under operational conditions. Any database files that are accessed or updated as part of the testing process should be populated with typical data. The test plan should identify suitable test data and expected outcomes for each test case.
- Acceptance testing - the acceptance test plan defines the test cases to be used by system users. Test cases are designed to check whether system performance is acceptable from the user perspective, and should cover all performance benchmarks specified by the customer and agreed with the system designers. Test conditions should reflect the real-world environment in which the system will operate, including realistic workloads, data throughput, and configuration parameters.