Workshop Objectives
The importance of good and competitive performance of websites is more evident than ever. Users have a lot of choice for what they visit the web. Websites can no more woo the visitors just by providing the intended functionality. The web users are becoming growingly impatient to bad performing websites. Performance is no more just a desirable attribute rather it is as important as the base functionality of a website.
So, performance testing which has been an ignored cousin of functional testing in the past is considered very important today. The challenge is that testing a website in terms of performance requires an altogether different focus. It would also require the testers to acquire additional skills and tools than the ones required for functional testing. This workshop is meant to provide a comprehensive discussion on the subject of web and client server performance testing.
- At the end of the course attendees will be able to understand the following:
- Establishing Performance Requirements
- Different types of Performance Tests and their practical application
- Performance testing as a subject, independent of any specific tool(s)
- Performance test design and execution
- Analysis of performance results
- Identifying bottlenecks
Concepts Covered
1. Introduction
- What is performance?
- Need for Performance Testing
- Performance Testing across SDLC
- Performance Testing Process
- Bottlenecks
- Overview of Queuing Theory
- Types of Performance Tests
2. What Impacts Performance
- Hardware Resources
- Network
- Configurations
- Design
- Architecture
- Implementation / Logic
3. Performance Testing Objectives
- Understanding Performance Test Oracles
- Establishing Current System Performance / Capacity
- Baselining and Benchmarking
- Finding Bottlenecks
- Determining Scalability of Systems
- Determining resources and configurations
4. Performance Metrics
- Response Time at Various levels
- Throughput for different components
- The Problem of measuring too less
- The Problem of measuring too much
- The Problem of not knowing what to measure
- The Problem of not knowing why we measured what we measured
- The Problem of not knowing what to do with what we measured
5. Building Realistic Usage Profiles
- System Footprinting
- Projections
- Competitor analysis
- Internal Users / Beta programmes
- Usage Profiles
- Critical Transactions
- Performance-intensive transactions
- Transaction Probabilities
- User Mix
- User Think Time
- User Abandonment
6. Performance Test Design
- Test Data Generation
- Scripting / User Activity Simulation
- Correlation and Parameterization
7. Test Execution
- Test Environment
- Controller(s)
- Load Generators
- Test Data Servers
- Monitors
- Checklists
- Collection and Consolidation of Results
- Results Archival
8. Considerations for PerformanceTest Tools
- Types of Tools
- Commercial Tools
- Open-Source/ Free Tools
- How a performance tool works
- Cost and Licensing considerations
- Employing Functional test scripts for performance testing
- Accuracy of results – Statistical Considerations
- Test Environment vs. Production Environment
9. Analyzing the Results
- Basic Statistics
- Results Consolidation and Plotting
- Trend analysis and Correlation
- Reporting Results
- Critical points for meaningful reporting
10. Case Study and Demonstration
- Applying the knowledge gained so far on a performance testinggroup exercise in the class
11. Next Steps – From TestingTowards Engineering
- Performance Engineering
- Visual Representations for test planning and usage profiles
- Performance Tuning
- CoE Model for performance test teams
The demonstrations and exercises use open-source/free/demo applications and testing tools, and are hands-on.
Who should Attend
This course is for beginning to intermediate skill level in performance testing. So, it would be suitable for the software testers totally new to the performance testing world or the ones that have got basic knowledge of the subject and want to attend a dive-in session. It would also be suitable for the performance test leads that are relatively new in their roles and want to understand some finer technical as well as non-technical points of successfully executing a performance testing project. Test managers who have been assigned first time to manage aperformance testing team would find quite a few sections useful from the perspective of knowing what exactly goes in such a project. A working knowledge of system testing and quality assurance fundamentals is assumed without any stress on technical background in a specific area or domain.
This is not an advanced course dealing with specific tuning and assessment issues. This is not a tutorial meant to discuss a specific tool. It is a tool-agnostic, domain-agnostic, subject-focused workshop.
