Testing plays a key role in verifying the correctness of software, and confirming that the requirements have been correctly implemented. It is a constructive and destructive activity in that while on the one hand it aims to verify correctness, on the other hand it aims to find as many defects as possible.
Software testing provides confidence that the product is ready for release to potential customers, and the test manager highlights any risks associated with the product, and these are considered prior to its release. The test manager and test department can be influential in an organization by providing strategic advice on product quality, and by encouraging organization change to improve the quality of the software product through the use of best practice in software engineering.
The various types of testing that may be carried out are discussed including unit, system, performance, regression, usability and user acceptance testing. Test planning, test case definition, test tracking, test metrics, and test reporting are discussed.