Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Best Practices In Load And Stress Testing Cmg Seminar[1]


Published on

  • Be the first to comment

Best Practices In Load And Stress Testing Cmg Seminar[1]

  1. 1. Best Practices in Performance Testing Jennifer Turnquist Storage Service Line Director Lionbridge Technologies
  2. 2. Lionbridge Profile <ul><li>Public Company (Nasdaq: LIOX)‏ </li></ul><ul><ul><li>Nearly $400M+ in revenues </li></ul></ul><ul><ul><li>Profitable </li></ul></ul><ul><li>Deep expertise across the application life cycle </li></ul><ul><ul><li>Application Development & Maintenance </li></ul></ul><ul><ul><li>Testing (Independent V&V)‏ </li></ul></ul><ul><ul><li>Content Development, Conversion & Enhancement </li></ul></ul><ul><ul><li>Globalization </li></ul></ul><ul><li>Worldwide scale and capability </li></ul><ul><ul><li>Over 4000 employees operating in 25 countries (Scale)‏ </li></ul></ul><ul><ul><li>SEI CMM Level 5 certified process model (Quality)‏ </li></ul></ul>8 of the world’s 10 most valuable companies are Lionbridge customers BusinessWeek Global 1000, July 2004
  3. 3. Services Designed around our Client’s Need Lionbridge A Trusted Partner Around the World Global Development & Testing Solutions Global Language & Content Solutions Interps Software Development Lifecycle Application Development Testing & Certification Maintenance & Support Full Content Lifecycle Localization/Translation Technical Publications eLearning Courseware <ul><li>Off-shore platforms leverage more than staff in China, India, and Eastern Europe </li></ul><ul><li>Global footprint enables local interaction and facilitates worldwide release and support </li></ul><ul><li>Trusted, US-based public company protects against IP loss </li></ul><ul><li>Localization services spanning more than 80 languages </li></ul><ul><li>Proprietary web-architected TM and terminology solution accelerates production and improves consistency </li></ul><ul><li>Authoring and eLearning development services integrate seamlessly with localization to address global demand </li></ul>
  4. 4. VeriTest: Setting the Standard in Testing Since 1987 <ul><li>World’s largest independent testing company </li></ul><ul><ul><li>Over 400 test architects, engineers, and analysts in 11 labs across US, Europe, Asia </li></ul></ul><ul><ul><li>Rapid expansion in VeriTest India </li></ul></ul><ul><ul><li>From PDAs and PCs to 32-way servers </li></ul></ul><ul><ul><li>Data center class storage lab </li></ul></ul><ul><li>Industry leader </li></ul><ul><ul><li>Exclusive provider and architect of industry- leading certification programs </li></ul></ul><ul><ul><li>Developer of PC Magazine benchmarks </li></ul></ul><ul><ul><li>Test and publish industry standard ISP benchmarks </li></ul></ul><ul><ul><li>Operate globally-networked onsite to offshore model </li></ul></ul>
  5. 5. The Lionbridge Team Local Connections, Global Efficiency 4,000+ Worldwide Staff Experience and Efficiency
  6. 6. Today’s Agenda <ul><li>Why Test Performance? </li></ul><ul><li>Different Types of Performance Testing </li></ul><ul><li>Performance Testing Roadmap </li></ul><ul><li>Choosing the Right Testing Tools </li></ul><ul><li>Top 10 performance testing pitfalls </li></ul>
  7. 7. <ul><li>&quot;The standard philosophy of 'test to destruction'... will probably give you an idea of roughly how many users your site can handle at once, but it won't always tell you why the site fails to function properly. And without knowing why, you're not likely to be able to do much about it...&quot; </li></ul><ul><li>-- Extreme Tech </li></ul>
  8. 8. Why Test Performance? <ul><li>The internet and IT infrastructure crucial to business </li></ul><ul><li>Users—employees, business partners, customers—rely on portals, applications, and data to do their jobs </li></ul><ul><li>Cost of failure can be devastating </li></ul><ul><li>Performance testing in the enterprise is intermittent, cyclical, often prompted by upgrades </li></ul><ul><li>Testing is highly specialized </li></ul>
  9. 9. The high cost of not conducting performance testing <ul><li>Performance testing overlooked until disaster strikes </li></ul><ul><li>Lost and abandoned sales - most visible result of poor performance testing but… </li></ul><ul><li>Efficiency of mission-critical systems directly impacts business productivity </li></ul><ul><li>Preventing problems—lost productivity, lost business, lost reputation, and even injury or death—is a major incentive </li></ul><ul><li>Knowing the vital performance metrics = ammunition to IT departments when planning and justify purchasing decisions </li></ul><ul><li>Provides the ability to demonstrate to investors and other critical stakeholders that the company’s infrastructure is adequate </li></ul>
  10. 10. Events that trigger performance testing <ul><li>Build vs. buy </li></ul><ul><li>Evolving requirements </li></ul><ul><li>Technology due diligence </li></ul><ul><li>Consolidating servers </li></ul><ul><li>Deploying a SAN </li></ul><ul><li>Deploying or upgrading enterprise application </li></ul><ul><li>Migrating to a new platform </li></ul><ul><li>Addition of features </li></ul><ul><li>Response to public critique </li></ul><ul><li>Enhancements due to buying trends </li></ul><ul><li>Acquiring or merging a business </li></ul><ul><li>Launching new product </li></ul><ul><li>Enhancing web application </li></ul><ul><li>Promoting an offering </li></ul><ul><li>Doing any of the above globally </li></ul>
  11. 11. <ul><li>Performance testing is not a one time event. </li></ul>
  12. 12. Conduct the right test to get the right results <ul><li>Load Testing </li></ul><ul><ul><li>Determines the response time and throughput during typical user load </li></ul></ul><ul><li>Stress Testing </li></ul><ul><ul><li>Determines the peak user load </li></ul></ul><ul><li>Volume Testing </li></ul><ul><ul><li>Determines the problems that occur during long-term user activity </li></ul></ul><ul><li>Component Testing </li></ul><ul><ul><li>Determines the performance and behavior of a specific component </li></ul></ul><ul><li>Benchmark Testing </li></ul><ul><ul><li>Measures the performance of a system or component relative to a standard </li></ul></ul><ul><li>Transaction Cost Analysis </li></ul><ul><ul><li>Determines the system resources consumed by a single transaction </li></ul></ul>
  13. 13. Performance Testing Roadmap Define Communicate Test Script Plan <ul><ul><li>Identify stakeholders </li></ul></ul><ul><ul><li>Agree on goals of testing </li></ul></ul><ul><ul><li>Determine budget </li></ul></ul><ul><ul><li>Determine schedule constraints </li></ul></ul><ul><ul><li>Agree to promotion strategy </li></ul></ul><ul><ul><li>Outline resources available </li></ul></ul><ul><ul><li>Determine staffing plan </li></ul></ul><ul><ul><li>Engage test lab (if needed) </li></ul></ul><ul><li>Verify basic functionality </li></ul><ul><li>Generate use cases </li></ul><ul><li>Capture user activity logging information </li></ul><ul><li>Analyze user activity profile </li></ul><ul><li>Model user activity </li></ul><ul><li>Choose the tool(s)‏ </li></ul><ul><li>Identify re-usable script components </li></ul><ul><li>Assign resources needed for scripting, testing </li></ul><ul><li>Create test environment </li></ul><ul><li>Design scripts </li></ul><ul><li>Create scripts </li></ul><ul><li>Validate scripts </li></ul><ul><li>Build script library </li></ul><ul><li>Execute tests </li></ul><ul><li>Collect data </li></ul><ul><li>Analyze test results </li></ul><ul><li>Run possible iterations </li></ul><ul><li>Troubleshoot bottlenecks </li></ul><ul><li>Tune system </li></ul><ul><li>Retest </li></ul><ul><li>Log non-performance failures </li></ul><ul><li>Outline context </li></ul><ul><li>Draft results </li></ul><ul><li>Provide feedback to stakeholders </li></ul><ul><li>Deliver action items </li></ul><ul><li>Finalize report(s)‏ </li></ul><ul><li>Promote results </li></ul>
  14. 14. An overview of the performance testing process <ul><li>After initiating the test, the load generator systems to begin accessing the system under test using the designed usage patterns. </li></ul><ul><li>Depending on whether the test is a global, local, or isolated configuration, the load generators may be located worldwide or completely contained within a test lab. </li></ul><ul><li>The one critical configuration requirement for the load-generating systems is that they have adequate network bandwidth throughput capability to access the system under test in a realistic manner without bandwidth constraints. </li></ul><ul><li>If bandwidth constraints become a problem, adding additional load generators to the pool of load generators will typically fix this problem. </li></ul><ul><li>If the test is global or local, the Internet will be an important factor in the configuration. For an isolated configuration, the Internet is not a factor. </li></ul>
  15. 15. An overview of the performance testing process <ul><li>Once a performance test is initiated, it can run for several minutes to several days, depending on the test goal. </li></ul><ul><li>During the test time, the test tool monitors and collects performance data from all of the components within the system under test, such as the Web server, application server, or database server. </li></ul><ul><li>All of the monitor data along with the performance test data collected at the generating client end to determine the overall performance as well as the potential system bottlenecks. </li></ul><ul><li>In a typical performance test cycle, the performance bottlenecks are located, fixed, and iteratively retested to ensure that they are fixed as designed. </li></ul>
  16. 16. High Level Picture of the Process Overcome resource limitations • Replace testers with “Virtual Users” • Run many Virtual Users on few machines • Controller manages Virtual Users • Run repeatable tests with scripted actions • Get meaningful results with analysis tools System under Test Load Generation
  17. 17. You don’t have to go it alone Define Communicate Test Script Plan <ul><ul><li>Build and train internal resources </li></ul></ul><ul><ul><li>Hire contractors </li></ul></ul><ul><ul><li>Utilize service offerings from test tool vendors </li></ul></ul><ul><ul><li>Rely on application provider </li></ul></ul><ul><ul><li>Engage with a consulting firm or SI </li></ul></ul><ul><ul><li>Partner with an independent testing company </li></ul></ul>
  18. 18. Important considerations for choosing the resources <ul><li>Deadlines </li></ul><ul><li>Testing skills and experience </li></ul><ul><li>Technology and/or application expertise </li></ul><ul><li>Frequency and scale of testing requirements </li></ul><ul><li>Infrastructure requirements </li></ul><ul><li>Risk assessment </li></ul><ul><li>Market factors </li></ul>
  19. 19. The vast number of performance testing tools can be overwhelming
  20. 20. Important considerations for choosing the right tool <ul><li>Do you already own the license? </li></ul><ul><li>Do you have the internal resources to script and execute? </li></ul><ul><li>Will it meet the test objectives? </li></ul><ul><li>Is it compatible with your technology objectives? </li></ul><ul><li>Does it fit within your budget constraints? </li></ul><ul><li>Do you have the training and expertise to analyze the results? </li></ul><ul><li>Does it match the frequency of your testing needs? </li></ul>
  21. 21. Leading performance tools <ul><li>Expensive hardware to purchase </li></ul><ul><li>Uses SST TracePlus to provide record and playback feature </li></ul><ul><li>No additional hardware required </li></ul>Spirent Avalanche/Reflector <ul><li>Expensive license </li></ul><ul><li>Requires a unique license for each protocol type </li></ul><ul><li>Compatible with numerous protocols </li></ul><ul><li>Excellent data analysis tools </li></ul><ul><li>WAN emulation </li></ul><ul><li>Web transaction breakdown monitor </li></ul>Mercury Interactive LoadRunner <ul><li>Windows only </li></ul><ul><li>Expensive license </li></ul><ul><li>Offer “Lite” version for reduced price </li></ul><ul><li>Excellent data analysis tools </li></ul><ul><li>Root cause analysis tools included </li></ul>Segue SilkPerformer <ul><li>Covers few protocols; primarily Web-based automation </li></ul><ul><li>Inexpensive license </li></ul><ul><li>Good data analysis tools </li></ul>RadView WebLoad Cons Pros Benchmark Tool
  22. 22. Popular Benchmark Tools <ul><li>block level data transfer, OLTP </li></ul><ul><li>(database) traffic </li></ul><ul><li>block level data transfer </li></ul><ul><li>terminal services traffic </li></ul><ul><li>IOMeter </li></ul><ul><li>IOZone </li></ul><ul><li>TSScaling </li></ul>Other Industry Standard Tools <ul><li>SPECjbb </li></ul><ul><li>SPECsfs </li></ul><ul><li>SPEC Java Business Benchmark </li></ul><ul><li>WCAT </li></ul><ul><li>WMLS </li></ul><ul><li>Microsoft LOADSIM </li></ul><ul><li>DBHammer </li></ul><ul><li>VeriTest NetBench </li></ul><ul><li>VeriTest WebBench </li></ul>Benchmark Tool SPEC benchmarks Microsoft Tools VeriTest Tools <ul><li>Exercises the CPU </li></ul><ul><li>NFS File / Network Traffic </li></ul><ul><li>HTTP(S) traffic </li></ul><ul><li>streaming media </li></ul><ul><li>Exchange email traffic </li></ul><ul><li>SQL database traffic </li></ul><ul><li>CIFS file / network traffic </li></ul><ul><li>HTTP / Web traffic </li></ul>Workload Simulated
  23. 23. Manual testing may be your best tool <ul><li>Frequency of testing requirements </li></ul><ul><li>Rate of change </li></ul><ul><li>Limitations of available tools </li></ul>
  24. 24. Top 10 performance testing pitfalls
  25. 25. Top 10 <ul><li>Not Testing. </li></ul><ul><li>Lack of clearly defined test objectives and poor planning. </li></ul><ul><li>Relying exclusively on beta customers to find performance issues. </li></ul><ul><li>Using the wrong tool for the job. </li></ul><ul><li>Introducing too many variables simultaneously into a test. </li></ul><ul><li>Failing to test how your product or system is actually used. </li></ul><ul><li>Conducting load testing in a vacuum. </li></ul><ul><li>Treating performance testing like a one-time event. </li></ul><ul><li>Assume that the scripting effort will be short and simple. </li></ul><ul><li>Finding functional bugs during performance runs. </li></ul>
  26. 26. Conclusion <ul><li>Companies rely on systems to conduct business efficiently and effectively </li></ul><ul><li>Performance testing ensures that your users are getting reliable and timely access to the resources they need </li></ul><ul><li>Performance testing mitigates the risk of lost time and money due to poor performance </li></ul><ul><li>A fully integrated performance testing program is the preventative medicine that keeps your system from becoming an inaccessible and costly resource. </li></ul><ul><li>Though it may seem counterintuitive at first to slow your deployment for performance test planning and execution, the payoff in time, money, and quality will be big and will come soon. </li></ul>
  27. 27. Thank You