Telecommunications Performance Engineering

In its most abstract sense performance testing is the loading of a system, or a part of a system, with a synthetic workload, i.e. taking a real system and using specialist scripts and tools to emulate the activities of multiple users (where a user may be another system) performing typical user actions. Atypical workloads are sometimes used to stretch a system to, and beyond, the anticipated limit to add confidence that it will be able to support, for example, a sudden surge in workload volumes stimulated by marketing activity. This subset of performance testing is known as stress testing.
Performance testing may have several objectives, for example:
to identify bottle-necks and determine the optimum configuration;
to determine the capacity of a system end to end;
to ensure the system functions correctly when under load;
to investigate what happens when the system is overloaded;
to evaluate new products or components.
These are the familiar objectives of all performance engineering work.
What differentiates performance testing is that the focus of the work is on a real system with a controlled load rather than a paper or computer simulation-based exercise, or a live system with a live and uncontrolled load. An advantage that performance testing has is that it works with the full complexity of the system in its implemented state, rather than a simplified model, or how it should work according to the design. The downside...