For the want of a nail . . .
After our brief discussion of the definition of good and bad performance and the reasons for performance testing in Chapters 1 and 2, this chapter focuses on what is required to performance test effectively—that is, the prerequisites. The idea of a formal approach to performance testing is still considered novel by many, although the reason is something of a mystery, because (as with any kind of project) failing to plan properly will inevitably lead to misunderstandings and problems. Performance testing is no exception. If you don’t plan your software development projects with performance testing in mind, then you expose yourself to a significant risk that your application will never perform to expectation. As a starting point with any new software development project, you should ask the following questions:
How many end users will the application need to support at release? After 6 months, 12 months, 2 years?
Where will these users be located, and how will they connect to the application?
How many of these users will be concurrent at release? After 6 months, 12 months, 2 years?
These answers then lead to other questions, such as the following:
How many and what specification of servers will I need for each application tier?
Where should these servers be hosted?
What sort of network infrastructure do I need to provide?
You may not be able to answer ...