Not unlike end-to-end testing, System Testing verifies the behavior of the entire system against business, system, and functional requirements. It’s generally done after the unit testing and integration testing has been completed. A type of black box testing, system testing utilizes use cases, requirements, specifications, business rules, and other high level documentation and descriptions. The goal of system testing is to verify that the system meets its intended purpose based on the user’s point of view. In depth knowledge of design or code shouldn’t be since testers are concentrating on finding issues with the application behavior and expectation of the end user. For best results, system testing should be performed in an environment as close as possible to the projected production environment. Since the entire system functionality is being tested for the first time, system testing can be the most time consuming testing process in the SDLC. However, it is extremely important and is often the last step before a production release, or before acceptance testing.