System Testing is where we have a test environment that mirrors the production environment. The tester will be creating and executing tests that mirror how a user is expected to use the system. The tests will indicate the input into the system, as well as the expected responses from the system.
Another aspect of system testing is invalid input. In this case, the tests have incorrect values for the purposes of testing the resiliency of the system. Examples include: placing negative numbers into fields that expect to only get positive numbers, placing numbers that are outside of the expected range, pasting long swaths of text into a text field. The end result of these tests are to ensure that the neither accidental input nor malicious input will cause any harm.
Ideally, all system tests should be able to be automated. This way, the tester does not have to manually step through each test every time the system needs to be verified.