Objective/Need of Performance testing
At the highest level, performance testing is almost always conducted to address one or more risks related to expense, opportunity costs, continuity, and/or corporate reputation. Some more specific reasons for conducting performance testing include:
Assessing release readiness by
- Enabling us to predict or estimate the performance characteristics of an application in production and evaluate whether or not to address performance concerns based on those predictions. These predictions are also valuable to the stakeholders who make decisions about whether an application is ready for release or capable of handling future growth, or whether it requires a performance improvement/hardware upgrade prior to release.
- Providing data indicating the likelihood of user dissatisfaction with the performance characteristics of the system.
- Providing data to aid in the prediction of revenue losses or damaged brand credibility due to scalability or stability issues, or due to users being dissatisfied with application response time.
Assessing infrastructure adequacy by:
- Evaluating the adequacy of current capacity.
- Determining the acceptability of stability.
- Determining the capacity of the application’s infrastructure, as well as determining the future resources required to deliver acceptable application performance.
- Comparing different system configurations to determine which works best for both the application and the business.
- Verifying that the application exhibits the desired performance characteristics, within budgeted resource utilization constraints.
Assessing adequacy of developed software performance by:
- Determining the application’s desired performance characteristics before and after changes to the software.
- Providing comparisons between the application’s current and desired performance characteristics.
Improving the efficiency of performance tuning by:
- Analyzing the behavior of the application at various load levels.
- Identifying bottlenecks in the application.
- Providing information related to the speed, scalability, and stability of a product prior to production release, thus enabling you to make informed decisions about whether and when to tune the system.
- Determining business transaction response time
- Identify system bottlenecks
- Server resource usage e.g. CPU, Memory and Disk Space Network Bandwidth(throughput) and Latency(delay) e.g. Limited network throughput speeds serve to introduce a latency(delay) when transmitting larger amounts of data at specific location
- Determining system (hardware/software) optimal configuration
- Verifying current system capacity and scalability for future growth
- Determining how many users the system can support
- Determining if the application will meet its SLA