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:
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.
Software is eating the world, as they say. You don’t need to be a tech company for software to run your universe. Last year, 3.7 billion people were affected by software...
Agile performance testing and monitoring are critical to a product’s success, that is no secret. But no matter how thorough pre-production testing and QA processes are, it’s...
What are Web Services? Web services are the software components used to communicate across different platforms and exchange information, mainly in HTML or XML format. Web...