What is Step-up Performance Test?
The step-up performance test is helpful to identify the performance of a software system at varying loads. Unlike the load test, the step-up test has multiple steady states in a single test. Due to multiple steady states, this test is also called as ‘Multi-level Load Test’. Step-up test starts with less number of users, continue with the same load for a certain period and then increases the load to the next level. At the next load level (step), the test again continues for a defined period of time and jump to another level.
Basically, the Step-up performance test approach applies to a new application especially when the client or project team does not define any non-functional requirement. In the absence of NFRs, a performance tester can easily find out the performance of the application at different user loads and show the result to the client.
How to determine the Step-up Load?
For Existing Application: The step-up test has a very specific objective. Since it is not a mandatory test, so NFRs document may not have a separate requirement for the step-up load test. In such a case, design a workload model which starts with less number of users and goes beyond the stress-test load. There are high chances of getting a break-point in the step-up test at a high load.
For New Application: If the application is new and the client does not know about performance testing metrics, then the step-up approach is the best option. Because a performance tester does not know about the behaviour of the application. The application may fail at 10 user load or even pass at 5000 user load. If he conducts separate load tests of 1 hour each and increases 100 user load in every test then think how many tests he needs to conduct. He may miss the delivery date, so here step-up load test is a better option.
Purpose of Step-up Performance Test:
- Check the performance of the new application where NFRs are not defined
- Identify the behaviour of the application at a different level of load
- Conduct a hybrid performance test on the application
Approach:
The step-up test is a hybrid test that has the feature of load test, stress test and break-point test. But remember the step-up test cannot replace these performance tests because they have their specific objective.
The approach of a step-up test is the same for both existing applications and new applications. To design the workload model, a performance tester should know or decide the height of the step (User load at each step), the number of steps and steady-state duration.
- Steady State Duration: Ideally, it is in between 10 mins to 30 mins range.
- No. of Steps: It depends upon the test duration and steady-state duration.
- Height of the step (User load): Decide as per the expected load. If the expected load is high like more than 1000 then keep the user load around 100 to 200 per step.
A performance tester prepares a workload model for a step-up test with the below inputs:
- The height of the step (User load at each step): 50
- No. of Steps: 6
- Steady state: 10 mins
Refer to the below graph:
Another possible situation is when a performance tester does not know about the upper limit of user load. In such a case, an open mouth workload model can be designed like a break-point test. Refer to the below graph:
You may be interested:
The biggest problem comes here is of result we need to determine results of every step..and not total aggregate.
Step-up performance test is conducted for special purposes as I explained in the post. And one of the purpose is to find out the performance of the application at different loads in a single test.
The problem you have mentioned can be simply solved by applying the filters in the graph.
As you said for new application Step up approach is the better option. With out knowing NFR’s how can we develop scripts and schedule for 1 hr load tests.
bit confusing on above process. Can you pls explain on that.
Hi Karthika,
The step-up approach helps to know the true performance of the application at varying load without knowing the NFRs. It is not necessary to create 1-hour test only. You can use 15 minutes span as well. Once a static point (before break-point) comes then note down that workload model and go for 1-hour test with the same set of workload figure.
How will determine break point of system in performance testing? Which graph can used to determine breaking point of system either CPU, Memory or response time?