Load testing, yes. But when? During a development process, it can be really tricky to integrate a load testing process. It involves more work, more debugging, and need some features to be accurate. But the earlier you test, the stronger you become. Thus, we thought about it a bit and here is our conclusion about when to start load testing.
Waterfall vs Agile
In the past, the majority of software projects followed the waterfall model. They typically did load testing at the end of a project ( i.e. just before the system was expected to go live).
This approach allows for the facilitation of a realistic test environment for the application to preside. However, the overriding problem with it is the sheer cost and complexity to fix any identified performance problems. These issues are compounded by being found at a late stage of the project, with release deadlines looming.
software projects now predominantly follow an iterative agile approach. Thus, it is recommended that load testing follows suit and starts being incorporated much earlier in the project’s lifecycle.
It is possible to incorporate a load test into the build process of the continuous integration solution. It allows the development team to measure and assess performance fluctuations with every incremental software build or release.
Why testing early
All tests try to find problems as early as possible and to provid quick feedback. That’s their primary value. It is insufficient to find the problems at the end of the project when there isn’t enough time to address them.
Statistics demonstrates the impact of poor performance from web application as well as the importance and necessity of starting load testing early in your project.
The amount of revenue at risk of being lost from introducing even a single second delay to a web page is particularly striking. An organization stands a far greater chance of detecting (and thus resolving) unacceptable delays if they can be found early in the project lifecycle.
it can be very difficult (not to mention expensive) to resolve problems like this if they are found at the end of a project ( or when a system has already gone live).
More benefits of early load testing
Starting your load testing exercise early, and continuing iteratively throughout the project lifecycle, has other benefits such as:
- Improving developer knowledge
Load testing can teach developers. How? By Finding a performance issue early in a project on an isolated function or feature. It shows the best practices they need to adopt when designing, planning and coding in that area.
- Other types of issue can be detected
IF you execute load tests earlier in the project, and more often, it can also help identify other issues. Server farm issues, deadlocks and concurrency issues are some examples. These issues may even stay in the shadows if the load testing process is done until the end of the project.
- Increased reporting and metric data
When you run load tests, you gather data. And doing it as part of an agile process means that you will soon a good quantity of data relating to the performance of the system. You can share this data with project stakeholders to provide confidence in the performance and progress of the system being developed.
With all of the above being said, you might still find yourself coming towards the end of a project when your load testing efforts haven’t begun yet. In this case, take a pragmatic approach and start load testing as soon as is realistically possible. Finally, it is still much better to load test late in the project than not executing any load testing at all.
You can be tempted to simply release the application into production and hope for the best. This is not a good approach, as issues uncovered in production can cost exponentially more to fix.
Coupled with increased cost are other negative implications such as system downtime, loss of reputation and decreased confidence from end-users. If you can find the performance issues in a test environment, you can plan to resolve and mitigate issues such as these.
Learn more about Gatling, the best developer tool to load test your applications, at gatling.io
The Gatling team