About Performance Testing
Performance testing is testing to determine the responsiveness, throughput, reliability or scalability of a system under a workload. Performance testing is commonly conducted to accomplish the following:
Performance testing – is testing to determine or validate the speed, scalability, and/or stability characteristics of the system under test. Performance is concerned with achieving response times, throughput, and resource utilization levels that meet the performance objectives for the application under test.
Load testing – a type of performance test focused on determining or validating performance characteristics of the product under test when subjected to workload models and load volumes anticipated during production operations. These tests are designed to answer questions such as “How many?”, “How big?”, and “How much?”.
Stress testing – a type of performance test focused on determining or validating performance characteristics of the product under test when subjected to workload models, and load volumes beyond those anticipated during production operations. Stress tests may also include tests focused on determining or validating performance characteristics of the product under test when subjected to workload models and load volumes when the product is subjected to other stressful conditions, such as limited memory, insufficient disk space, or server failure. These tests are designed to determine under what conditions an application will fail, how it will fail, and what indicators can be monitored to warn of an impending failure.
Reasons for Performance Testing
Some of the most common reasons for conducting performance testing can be summarized as follows:
Performance testing is typically done to help identify bottlenecks in a system, establish a baseline for future testing, determine compliance with performance goals and requirements, and/or collect other performance-related data to help stakeholders make informed decisions related to the overall quality of the application being tested. In addition, the results from performance testing and analysis can help you to estimate the hardware configuration required to support the application(s) when you “go live” to production operation.
The performance testing approach used in this guide consists of the following activities:
Activity 1. Identify Test Environment. Identify the physical environment and the business environment. The physical environment includes the appropriate hardware, software, and network configurations. The business environment includes business objectives, risks, team roles and contacts.
Activity 2. Identify Performance Acceptance Criteria. Identify the response time, throughput and resource utilization goals and constraints. In general, response time is generally a user concern, throughput is a business concern, and resource utilization is a system concern.
Activity 3. Plan and Design Tests. Identify key scenarios and metrics.
Activity 4. Configure Test Environment. Get the tools and resources prepared to execute the strategy as features and components become available for test.
Activity 5. Implement Test Design. Identify the workloads and workload profiles. Create the performance tests.
Activity 6. Execute Test. Run your tests.
Activity 7. Analyze, Report, and Retest. If all of the metric values are within accepted limits and none of the set thresholds have been violated, the tests have passed and you have finished testing that particular scenario on that particular configuration.
Performance testing is testing to determine the responsiveness, throughput, reliability or scalability of a system under a workload. Performance testing is commonly conducted to accomplish the following:
- Evaluate against performance criteria
- Compare systems to find which one performs better
- Find the source of performance problems
- Find throughput levels etc
Performance testing – is testing to determine or validate the speed, scalability, and/or stability characteristics of the system under test. Performance is concerned with achieving response times, throughput, and resource utilization levels that meet the performance objectives for the application under test.
Load testing – a type of performance test focused on determining or validating performance characteristics of the product under test when subjected to workload models and load volumes anticipated during production operations. These tests are designed to answer questions such as “How many?”, “How big?”, and “How much?”.
Stress testing – a type of performance test focused on determining or validating performance characteristics of the product under test when subjected to workload models, and load volumes beyond those anticipated during production operations. Stress tests may also include tests focused on determining or validating performance characteristics of the product under test when subjected to workload models and load volumes when the product is subjected to other stressful conditions, such as limited memory, insufficient disk space, or server failure. These tests are designed to determine under what conditions an application will fail, how it will fail, and what indicators can be monitored to warn of an impending failure.
Reasons for Performance Testing
Some of the most common reasons for conducting performance testing can be summarized as follows:
- To compare the current performance characteristics of the application with the performance characteristics that equate to end-user satisfaction when using the application.
- To verify that the application exhibits the desired performance characteristics, within the budgeted constraints of resource utilization. These performance characteristics may include several different parameters such as the time it takes to complete a particular usage scenario (known as response time) or the number of simultaneous requests that can be supported for a particular operation at a given response time. The resource characteristics may be set with respect to server resources such as processor utilization, memory, disk input/output (I/O), and network I/O.
- To analyze the behavior of the Application at various load levels. The behavior is measured in metrics related to performance characteristics, as well as other metrics that help to identify bottlenecks in the application.
- To identify bottlenecks in the Application. Bottlenecks can be caused by several issues such as memory leaks, slow response times, or contention under load.
- To determine the capacity of the application’s infrastructure, and to determine the future resources required to deliver acceptable application performance.
- To compare different system configurations to determine which one works best for both the application and the business.
- Revenue losses to the competition due to scalability, stability issues.
- Loss of credibility that may affect the branding image of the company.
Performance testing is typically done to help identify bottlenecks in a system, establish a baseline for future testing, determine compliance with performance goals and requirements, and/or collect other performance-related data to help stakeholders make informed decisions related to the overall quality of the application being tested. In addition, the results from performance testing and analysis can help you to estimate the hardware configuration required to support the application(s) when you “go live” to production operation.
The performance testing approach used in this guide consists of the following activities:
Activity 1. Identify Test Environment. Identify the physical environment and the business environment. The physical environment includes the appropriate hardware, software, and network configurations. The business environment includes business objectives, risks, team roles and contacts.
Activity 2. Identify Performance Acceptance Criteria. Identify the response time, throughput and resource utilization goals and constraints. In general, response time is generally a user concern, throughput is a business concern, and resource utilization is a system concern.
Activity 3. Plan and Design Tests. Identify key scenarios and metrics.
Activity 4. Configure Test Environment. Get the tools and resources prepared to execute the strategy as features and components become available for test.
Activity 5. Implement Test Design. Identify the workloads and workload profiles. Create the performance tests.
Activity 6. Execute Test. Run your tests.
Activity 7. Analyze, Report, and Retest. If all of the metric values are within accepted limits and none of the set thresholds have been violated, the tests have passed and you have finished testing that particular scenario on that particular configuration.