Performance – Load Test Methodology QMITPLT01 / Version 2.0
Effective: October 3, 2005
Purpose The purpose of Load-Performance Testing methodology is - To define how Load-Performance Testing projects are executed - To serve as a basis for different phases in a Load-Performance Testing project - To Measure response time for given transactions in the application
Scope During Load-Performance testing, this methodology shall be used to define the activities and work products. Only the Testing specific activities are detailed in this methodology. For all other activities like project management, configuration management, etc. the project shall follow the processes defined as part of Qualify. Each Load- Performance Testing project is taken up may go through only from certain phases of Testing Life Cycle. For instance, a project may encompass only Performance and Load test Execution. Phases are based on the customer’s requirements. The phases that will be followed during the course of the project will have to be detailed in the Software Project Plan (SPP) - Testing of the project. The applicable phases of execution, the associated work products, verification and validation criteria for each of the relevant phases shall be at par with this methodology. The Performance Testing methodology offers the flexibility of entry and exit through any of the defined phases. The user can use this flexibility by following the Entry Input Task Validation Output Exit (EITVOX) criteria defined for each phase.
Definitions & Acronyms Definitions
Keyword
Definition
Load Test Stress Test Scalability Test Workload Distribution
Testing the application under varying acceptable loads Testing the behavior of the application for peak loads Checking the system for hardware and user scalability Workload Distribution is a representation of the functions performed by a user community on a system. It is based on a percentage of users performing a specific function over a given period of time.
Acronyms
Acronym
Explanation
PTC PTP PTR SPP TDA TE TL TM
Performance Test Cases Performance Test Plan Performance Test Report Software Project Plan Test Data Analyst Test Engineer Test Lead Test Manager
Overview Performance- Load test measures the performance of the application and environment. It’s a direct measure of Capacity by load. Following types of tests can be performed under performance testing. 1. Load Test
2. Stress Test 3. Scalability Test Performance testing process consists of 8 phases 1. Analyze Performance- Load requirements 2. Create Performance Test Plan 3. Create Performance Test Cases 4. Ensure Testing Environment Setup 5. Generate Scripts 6. Execute Performance test 7. Review Test Results and Prepare Reports 8. Recommendations
References QEdge Testing Methodology System Testing Methodology
Tailoring Guidelines It is recommended that this methodology be followed during the course of the Performance testing of project. If any tailoring is to be made due to the customer’s requirements, then the tailoring shall be documented along with justification in the Project Tailoring Record (PTR). (Ref… Tailoring Guidelines)
Analyze Performance – Load Requirements This phase consists of analyzing Performance requirements, architecture and target Production system
Entry Inputs Tasks
Verification / Validation Outputs Exit
High level Performance testing requirements • • • • • • • Review
Use case documents Performance test requirements Understand the application Understand the architecture Understand the target production environment Identify the performance testing tool Revalidate resources for performance testing understanding with customer
• Performance testing tool identified • Performance test team revalidated based on the requirements Understanding of architecture and application
Refer… Guidelines for gathering performance testing requirements
Create Performance - Load Test Plan This phase consists of preparation of Test Plan based on the requirements and other information like estimations and Risks. For Defect Tracking and Build Management (Refer… Guidelines for Build and Release Management, Guidelines for Metrics Definition Standard, Guidelines for Defect Management)
Entry Inputs Task
Understanding of architecture and application Performance test requirements • • • • • • •
Identify business critical transactions Analyze the load model Prepare Volumetric data Analyze the test data required for performance testing Plan Workload Distribution Prepare a performance test Plan (Refer… Performance test plan template) Review performance test plan with customer
Validation Output Exit
Test plan review Performance test plan Sign off on performance test plan
Create Performance - Load Test Cases This phase involves preparation of Load-Performance test cases based on requirements. (Refer… Guidelines for Software Testing)
Entry Inputs
Identification of Critical transactions
Task
• Prepare Performance Test Cases • Identify business critical transactions • Analyze the sequence of transactions that are most critical • Identify the steps involved in each transaction • Analyze the test data required for performance testing • Document the identified scenarios and transactions in the test plan • Review performance test plan with customer • Review of the feasibility of the transactions and their flow • Review of the newly documented test transactions in the test plan • Performance Test Cases • Feasible transactions for scripting and test data generation • An updated performance test plan Sign off on the identified transactions and the updated performance test plan Sign off of performance Test Cases
Validation Output Exit
Performance Test Plan and Performance Test Requirements
Ensure Testing Environment This phase consist of Environment setup to ensure the readiness for test execution. (Refer… Guidelines for Test Data Management)
Entry Inputs Task
Validation
Output Exit
• Performance test plan • Understanding of application architecture • Performance test plan • Performance test tool • Setup environment for testing • Setup test tool • Setup test data required • Setup the required application user access and other accesses • Deploy application build • Environment validation • Access rights verification • Tool setup verification • Test data verification • Application build verification Test data Environment ready
Generate Scripts This phase consists of generating Automation scripts for Performance and Load testing.
Entry
• •
Environment is ready Application is stable without critical defects
Inputs Task Validation Output Exit
• Performance test plan • Performance Test Cases • Test data Generate the test scripts as per the performance test plan • Test scripts • Test scenarios Review Test scripts Validated test scripts
Execute Performance Test This phase consists of execution of Test Cases for analyzing performance of application under real time loads.
Entry
Inputs Task
Validation Output Exit
• Environment is ready • Test Cases • Test scripts • Build is updated • Test scenarios • Test Cases • Test Scripts • Setup test scenarios • Execute the tests • Monitor the servers required • Monitor the network if required • Re-Run the tests if required • Save the results • Raise defects (If it is in scope) Tests results Test results Test execution complete
Review Test Results and Prepare Reports This phase consists of review of test results.
Entry Inputs
Test execution complete
Task
• Analyze the results • Prepare a report (Refer… performance test report) • Present to the stake holders Review the results Performance test report Sign off on the test report
Validation Output Exit
Test results
Recommendations This phase consists of preparation of Test report denoting completion of testing activity.
Entry Inputs
Sign off on the Test Report Test Report
Task
Validation Output Exit
• Analyze the Report • Identify Performance bottlenecks • Identify improvement areas • Identify steps for improvement Results review Recommendations for performance improvements/tuning suggestions Presentation of the recommendations