In many situations, the correct answer is to ask questions. Software developers, testers, and project managers have a tendency to tell rather than ask because they have so much knowledge and expertise about the subject domain. However, before you begin load testing, you need to know as much as possible to help you create better scenarios and scripts.
For instance, you should understand how the system will be used. Ask plenty of load testing questions of project stakeholders and write down the answers.
- What response time would the CEO consider acceptable to her/him?
- Has our development team built this app from scratch?
- Are there any previous performance reports or datapoints such as benchmarks?
- Has anyone set goals for performance?
- What measurements do stakeholders want to see?
- How does the project manager define success for this site’s performance?
- Can I get a copy of any system documentation?
- Will the site be mostly for anonymous browsing?
- What potential is there for spikes in traffic?
- How often will the content change?
- Will content such as blog posts be candidates for the Slashdot Effect?
- Is it designed for internal company research?
- Does it primarily facilitate collaboration between trading partners?
- Are there planned marketing campaigns to promote the site?
- B2B or B2C?
- Do you expect the company to promote the site through social media?
- Will employees all sign-on at the same time each day?
- Are there regular times of higher usage such as end of month?
- Can irregular events such as webinars or advertisements drive waves of traffic?
- How many people does the marketing department anticipate coming to the site monthly? Daily?
- Does the user interface serve as a front-end to non-integrated back-end system such as SAP?
- Is single sign-on or other identity access management system involved?
- How fast should a page load?
- Does the VP of Marketing have any idea of the correlation between site performance and revenue?
- How does the executive team define success for the average response times of this application?
- Are any open source modules being used?
- What is the primary technology stack? LAMP, MS, other?
- How many coding languages are we using? Which ones?
- Which database engine is deployed? Oracle, SQL Server, mySQL, other?
- Are we hosting this in our own center? Co-located? Dedicated hosted servers? Cloud?
- What are the logical layers in our architecture?
- What are the physical layers in our architecture?
- How, if at all, are we configuring load balancing?
- Is caching turned on in the application? Web server? Database or messaging?
- Does the web server use a compression technology? Is it turned on?
- Will we be testing against the production environment?
- If we have a staging environment for testing, what is different from production?
- How often do we anticipate releasing new versions into production?
- Do we want to measure performance of each release to identify any degradation?
- Who should be on the email list to receive load test reports?
- Who is John Galt?
That’s a decent list to start. Please submit your own via the comments.
The idea is to get a broad context of which the system will operate. Ask! Listen! Take notes!
Try it, I promise it will help you create better plans and scenarios for your load tests. Your stakeholders will be happier as well.