System testing involves testing a fully integrated software application to verify it meets requirements. It is done after unit and integration testing. System testing checks interactions between components, verifies functional and non-functional requirements, and validates the architecture. Test cases cover use cases and validate all types of requirements. The system is tested as a whole in a controlled environment to check for defects before delivery.