In the first post, we discover what is Software Performance Testing and a bunch of different types of tests.
Today, we will see why it's important to do performance tests.
Before talking about why performance tests are important, we need to talk about the prerequisites.
If you want to do this kind of test you need to know for each operation :
- the accepted latency
- the volume of transactions that you can have in a normal period and during peaks
These information must comes from
- the business line if your service is right behind a front end service
- by the aggregation of all the requirements for your consumers.
Also, this informations must come before you start your analysis/architecture, for the following reasons.
Performance testing is something that can't arrive late in a project. It must be here at the beginning.
Otherwise, how can you be sure to respect all the performance conditions?
For example, if you are alone with one oven to cook some pies for a party, and don't know how many people will come, how will you do if 100 people come?
The idea with development is the same. Developing something which can support 10 or 1.000 TPS is not the same. You won't use the same tools, you won't orchestrate the calls in the same way... especially if you are working in a big enterprise where some services can be "older" or "limited" for some reasons.
If you want to check what's happening when you are doing performance tests, you will need to have something set up to monitor your services and your infra!
During the performance testing phase, it will be useful to check bottlenecks and understand what is limiting your service.
Now that you know what are your limits about latency and volume, you will be able to add some alerts to prevent if the load is close to the max.
With that, you will be proactive and may avoid a production issue.
So finally, why it's important to do Performance tests?
As you can see in the previous part, doing these tests embed a lot of things that can only be beneficial for your system!
Also, (and it's the biggest reason why) your system will be reliable!
With all these tests, a correct architecture matching the needs, monitoring, alerting... you will avoid a lot of issues related to loading. And if you are close to your maximum, your alerting will ping you to let you know that you have to do something before it's too late.
I hope it will help you! 🍺
And see you to the next part : How to do it?