How would you conduct a performance test for 10,000 users?

I’ve asked variations of this question for many years, because it cuts right to the chase of whether someone understands the concept of performance testing.

Typical Answer: “Write your scripts and start your load generators.”

Slightly Better Answer: “Are those concurrent users? You might be able to run a test with fewer users.”

The real answer here is that we don’t have enough information yet to know even what kind of tests are relevant. The only reasonable response to this question, is to ask more questions. These might include:

- Is 10,000 the number of concurrent application users, or the total number of possible application users?
- Is the application an internal corporate or public-facing application?
- Are there different user roles relevant to the application?
- Are there peak usage times, possibly timezone dependent?
- Will the application users all use the same means of access? For example, mobile, a desktop application, Citrix, VPN, via a thick-client application.
- Will all the users come from the same geographic area (such as a single office or a target market) or distributed?

Testing the performance of an application is all about accurate modeling: understanding the characteristics of the users, the technical metrics of the environment, and the transactions and functionality exposed. Slamming an application with excessive traffic might be the most common type of testing, but that doesn’t make it correct or effective.