This document discusses different levels of software testing: unit testing, integration testing, system testing, and acceptance testing. It provides details on each type of testing, including what each tests, who performs it, and key objectives.
Unit testing is done by developers to test individual program units/components and ensure they meet requirements. Integration testing combines and tests interfaces between units. System testing evaluates the full system against requirements from an end-to-end perspective. Acceptance testing is done by customers to determine if the system is acceptable for delivery prior to final acceptance.
Related topics: