Performance Testing Life Cycle

Following are the different phases of performance testing :

1. Requirements Analysis:

This is the phase where business and technical requirements are identified and gathered. Here the team sends the Requirements gathering questionnaire to the client for asking test requirements, H/w and S/w requirements.

Following are the some of the requirements gathered:
1. SLAs (Service level Agreements).
2. Workload
3. Volume of data
4. H/w
5. Application Architecture and components
6. Test tool details
7. Test types
8. Test Duration
Here a document is provided as a template for this.

2. Test plan/Design :

In this phase the test is planned and designed. Planning is mostly about the Test environment setup as per application, work load profile and H/W.
Test design is mostly about types of tests to be conducted, Number of Users, schedule, Execution plan, Scripts to recorded, Data, Scripts enhancements, metrics to be measured.
In Most of the organizations they follow a single document as Test plan/design. Below mentioned are the sections to be included.
1 introduction
2 application overview
3 performance test goals and objectives
4 performance test approach
5 in scope and out of scope
6 testing procedure (entry& exit criteria, transaction traversal details, test data requirements, schedule, deliverables, workload criteria)
7 test environment (tool, environment setup, test environment setup)
8 communication & reporting
9 test metrics (client, resource, server)
10 roles and responsibilities
11 risks & mitigations
12 abbreviations
13 test plan approval/ signoff
Here a document is provided as a template for this.

3. Test Development:

Before going for performance testing, the test environment (S/W & H/W) should be ready and the scripts should be developed. The test scripts are developed based on the protocol and base scripts are scripted.
Once base scripts are captured, they should be enhanced by performing Correlation (For dynamic value handling), Parameterization (Substitution of values), function and custom functions to meet the requirement.
Once they are enhanced they should be validated against 1 user (Perform single user run) and reviewed and should be base lined. The base lined scripts should be used for test execution.
The output of this phase should be scripts and the performance test isolated environment.

4. Test Execution:

This is the phase where test executions occur as per the mentioned in the plan for meeting client requirements. Here the sequence of steps to follow:
1. Decide the test (Load/stress/endurance) and number of users.
2. Ramp up, duration and Ramp down pattern.
3. Workload profile, run time settings and upload scripts.
4. Apply the details and set the monitors to measure the metrics.
5. Start run and perform online monitoring.
Outputs of this phase are Test results and Test logs.

5. Test Results Analysis:

During this phase the test results and logs are analyzed for identifying bottlenecks and performance issues. Results are compared with SLAs for all types of metrics and verify whether results met SLAs or not.
If results are not met SLAs, raise performance defects and analysis what is causing that problem and report.
Preliminary test report is prepared shared across. A template is provided here as attachment. For the reported performance bottlenecks /issues engineering team acts and tunes the application and reengineers it wherever required.
For the tuned application Step 4 Test execution is performed until application meets expected SLAs.

6. Test Reporting:

For the analyzed results an executive summary report is prepared with the following and sent across respective stake holders.
1. Client metrics (Response times, throughput, hits/sec, pages/sec e.t.c) statistics and graphs.
2. Server and resource metrics statistics and graphs (RAM Disk, Processor, NW and App, Web, DB server metrics).
3. Performed tests
4. Test results and report paths,
5. Suggestions and Recommendations.
6. Test logs of various tests
7. Comparisons of results for various tests.