System testing occurs when a complete and integrated software is tested. The purpose of this test is to evaluate the compliance of the system within the specified requirements. It also helps with approving and checking business requirements. These include functional, technical, and any non-functional requirements of the application that deal with the architecture as a whole.
System testing falls under the scope of black-box testing. The following diagram highlights where system testing lies in the software testing hierarchy:
There are several types of system tests; however, the ones most commonly used by software companies are: