System testing

System testing, a.k.a. end-to-end (E2E) testing, is testing conducted on a complete software system.

System testing describes testing as at the system level to contrast to testing at the integration or unit level.

System testing often serves the purpose of evaluating the system's compliance with its specified requirements  often from a functional requirement specification (FRS), a system requirement specification (SRS), another type of specification or multiple.

System testing can detect defects in the system as a whole.

System testing can verify the design, the behavior and even the believed expectations of the customer. It is also intended to test up to and beyond the bounds of specified software and hardware requirements.

Approaches

 * Destructive testing: tests are carried out to the specimen's failure, in order to understand a specimen's performance or material behaviour under different loads.
 * Nondestructive testing: analysis techniques to evaluate the properties of a material, component or system without causing damage.
 * Fault injection: A testing technique which stress the system in an unusual way to examine the system behavior.