System testing is a type of software testing that evaluates the overall functionality and performance of a complete and fully integrated software solution. It is performed on a complete integrated system to evaluate the systems compliance with its specified requirements. System testing takes, as its input, all of the integrated components that have passed integration testing. The purpose of integration testing is to detect any inconsistencies between the units that are integrated together, called assemblages. System testing seeks to detect defects both within the "inter-assemblages" and also within the system as a whole.
System testing is performed on the entire system in the context of either functional requirement specifications (FRS) or system requirement specification (SRS), or both. It is intended to test up to and beyond the bounds defined in the software or hardware requirements specification(s) . System testing tests not only the design but also the behavior and even the believed expectations of the customer.
System testing is the third level of testing in the software development process. Its typically performed before acceptance testing and after integration testing. It is a type of black box testing that focuses on the functionality of an application rather than the inner workings of a system, which white box testing is concerned with.
The main benefits of system testing include customer satisfaction, visibility into the stability of a product at every stage of development, and improved user confidence. System testing is imperative for interconnected systems because any system or software defect can cause extreme complications for the consumers.