Planning is a critical step in Application Performance Review/Testing. ACE Team defines Application Performance Review/Testing as a methodology that comprised of 4 major types of testing to improve client (user) response time, and server performance. These include both single user and simulated multiple (virtual) user testing. The key is to look at the application performance from user perspective first rather than the server resources. Application users do not care how many concurrent user can the application support or how much CPU is being utilized on the server, they only want the response time to be fast from performance perspective. For example, when they search for a product in a web site, they want the relevant search results to display in millisecond. The 4 major types of testing are as follows:
- Application Performance Review (also known as Application Performance Walkthrough, or Application Performance Assessment)
- Application Network Analysis
- Application Load Test (also known as Application Stress Test)
- Application Scalability Test (also known as Application Capacity Test)
Planning should be done for each type of testing. In high level, there are 4 main elements in planning that need to be considered:
- Performance Goals
- Performance Metrics
- Load Profile
- Performance Test Plan
In minimum, performance goals are to determine user response time, testing for server capacity, and benchmark results in order to compare performance gains for future versions of the application. The 3 categories within the performance goals are (1) Response Time Acceptability Goals (need to be realistic and achievable), (2) Throughput and Concurrent User Goals, and (3) Future Performance Growth Requirements.
Performance metrics relate to server resource usage or threshold value such as: CPUs utilization (X%), memory consumption (~XMB), disk and network activities, and processing delays (code nature), etc.
Load profile focus on user activities (scenarios) such as: ensure transactions occurred more frequently comprise a larger proportion of the test data and scripts for load test (e.g. 30 browsers : 1 buyer), apply appropriate user think (sleep) times (random realistic time preferred), conduct research to determine usage patterns (peak and duration), and ensure that the servers and network in the test environment are loaded with the required background tasks. Remember to take into account as many of the parameters when developing the load profile for application performance test. A single parameter may only affect the test results by a few percent but several parameters may add up and have a significant impact on test results.
At the very least, performance test plan should comprised of Application Overview, Architecture Overview, High-level Goals (test objectives), Performance Test Process, Performance Test Scripts (script and scenario description), and Test Environment details.
Planning properly and early with consideration to the 4 main elements will ensure a successful performance review/test that will help in attaining high-performing application.