2. Agenda
• What is Performance Testing?
• What is Performance Tuning?
• What is Performance Engineering?
• Why PT?
• Attributes of PT
• Performance Test Types
• Optimization mechanisms
• Myths
• PT cycle
• PT Tools
• Tools Architecture
• PT in a Nutshell?
4. What is Performance testing?
Discipline concerned with detecting and reporting the
current behavior of the software system.
5. What is Performance Tuning?
Process by which software is tested and tuned to improve the
system performance.
6. What is Performance Engineering?
Process that applied
at every phase of
the SDLC.
7. Why Performance testing?
• To confirm and validate SLA
• To compare two systems to find which performs better or to
check the current product capacity.
• To measure what parts of the system or workload causes the
system to perform badly.
8. Attributes of Performance Testing
Back to Ravana’s Story
• Speed
• Scalability
• Stability
• Confidence
11. Performance Testing Myths
• PT is done to break the code.
• PT is all about learning and using a load
testing tool & vice-versa
• Results that are true for the testing server
can be simply scaled up or down.
• PT can ONLY be done towards the end of
the testing life cycle.
Performance Testing - A performance test is a technical investigation done to determine or validate the responsiveness, speed, scalability, and/or stability characteristics of the product under test. Load Testing - Load testing is conducted to verify that your application can meet your desired performance objectives; these performance objectives are often specified in a service level agreement (SLA). A load test enables you to measure response times, throughput rates, and resource-utilization levels, and to identify your application’s breaking point, assuming that the breaking point occurs below the peak load condition. Endurance testing is a subset of load testing. An endurance test is a type of performance test focused on determining or validating the performance characteristics of the product under test when subjected to workload models and load volumes anticipated during production operations over an extended period of time. Endurance testing may be used to calculate Mean Time Between Failure (MTBF), Mean Time To Failure (MTTF), and similar metrics.Stress Testing - The goal of stress testing is to reveal application bugs that surface only under high load conditions. These bugs can include such things as synchronization issues, race conditions, and memory leaks. Stress testing enables you to identify your application’s weak points, and shows how the application behaves under extreme load conditions. Spike testing is a subset of stress testing. A spike test is a type of performance test focused on determining or validating the performance characteristics of the product under test when subjected to workload models and load volumes that repeatedly increase beyond anticipated production operations for short periods of time.Capacity test - Capacity testing is conducted in conjunction with capacity planning, which you use to plan for future growth, such as an increased user base or increased volume of data. For example, to accommodate future loads, you need to know how many additional resources (such as processor capacity, memory usage, disk capacity, or network bandwidth) are necessary to support future usage levels. Capacity testing helps you to identify a scaling strategy in order to determine whether you should scale up or scale out.
This process aims to optimize the most important application performance attribute, user experience. testing and tuning have been distinctly separate and often competing realms.
which ensures that a solution will be designed, implemented, and operationally supported to meet the non-functional performance requirements defined for the solution.
To confirm and validate the specified system performance requirements. To compare two systems to find which performs better or to check the current product capacity. To measure what parts of the system or workload causes the system to perform badly.
Speed -- Does the application respond quickly enough for the intended users? (Need to point the standards)Scalability -- Scalability risks concern not only the number of users an application can support, but also the volume of data the application can contain and process, as well as the ability to identify when an application is approaching capacity. – Database capacity– File Server capacity– Back-up Server capacity– Data growth ratesStability -- Is the application stable under expected and unexpected user loads? (Reliability, uptime, and recoverability) Although stability risks are commonly addressed with high-load, endurance, and stress tests What happens if…– there are more users than we expect?– all the users do the same thing?– a user gets disconnected?– there is a Denial of Service Attack?– the web server goes down?– we get too many orders for the same thing?Confidence – Are you sure that users will have a positive experience on go-live day?
Project Assessment - Production architecture, Test architecture,Available tools or evaluationPlanning the Test - Critical application usage scenarios, Key Performance Counters, Scripts planning (Realistic User model ) Hits per Second Transactions per Second Response Time Round Trip Time
Project Assessment - Production architecture, Test architecture,Available tools or evaluationPlanning the Test - Critical application usage scenarios, Key Performance Counters, Scripts planning (Realistic User model ) Hits per Second Transactions per Second Response Time Round Trip Time