Application performance is always one of the key factors responsible for success in any business. In order to achieve performance goals, it is very critical to strategize the approach based on various factors – execution strategy, test design, application tech stack and one of the most critical factors is application architecture.
Regular load testing is always required irrespective of application architecture opted. On the other end, it is important to test applications based on the chosen platform type. As per the expected/target load or traffic pattern, performance tests need to be designed for different application architectures.
Let’s see the approaches for various architecture types:
1. Dedicated Servers: A structure with a fixed number of servers in place to respond to user requests or actions. For this particular structure, regular load tests to assure the product performance with expected number of users/load is required whereas the stress and endurance test can be done when needed. Along with this, the pattern for ramping up the users is similarly important. It is always open to have scenario based testing which isn’t to be considered under regular circumstances when we talk about performance testing.
2. Auto Scaling Servers: In such cases, along with the regular load test, it is very important to cover a few additional cases as a must before going live.
Cold Start (The process of new server instance to spin up and start serving the requests) –
Assure the performance during scale up as well as downsizing when the new instances spins up/goes down.
Thresholds – Testing thresholds to make sure if the given auto scaling thresholds are fine or need some tweak
Various load patterns – Spike tests, where to spike the load up to some extent based on live traffic history or future expectations, same goes with downsizing
FailOver – For the peak business hours like ThanksGiving and Christmas for Retail and E-Commerce businesses, it is important to be ready with failovers or downtime test cases; the experiences in the last couple years during these peak seasons, made this more crucial part of the delivery cycle.
This is to note that all these scenarios can be covered with one test design which will be a spike test with various load patterns.
Stress test would suffice the testing requirement for upper limit on auto-scaling.
3. Serverless Platforms: Cold start is also the case with serverless platforms so it is needed to verify the application performance during spin ups and down. Based on the expected traffic consistency rate, the architecture could have been chosen so it is important to match the expected traffic pattern and not just the meeting the highest numbers in case of server less platforms.
Here we have seen that considering architecture for performance test designs provides direction to the performance testing and engineering.
SDET Tech advocates such design methods as well as educating the involved stakeholders along with other team members.