Application performance testing is often viewed solely as a pre-site-launch activity to offer assurance the software will work in a live environment. In addition to this baseline objective, we test to predict the capacity of the system and to identify future scaling bottlenecks. It is also true that optimized software will reduce present and future costs by making the application more efficient.

This effort needn’t be extremely costly, and the approach is two-fold. First, we execute iterative performance tests throughout development. This mitigates end-of-project schedule uncertainty and identifies performance issues early. All tests use realistic amounts data including orders, categories, products, and users. These iterative tests apply smaller amounts of load to under-sized hardware to isolate several classes of performance and stability issues.

Second, a software release candidate is subjected to three different kinds of tests: peak load, stress-to-failure and endurance. Each of these tests further exposes unique types of traffic-related problems.

The end result is efficient software, verification of peak capacity and a scaling model used to drive any expansion strategy.