The goal is to perform an objective evaluation to ensure quality.
This includes finding defects, validating that system works as designed, and verifying that the requirements are met.
Critical activities include:
- Defining and planning testing efforts
- Developing test cases
- Organizing test suites
- Running tests
- Reporting defects
The purpose of testing is to demonstrate that a component fulfills its intended use when placed in its intended environment.
Testing activities cover all aspects of a product such as; operation, training, maintenance, and support.
The test environment should represent the intended environment for the solution.
Verification activity during requirements, design and engineering has so far ensured that "you built it right;"
whereas, testing ensures that "you have built the right thing." End users should be involved as much as possible
and as early as possible in testing activities. Do not leave it until final acceptance to involve users.
This identifies any mismatch with requirements early and helps set expectations on what will be delivered.
The amount of testing applied to a component is done on the basis of its relationship to user needs.
Some components will require more vigorous testing than others.
Typical testing activities include:
- System Test (group of components)
- Integration Test (group of components with other groups)
- Performance test
- User Acceptance test
- Test of training materials
- Test of Operational procedures
- DR test
- Failover test
- Backup and Restore test
The type of testing to be performed will drive the tools, resources, equipment and environments required.
The type of testing to be performed should be agreed so they are clearly understood and agreed by all the
relevant stakeholders. Early agreement is important as it can have a significant impact on project costs.
Generally, it is good practice for different people to be performing the testing to those involved in the
construction (for example; having someone else proof read a manual or test a process).
For large projects this may be a dedicated testing team. For small projects and enhancements this ideally
should also be someone different.
Test cases should be
developed from the requirement, not from the design constructed.
Test cases for the various types of testing need to be developed. These can be derived from:
- Product and product-component requirements
- Customer acceptance criteria
- Environmental performance
- Performance requirements
The components are tested to ensure that they are suitable for use in their intended operating environment.
Results are collected and analysed. To be acceptable to users, a component must perform as expected in its intended
The results of the testing activities are analysed to identify any remedial work or issues.
The analysis reports should indicate whether the needs were met; in the case of deficiencies,
these reports document the degree of success or failure and categorize probable cause of failure.
Based on this analysis several actions can be taken:
- Accept the defect
- Review the requirement (is it really needed?)
- Review the design (can we design this out?)
- Review the component (can we fix the program?)
- Review the environment (will this happen in the live environment?)