Friday, 24 March 2017

Performance & Stress Testing: For Delivering Responsive Future-Proof Systems

At Oniyosys, we get involved in performance testing right from the pre-deployment stage itself. This helps in early resolution of issues. In the event that systems are already live.

What is Performance Testing?

Performance Testing is the general name for tests that check how the system behaves and performs. Performance testing examines responsiveness, stability, scalability, reliability, speed and resource usage of your software and infrastructure. Different types of performance tests provide you with different data, as we will further detail.

Before Performance Testing, it’s important to determine your system’s business goals so you can tell if your system behaves satisfactorily or not according to your customers’ needs.

After running performance tests, you can analyze different KPIs, such as the number of virtual users, hits per second, errors per second, response time, latency and bytes per second (throughput), as well as the correlations between them. Through the reports, you can identify bottlenecks, bugs and errors, and decide what needs to be done.

When should you use Performance Testing?

When you want to check your website performance and app performance, as well as servers, databases, networks, etc. If you work with the waterfall methodology, then at least each time you release a version. If you’re shifting left and going agile, you should test continuously.

What is Stress Testing?

Stress Testing is testing that checks the upper limits of your system by testing it under extreme loads. The testing examines how the system behaves under intense loads, and how it recovers when going back to normal usage, i.e are the KPIs like throughput and response time the same as before? In addition to load testing KPIs, stress testing also examines memory leaks, slowness, security issues and data corruption.

Stress Testing can be conducted through load testing tools, by defining a test case with a very high number of concurrent virtual users. If your stress test includes a sudden ramp-up in the number of virtual users, it is called a Spike Test. If you stress test for a long period of time to check the system’s sustainability over time with a slow ramp-up, it’s called a Soak Test.

When Should You Use Stress Testing?

Website stress tests and app stress tests are important before major events, like Black Friday, ticket selling for a popular concert with high demand or the elections. But we recommend you stress test every once in a while so you know your system’s endurance capabilities. This ensures you’re always prepared for unexpected traffic spikes, and gives you more time and resources to fix your bottlenecks.

This is an example of what a Spike Test would look like on JMeter. This test analyzes adding 7,000 users at once and then adding 500 users every 30 seconds until reaching 10,000 users.  After reaching 10,000 threads all of them will continue running and hitting the server together for 5 minutes.

We offer the following performance tests:

Load Test – where we test applications at the optimal level of its specifications.

Stress Test - here we test the system or application at extreme operating conditions by stressing it out by removing the resources that support it & see how it works.

Ageing Test – this test gauges how an application performs after extended usage over a long period of time.

Throttle Test – here the application is testing across different bandwidths and within specifications like CPU usage, memory, web traffic, web processes etc.

At Oniyosysour performance testing team will help with suggestions on how to improve the existing applications and help in identifying the segments of software that need fine-tuning and fixing under both normal and extraordinary conditions.

No comments:

Post a Comment