System testing is a type of testing where the application as a whole is tested for its compliance to functional and non-functional requirements. It is carried out by the QA team after the completion of integration testing and before the final acceptance testing. Since in system testing the whole system is tested end to end and the knowledge of coding or internal architecture is not required. Hence, system testing comes under Black-box Testing.
As stated earlier, in system testing both the functional and non-functional requirements of the system are evaluated. Hence, system testing involves different types of testing techniques which evaluates the whole system and its variuos attributes. The different type of system testing are- Functional testing, Performance testing, Usability testing, Reliability testing, Security testing, Scalability testing, Installation testing etc.