What are types of Testing in Software Engineering?

A software product is normally tested in three levels or stages:
1. Unit testing
2. Integration testing
3. System testing

Unit testing:

It is referred to as testing in the small, whereas integration and system testing are referred to as testing in the large.

Integration testing:

It is carried out after all the modules have been unit tested. Successful completion of unit testing, to a large extent, ensures that the unit as a whole works satisfactorily. In this context, the objective of integration testing is to detect the errors at the module interfaces.

System testing:

These are designed to validate a fully developed system to assure that it meets its requirements. The test cases are therefore designed solely based on the SRS document.