A test of capacity to achieve a desired result. Often the "catch all" for all performance related types of testing. Often used in different ways by different people. Performance tests are normally interested in both "how much"? and "how fast"?
Performance testing involves the testing of the product under stress, maximizing the load of the application or volume testing and timing the ability of product to handle capacity or load over a specific period of time.
Any testing designed to understand the performance dynamics of the product.
Products sometimes have specific performance or efficiency objectives, stating such properties as response times and throughput rates under certain workload and configuration conditions. If these requirements are defined, then it is important to exercise these performance requirements as stated and beyond. For example, it may be stated that the product will return customer data within 5 seconds after the search key is pressed.
"Determine performance, compare to requirements/goals/SLA's and identify bottlenecks". Identifies User Experience at various loads and or workload distributions that typically represent 80+% of the user community. Testing also identifies critical bottlenecks. Reports show how the measured User Experience compares to requirements, goals and/or service level agreements. Reports will also show symptoms and indications of bottlenecks others can use during tuning or risk assessment exercises. Component metrics are also often collected. Somewhat iterative including limited interaction with developers. "What is the performance and why?"
Performance testing is a class of tests implemented and executed to characterize and evaluate the performance related characteristics of the target-of-test such as the timing profiles, execution flow, response times, and operational reliability and limits. Different types of performance tests, each focused on a different test objective are implemented throughout the system development life cycle (SDLC
). Early, in the analysis and design phase, performance tests are focused on identifying and eliminating architecture and design related performance bottlenecks. In the construction phase, additional types of performance tests are implemented and executed to tune the software and environment (optimizing response time and resources), and to verify that the application(s) and system acceptably handle high load and stress conditions, such as a large numbers of transactions, clients, and/or volumes of data.
Performance Testing activities focuses on determining the actual current performance and stability of an existing application.
What do we get from Performance Testing Results?
- Most often we see results that meet or exceed the required levels of scalability
- Knowing the actual break point eliminates the tendency to persistently over-engineer
- Take appropriate action to avoid the break point
- More efficient and better growth decisions are made by understanding the current system limitations
- Customers feel better about their systems with real results, past reliance was purely on available documentation, blind faith or (at best) some very limited performance testing.