Improved performance through automated testing
In live operation of a website, long loading times or outages lead to dissatisfied users. Additionally, this causes reputational damage for the customers as well as for the digital agency or the website operators. But where lies the key to stable performance? Is it in development or in operation?
Origin of Poor Performance
To prevent poor performance, we must first determine how it arises. In traditional project approaches, performance tests and load tests are often conducted only once - at the end of development and shortly before go-live. During load tests, the application is tested under expected load: for example, whether multiple people can simultaneously fill their shopping carts in a commerce system. These tests uncover performance bottlenecks or even lead to the web application crashing. Performance problems are often due to changes in code or adjustments to interfaces.
The key lies in integrating performance testing directly into the deployment pipeline.
Integration into the Deployment Pipeline
The goal is to identify and address the impact of code on performance as early as possible. But how can this be achieved in an agile approach, when we deploy new code with new features to the live application every three weeks, for example? The key lies in integrating performance testing directly into the deployment pipeline. This allows us to run performance tests automatically. We can either execute the performance tests automatically, for example after a deployment, or start them manually with a click.
Integration into the Agile Project Approach
As the example in the graphic shows, load tests run every night on the test system. For the load tests to be meaningful, the test system must be identical to the production environment. We now detect problems directly when they first appear after a deployment. At this point, it's easier for developers to understand which code changes have affected performance. Thus, we can address issues earlier and more cost-effectively than if testing were to occur months after development.
Thanks to performance testing, we can more quickly and better understand which code changes affect performance.
Integration into the Agile Project Team
The results of performance tests are visible to all project members, including clients. Comparing the results to the last deployment helps the DevOps team decide whether a deployment to production is possible. If the tests show a deterioration in performance, the team collectively searches for the cause and a solution. We may need to postpone further developments until we can resolve the problem. This is the only way we can ensure that performance issues are not carried over multiple releases.
Automated Performance Testing Pays Off
Automated performance testing pays off: for the development team, for the organization, and for the clients. They know before the release is delivered whether the changes and new features will withstand the expected load. Moreover, the one-time efforts for test conception are sustainably invested through continuous execution. While performance remains a vulnerable point in web applications, we can sustainably reduce the risk of an incident in live operations.