Performance testing : An Overview


Published on

Basic overview of Performance Testing

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Master Title: Font – Arial, Size - 22pt, Color – Orange (R:255/G:102/B:0) Subtitle: Font – Arial, Size - 16pt, Color – Grey (R:77/G:77/B:77)
  • Master Title: Font – Arial, Size - 22pt, Color – Orange (R:244/G:185/B:85) Master Text Style: Font – Arial, Size - 20pt, Color – Grey (R:77/G:77/B:77) Second Level: Font – Arial, Size - 18pt, Color – Grey (R:77/G:77/B:77) Third Level: Font – Arial, Size - 16pt, Color – Grey (R:77/G:77/B:77) Fourth Level: Font – Arial, Size - 16pt, Color – Grey (R:77/G:77/B:77) Fifth Level: Font – Arial, Size - 16pt, Color – Grey (R:77/G:77/B:77)
  • Performance testing : An Overview

    1. 1. Performance Testing Highlights Sharad Jain Date – 07 th Feb 2011
    2. 2. What is Performance Testing <ul><li>Performance testing – refers to test activities on checking system performance </li></ul><ul><li>The major objectives of performance testing: </li></ul><ul><ul><li>To confirm and validate the specified system </li></ul></ul><ul><ul><li>performance requirements. </li></ul></ul><ul><ul><li>To check the current product capacity to answer the questions from customers and marketing people. </li></ul></ul><ul><ul><li>To identify performance issues and performance degradation in a given system </li></ul></ul>
    3. 3. Differences b/w Performance, Load and Stress Test <ul><li>Performance Test determine the run time “ behavior ” of the application and its supporting infrastructure, under certain conditions. </li></ul><ul><ul><li>Performance testing is used to measure several system characteristics, such as processing speed, response time, resource consumption, throughput and efficiency. </li></ul></ul><ul><li>Load Test determine the applications “ behavior under load” , up to and including its limits (not just as its limits). </li></ul><ul><ul><li>Load tests specifically refers to the load size (number of concurrent users) and related values. </li></ul></ul><ul><li>Stress Test determines the application ability to handle large amount of data </li></ul><ul><ul><li>Stress testing can be much more successful with the full load applied to the server. </li></ul></ul>
    4. 4. Why Performance Testing? <ul><li>Scalability – Will the application handle the expected load and beyond? </li></ul><ul><li>Stability – Is the application stable under expected and unexpected user loads? </li></ul><ul><li>Availability – Is the application available to the end user without any interruption? </li></ul><ul><li>Serviceability – Can the system quickly recover from a Failure? </li></ul><ul><li>Speed - Does the application respond quickly. </li></ul><ul><li>Confidence – Are you sure that clients will have a positive experience on go-live day? </li></ul>
    5. 5. Performance Requirements <ul><li>Following are some representative performance requirements which system would be expected to meet </li></ul><ul><ul><li>The system should support peak load of x active users and y transactions/sec. (for web based application it could be requests/sec) </li></ul></ul><ul><ul><li>At peak load, system response to the X% of users should be Y Sec. </li></ul></ul><ul><ul><li>System should be able to support 24 X 7 operation (reliability) </li></ul></ul><ul><ul><li>System should be scalable to meet growth in demand. </li></ul></ul><ul><li>The response time requirement could vary based on </li></ul><ul><ul><li>Geographical location of users </li></ul></ul><ul><ul><li>Connection bandwidth (especially true for Internet users) </li></ul></ul><ul><ul><li>Transaction complexity. </li></ul></ul>
    6. 6. Performance parameters to consider <ul><ul><li>Throughput : The number of requests processed per unit time (per second) </li></ul></ul><ul><ul><li>Latency : The time taken in establishing the network handshake. </li></ul></ul><ul><ul><li>Efficiency : Throughput - Latency </li></ul></ul><ul><ul><li>Degradation : The Throughput of the application when the concurrent requests are gradually increased – Test to see if the performance of the application degrades when the number of concurrent requests is increased. </li></ul></ul><ul><ul><li>Longevity : Execute tests for a pre-determined time interval with a pre-determined load. Monitor the health of the application throughout the test execution and check for memory leaks and analyze the GC dump </li></ul></ul>
    7. 7. What Performance Problem may arise ? <ul><li>Memory-related problems: </li></ul><ul><ul><li>Application uses more memory than it should. </li></ul></ul><ul><ul><li>Memory leaks. </li></ul></ul><ul><ul><li>Excessive garbage allocation, i.e. application creates a lot of temporary objects. </li></ul></ul><ul><li>Code-related problems: </li></ul><ul><ul><li>Application algorithms are not optimal, and there are performance bottlenecks. </li></ul></ul><ul><li>Hardware/Software related Problem: </li></ul><ul><ul><li>Hardware you select for your database is not in vendor Hardware Compatibility List </li></ul></ul>
    8. 8. Scalability <ul><li>This section talks about the impact of scaling up the Hardware resources from the suggested minimum Hardware requirements </li></ul><ul><ul><li>Processor impact </li></ul></ul><ul><ul><li>Database impact </li></ul></ul><ul><ul><li>I/O impact </li></ul></ul><ul><ul><li>Network bandwidth Impact </li></ul></ul>
    9. 9. Processor Impact <ul><li>Single Processor v/s Multi Processor The response time for searching or archiving a document decreased by 50 - 80% on adding an additional processor in a multi-threaded scenario (info based on assumptions) </li></ul>
    10. 10. Data base Impact <ul><li>Single Processor v/s Multi Processor </li></ul><ul><ul><li>As the number of concurrent users using application services are increased, it is observed that Oracle performs better than MS SQL Server with a 5 - 8% improvement in the performance (info based on assumptions) </li></ul></ul>
    11. 11. I/O Impact <ul><li>I/O has considerable impact on the performance of the Application with 15% to 18% reduction in the response time especially when there are huge reports to be generated on the system . </li></ul>
    12. 12. Network bandwidth Impact <ul><li>A good Network connectivity between the Client, Application Server and database improves the performance considerably. There was 40% (approx) improvement in the throughput of the application when the Network Connectivity between Database system and Application Server system was increased from 100 mbps to 1Gbps (info based on assumptions). </li></ul>
    13. 13. Identify the Performance issues Application Code Application Design. JVM settings Application server configuration and usage Web Server Configuration and usage Database Schema, design, configurations, resource usage, SQLs, Indexes etc OS Resources – CPU, Network, Disk, Memory, OS kernel, Storage etc Browser settings, Client system, Page size, amount of data displayed
    14. 14. Performance Bottleneck Sources
    15. 15. Database Server Causes
    16. 16. App Server Causes
    17. 17. Network Causes
    18. 18. Software and Hardware Requirements <ul><li>Hardware Requirement </li></ul><ul><ul><li>Details of system to be tested </li></ul></ul><ul><ul><li>Workstation required for load simulation </li></ul></ul><ul><ul><li>Workstation required for running monitoring utilities </li></ul></ul><ul><ul><li>Network Equipment (e.g. Router, Firewall, Modems etc.) </li></ul></ul><ul><li>Software Requirement </li></ul><ul><ul><li>System Software </li></ul></ul><ul><ul><li>Load Testing Tools </li></ul></ul><ul><ul><li>Performance Monitoring utilities </li></ul></ul><ul><ul><li>Miscellaneous utilities like graph generation etc. </li></ul></ul>
    19. 19. Performance Testing Process <ul><ul><li>Understand system and identify performance requirements </li></ul></ul><ul><ul><li>Identify performance test objectives. </li></ul></ul><ul><ul><li>Define performance test strategy: </li></ul></ul><ul><ul><li>Identify the needs of performance test tools and define performance test environment </li></ul></ul><ul><ul><li>Write performance test plan </li></ul></ul><ul><ul><li>Set up the target system and performance test beds </li></ul></ul><ul><ul><li>Design performance test cases and test suite </li></ul></ul><ul><ul><li>Performance test execution and data collection </li></ul></ul><ul><ul><li>Performance analysis and reporting </li></ul></ul>
    20. 20. Performance Testing Approach <ul><li>Performance testing: (during production) </li></ul><ul><ul><li>Measure and analyze the system performance based on performance test data and results </li></ul></ul><ul><li>Performance simulation: (pre-production) </li></ul><ul><ul><li>Study and estimate system performance using a simulation approach </li></ul></ul><ul><li>Performance measurement at the customer site: (post-production) </li></ul><ul><ul><li>Measure and evaluate system performance during system operations </li></ul></ul>
    21. 21. Performance Modeling Project Overview <ul><li>In order to analyze performance behavior, improve product performance, and serve as the foundation for capacity planning </li></ul><ul><li>The overall goal was to design and develop a model that would be: </li></ul><ul><ul><li>realistic and general enough to be widely applicable across a variety of customer configuration and application scenarios in Altair target market. </li></ul></ul><ul><ul><li>simple enough to be easily usable by the field sales and support organizations to assist customers make system configuration decisions </li></ul></ul><ul><ul><li>possible to validate so that it could be applied with confidence. </li></ul></ul>
    22. 22. What is the resultant deliverable <ul><li>The resultant of this performance testing exercise is a “ Performance and Scalability document ” with results of the tests performed and hardware recommendations. The document would not be a sizing guide per se but will have: </li></ul><ul><ul><li>Throughput and scalability numbers for the end users to consume </li></ul></ul><ul><ul><li>Test metrics - numbers and graphs related to the tests executed </li></ul></ul><ul><ul><li>And an internally consumable document containing performance recommendations for the developers to work on. </li></ul></ul><ul><ul><li>Also, note that the resultant document is not a Sizing guide. But this document will definitely be a good input to the performance team to come up with a sizing guide for the future releases. </li></ul></ul>
    23. 23. Thank You
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.