No excuses. You need Performance Testing.
Okay, you’ve ironed out all the bugs you can find. It works fine in your test environment and on the devices you’ve tried. Ready to go? Stop.
A vastly under-employed form of testing needs to start here. That is, Performance Testing.
For mission-critical applications, Performance Testing is vital. It focuses on the end-user performance across multiple platforms. It looks at the system stress and load-tests the application – to help determine capacity planning for your infrastructure.
While it may feel like a win that a service or application is so popular that it crashes your servers, that feeling of euphoria is likely to be extremely short-lived. The damage to your brand, to your credibility and your bottom line can long-lasting, even permanent.
You don’t have to look very far to find stories in the press about an “unforeseen variable” which caused a system-wide problem or a crash in a major service. Those variables should not be “unforeseen”. While production environments present an infinite number of combinations of hardware, software and other environmental variables, they can be tested.
When we look at Performance Testing, we look to address a number of big questions:
- What should you expect once your application is in production?
- What are the potential bottlenecks before the production install?
- How can you tune application parameters to maximize performance?
- What capacity planning do you need to do for your application infrastructure?
For those in the know, they understand that there is a plethora of tools which can support this. Everything from HP, IBM, SOASTA, PlatformLab and Compuware. As well as the many Open Source options that are available.
The difficulty usually lies in getting them to work together, which can be a major integration in itself. When we handle Performance Testing, we typically look to deliver end-to-end automation, combining the strengths of different tools, Open Source and commercial. Without this integration, analytics and decision-support are impossible.
Process-wise, there are four main stages of Performance Testing which need to be addressed to reach a reliable outcome.
Firstly, there is the “Define and Design” stage. This is where we define the performance requirements, select the performance testing tool or tools and procure the test environment. Also, we define the test data and identify usage scenarios and potential risks.
Then there is the “Develop and Baseline” stage. Here we install and test the performance test environment. We populate test data and design test scripts. Then we design test scripts. We record, develop and test the test scripts. And finally we execute the scripts for debugging and base-lining.
Then comes the “Test and Tune” stage. Here we execute the test scripts. Then the fun part… We add virtual users to identify bottlenecks. That allows us to then tune the application server, the web server and database and tune the overall infrastructure and network.
Final stage. “Certify and Deploy”. Here we are able to do an extrapolation analysis based on the performance data. We can then look at capacity planning at the web server, app server and database levels. And in general, deploy the risk mitigation plan.
Arguably, more than any other standardized form of testing, failing to Performance Test is planning to fail. The trajectories of thousands of applications could have been dramatically different had a robust set of Performance Testing been in place. If you would like to know more about our Performance Testing services, check out our service overview or contact us directly.