A Journey Through Performance Testing
What is Performance Testing?
Performance Testing in general, is a name given to tests that are used to check on how a system behaves and performs. It examines the responsiveness, scalability, stability, speed, reliability, and resource usage of your software and infrastructure. Different types of Performance Tests provide you with different data.
Before conducting a Performance Test, it is important to determine your system’s business goals, so that it can be determined if your system behaves in a satisfactory manner or not in accordance to the needs of your customers.
After running Performance Tests, you can analyze different KPIs, such as the number of virtual users, hits per second, errors per second, response time, latency, and bytes per second (throughput), as well as the correlations between them. Through the reports, you can identify bottlenecks, bugs, and errors, then decide what needs to be done.
When should you use Performance Testing?
Performance Tests should be run when you want to check your website and app performance, which may extend to testing servers, databases, networks, etc. If you follow the waterfall methodology, it is important that a test is conducted with each version released. Similarly, if you are shifting left and going agile, you should test continuously.
It should also be noted that a detailed plan should be prepared before starting Performance Testing activities, to help clarify how Performance Testing will be carried out from both technical and business perspectives.
Here are some planning steps and explanations for each which will come in handy for you next time you want to test the waters!
What is the process of doing a Performance Test?
Doing an end to end Performance Test can be divided into three main parts:
● Performance Test Prerequisites
● Performance Test Planning
● Performance Test Execution
In each of these phases, we need to cover some specific areas for performing a perfect Performance Test adhering to the best practices.
Performance Test Prerequisites
Testers should have a clear idea about the project domain as well as the performance needed for the specific project before starting to plan out a Performance Test.
Testers should gain an understanding of performance criteria such as design, normal and peak loads, system resources, dependencies, workload characteristics and time as the prerequisites for Performance Testing which should be part of any strategy.
We can divide Performance Test Prerequisites phase in to four sub categories:
● Domain KT
● NFR Gathering
● Study on API Documentation/Collection
● Test Estimate Creation
Performance Test Planning
In this phase, we are focusing on the creation of a Performance Test plan mainly focused on scripting. We can divide this phase into five sub categories as follows:
● Test Plan Creation
● Test Data Creation
● Environment Preparation
● Script Creation / Update
● Script Review and Trial Execution
Performance Test Execution
Performance Test Execution refers to running tests specific to Performance Testing such as load test, soak test, stress test, spike test etc. using Performance Testing tools. Performance Test Plans contains detailed information of all the tests which need to be executed within the performance-testing window.
The Performance Test Execution Phase has the following activities to be performed:
● Execute the Documented/ Agreed Performance Test
● Analyze the Performance Test Result
● Verify the Result against defined NFRs
● Prepare an Interim Performance Test Report
● Take Decisions to Complete or Repeat the Test Cycle based on the Interim Test Result
This phase has three sub-phases:
● Test Execution: To run the planned Performance Tests
● Performance Test Execution: Back up
● Result Analysis: To analyze the Test Results and Prepare an Interim Test Report
Let’s dive deeper into the area of Performance Testing processes in the next chapter.
To be continued….