Sofia, Bulgaria | 9-10 October Troubleshooting Web Site Performance Issues with Visual Studio Team System Martin Kulov Director,.NET Development National Academy for Software Development MVP, MCT, MCSD, MCPD Martin Kulov Director,.NET Development National Academy for Software Development MVP, MCT, MCSD, MCPD
Sofia, Bulgaria | 9-10 October What We Will Cover ●How testing processes can help us deliver quality code ●Measuring performance of ASP.NET sites ●Improving ASP.NET performance ●How testing processes can help us deliver quality code ●Measuring performance of ASP.NET sites ●Improving ASP.NET performance
Sofia, Bulgaria | 9-10 October Agenda ●WWW (Why, When, What) to Test ●Web Applications Tests ●Performance Testing ASP.NET Applications ●Profiling ASP.NET Applications ●Tuning ASP.NET Applications ●WWW (Why, When, What) to Test ●Web Applications Tests ●Performance Testing ASP.NET Applications ●Profiling ASP.NET Applications ●Tuning ASP.NET Applications
Sofia, Bulgaria | 9-10 October Why We Should Test ●Increased quality ●Finding and fixing design problems ●Lowering total cost of ownership (TCO) and maintenance costs ●Increased quality ●Finding and fixing design problems ●Lowering total cost of ownership (TCO) and maintenance costs
Sofia, Bulgaria | 9-10 October When We Should Test ●As often as possible ●As early as possible ●Test automation would be helpful ●As often as possible ●As early as possible ●Test automation would be helpful
Sofia, Bulgaria | 9-10 October What We Should Test ●Critical business features ●Everything else ●The clearer performance goals are, the better we will know what to test ●Project/program manager should get these goals defined from the start ●Critical business features ●Everything else ●The clearer performance goals are, the better we will know what to test ●Project/program manager should get these goals defined from the start
Sofia, Bulgaria | 9-10 October Testing Web Applications ●Functional testing ●Performance testing ●Security testing ●Reliability testing ●Usability testing ●Many others … ●Functional testing ●Performance testing ●Security testing ●Reliability testing ●Usability testing ●Many others …
Sofia, Bulgaria | 9-10 October Functional Testing ●Validates user requirements ●Need to create test data ●Large sites could be very hard to test ●Bugs should be reproducible ●Test repetition is required ●Validates user requirements ●Need to create test data ●Large sites could be very hard to test ●Bugs should be reproducible ●Test repetition is required
Sofia, Bulgaria | 9-10 October Web Test Project Items ●Part of Test Project ●Functional testing tool ●Web Test Recorder ●Records every in/out HTTP packet ●Can be validated ●Can be programmatically extended ●Supports data binding ●Part of Test Project ●Functional testing tool ●Web Test Recorder ●Records every in/out HTTP packet ●Can be validated ●Can be programmatically extended ●Supports data binding
Sofia, Bulgaria | 9-10 October Performance Testing ●Most critical and often neglected type of test ●Should be done during each phase of the project ●There are three main principles: ●Measure ●Set your desired goals ●Tune the application ●Most critical and often neglected type of test ●Should be done during each phase of the project ●There are three main principles: ●Measure ●Set your desired goals ●Tune the application
Sofia, Bulgaria | 9-10 October Setting Your Goals ●Response time ●Latency on the server ●Latency on the client ●Measure Time To First Byte (TTFB) ●Measure Time To Last Byte (TTLB) ●Throughput ●Resource utilization ●Identify problem areas ●Define workload profiles ●Response time ●Latency on the server ●Latency on the client ●Measure Time To First Byte (TTFB) ●Measure Time To Last Byte (TTLB) ●Throughput ●Resource utilization ●Identify problem areas ●Define workload profiles
Sofia, Bulgaria | 9-10 October Load Test Project Items ●Part of Test Project ●Performance testing tool ●User defined load profiles ●Performance counters collection ●Predefined threshold values ●Distributed test controllers ●Part of Test Project ●Performance testing tool ●User defined load profiles ●Performance counters collection ●Predefined threshold values ●Distributed test controllers
Sofia, Bulgaria | 9-10 October Profiling ASP.NET Applications ●Profiling is the process of collecting data ●We can measure the result ●Profiling can be done though code instrumentation or sampling ●In instrumentation, we inject additional code into the system so that it can generate events ●In sampling, we collect code execution information on specified sampling rate ●Profiling is the process of collecting data ●We can measure the result ●Profiling can be done though code instrumentation or sampling ●In instrumentation, we inject additional code into the system so that it can generate events ●In sampling, we collect code execution information on specified sampling rate
Sofia, Bulgaria | 9-10 October Performance Wizard ●Located in Tools\Performance Tools menu ●Profiling tool ●Sampling mode ●Instrumentation mode ●Can collect.NET object allocation and lifetime information ●Can collect kernel events ●Has powerful command line commands ●Located in Tools\Performance Tools menu ●Profiling tool ●Sampling mode ●Instrumentation mode ●Can collect.NET object allocation and lifetime information ●Can collect kernel events ●Has powerful command line commands
Sofia, Bulgaria | 9-10 October Tuning ASP.NET Applications ●Performance tuning is an iterative process ●On every step, we should identify and eliminate bottlenecks ●Retest and measure again to see if we are closer to our performance goals ●Visual Studio Team Suite tools can do the job ●Unfortunately there is no integration of Performance Wizard with Web and Load Test in Visual Studio Team Suite ●Performance tuning is an iterative process ●On every step, we should identify and eliminate bottlenecks ●Retest and measure again to see if we are closer to our performance goals ●Visual Studio Team Suite tools can do the job ●Unfortunately there is no integration of Performance Wizard with Web and Load Test in Visual Studio Team Suite
Sofia, Bulgaria | 9-10 October Demonstration Profiling and load testing ASP.NET applications with Microsoft ® Visual Studio ® 2005 Team Suite
Sofia, Bulgaria | 9-10 October Session Summary ●The inevitable software testing process ●Measuring performance of ASP.NET applications ●Tuning performance of ASP.NET applications ●Visual Studio 2005 Team Edition for Software Testers provides an integrated profiling, load testing, and reporting environment ●The inevitable software testing process ●Measuring performance of ASP.NET applications ●Tuning performance of ASP.NET applications ●Visual Studio 2005 Team Edition for Software Testers provides an integrated profiling, load testing, and reporting environment
Sofia, Bulgaria | 9-10 October Next Steps ●Create load profiles for your application ●Prepare and analyze reports from load testing ●Identify and resolve bottlenecks ●Tune Windows operating system performance ●Tune ADO.NET performance ●Tune Microsoft ® SQL Server™ performance ●Create load profiles for your application ●Prepare and analyze reports from load testing ●Identify and resolve bottlenecks ●Tune Windows operating system performance ●Tune ADO.NET performance ●Tune Microsoft ® SQL Server™ performance
Sofia, Bulgaria | 9-10 October For More Information ●Microsoft patterns & practices ●Improving.NET Application Performance and Scalability lt.asp?url=/library/en- us/dnpag/html/scalenet.asp lt.asp?url=/library/en- us/dnpag/html/scalenet.asp ●Microsoft patterns & practices ●Improving.NET Application Performance and Scalability lt.asp?url=/library/en- us/dnpag/html/scalenet.asp lt.asp?url=/library/en- us/dnpag/html/scalenet.asp
Sofia, Bulgaria | 9-10 October Additional Resources ●Rico Mariani’s blog ●Maoni's WebLog ●Bulgarian Association of Software Developers ●Martin Kulov’s blog ●Rico Mariani’s blog ●Maoni's WebLog ●Bulgarian Association of Software Developers ●Martin Kulov’s blog
Sofia, Bulgaria | 9-10 October Please fill out the survey forms! They are the key to amazing prizes that you can get at the end of each day Thank you!
Sofia, Bulgaria | 9-10 October