Types of performance tests for WebSphere Commerce | Scalability testing


Stress testing

Stress testing is a form of performance or load testing that is used to determine the stability of a given system or entity. It involves testing beyond normal operational capacity, usually at or beyond the peak workload expected, often to a breaking point, in order to observe the results, and to find breaking points or bottlenecks. For example, a Web server may be stress tested using scripts, bots, and various denial-of-service tools to observe the performance of a Web site during peak loads.

The goal is to incorporate various workloads that will place abnormal burdens or specific areas of concern. These areas include CPU, memory, MQ Queues, I/O, threads, connections, JVM, and content.

Another aspect of stress testing is recovery testing. Here the goal is to verify the ability of the system to recover from varying degrees of failure. Such testing is conducted to evaluate a system or component at or beyond the limits of its specified business requirements. Stress testing methodology includes processes and technologies for testing system architecture to determine the maximum sustainable load for the site's hardware and software applications. The process defines how a software system is put under heavy load and demanding conditions in an attempt to make it fail. Such testing attempts to cause failures involving how the system behaves under extreme but valid conditions (for example, extreme utilization, insufficient memory, inadequate hardware, and dependency on over-utilized shared resources).

Stress testing determines how the system degrades and eventually fails as conditions become extreme (for example, the number of simultaneous users increases, queries that return the entire contents of a database, queries with an extreme number of restrictions, and an entry at the maximum amount of data in a field). This technique measures whether the application environment is properly configured to handle expected, or potentially unexpected, high transaction volumes. Ideally, stress testing emulates the maximum system capacity that the application can support before causing a system outage or disruption.