Chapter 2. The Fundamentals of Effective Application Performance Testing
For the want of a nail . . .
In this chapter we cover a basic task that seems to be avoided even by companies that take on the task of performance testing: capturing performance requirements. Unlike the “functional” requirements upon which regression and unit testing are based, performance related requirements can be considered “nonfunctional.” Semantics aside, they are vital activities that must be addressed in order to carry out effective performance testing.
The idea of a formal approach to application performance testing is still considered novel by many. Just why is something of a mystery, because (as with any project) failing to plan properly will inevitably lead to misunderstandings and problems. Performance testing is no exception.
With this thought in mind, let’s reiterate my performance testing mantra:
Performance awareness should be built into the application life cycle as early as possible.
In other words: if you don’t start your planning with performance in mind, then you expose yourself to significant risk that your application will never perform to expectations.
With any new 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? ...