Wednesday 28 January 2015

What is Load testing and five tips to do it effectively




Can my IT system perform as intended when the workload is high?

What is the maximum load that my system can take?

How long the server can stay up and running under constant load?

Load testing can ONLY help you answer these questions!

Before you launch an application or a system / software, it’s better to know how it performs under peak work load, its response time, utilization of resources, output etc. also, its breaking point.  By load testing, you can ensure a software application or an IT system performs successfully as intended and thus can be deployed to production. 

Load testing is conducted by applying normal or ordinary load within the defined parameters. Load is increased constantly and steadily on the system till the threshold limit to determine the upper load limit of different components say database, hardware and network etc. that an application / IT system can handle. 

As an independent testing services company, with 10+ years of extensive experience coupled with deep-domain expertise, Gallop provides the following suggestions for a successful load testing. 

Identify the key areas to be tested

At the outset, the key areas or the areas / scenarios to be tested have to be identified. The key areas are those which have specific goals to perform or which have a significant impact on performance of the application / system or which usually perform multiple activities.

Define the load and metrics right in the beginning

For each of the key scenarios identified, the workload in terms of number of users, rate of requests, request patterns etc. have to be defined including duration.  It might not be possible to include the entire mix of operations in the load testing scenarios. However, it’s important to create a combination that depicts real-time scenarios and covers the majority of transaction load. So, the workload has to be chosen carefully.

Likewise, the metrics specific to network, system, platform, application and service level, that need to be measured while running load test, should also be identified. These metrics help the tester to measure the performance of an application vs. performance objectives while stimulating load. After all, the sole purpose is to determine how much load a system can take.

Employ the right tool

There are numerous tools available today for load testing. Evaluating and choosing the right tool is not easy as they differ in terms of functionalities, scaling, cost, deployment model, etc.  Hence, clarity on the load testing requirements is needed to choose and employ the right tool. 

Test in production-like environment

Though test environment varies from case to case, it is suggested to conduct load testing in production environment or production-like environment for effective results. The validity of testing results is highly dependent upon the environment that it is carried out. The farther the test environment from production, the more subjective would be the results. 

Adopt agile testing methodology

Proper load testing technically requires a near-complete system.  Actual system performance and user engagement load can be accurately simulated and put to test at the end of production cycle.  However, if the load testing is pushed off to the last phase of the development cycle, often developers find little time or no time to make any needed changes. Continuous load testing in an agile environment can identify performance-related issues early before they turn out to be costly to fix. Thus, ‘test early, test often’ is the mantra to avoid unwarranted delays and costs.
Find out how Gallop’s Performance Test Accelerator can help you maximize the return from Load testing.

Wednesday 14 January 2015

Does your application crumble under load?



Performance testing is an intrinsic part of the whole testing process which involves testing the applications with varied amount of load, stress and strategic performance related parameters. In addition to the current expected load, applications also need to be future proof to handle organic load scalability driven by greater product adoption.

An application crash not only causes significant revenue loss but also increases the chances of loss of credibility and trust. This it becomes imperative for all software applications to be tested for scalability and increased resource usage in the future. Let us take a look at performance testing process which ensures your application runs seamlessly at varied loads and even stays afloat in case of sudden traffic spikes.

There are news items every holiday & festive season that e-commerce sites have crashed when more than expected number of visitors turn up to the portal. The most common response is site loads forever. Performance testing helps predict and prevent bottlenecks to ensure applications run as expected under load. For online applications it becomes even more important as it affects the search engine rankings as well as while the users abandon the site due to late responses.



Performance testing comprises of various subsets like Stress testing, Load testing,
Volume testing, Spike Testing and Scalability testing. The motive of all these testing practices is to make sure that your system performs as per the user expectations and gives him an experience which is trouble free. Validation of the software’s performance under varied load conditions and putting it artificially under pressure gives the developers many loop holes on which they can work and improve the performance. Memory leakage is one of the common performance related issues which gets detected in performance testing. Scalability of system is also very important along with speed as it judges the performance of the system for future test cases and for some spike situations when the traffic might rise suddenly.

A Performance testing process comprises of designing and configuring the test cases in such a way that they try to subject the system by varying various load parameters. All this is accomplished using Performance testing automation tools. Most common performance related issues are related to Response time, Load time, Hardware utilisation of HDD & CPU, Network delay and Software configurations. Such issues are commonly identified by the software testers and reported.

Various automated performance testing tools are used to ease the task of testers who need to create the virtual environment to execute test cases to test the system. These testing tools put the software application under continuous and random stress, load to bring the best out of it and measure the response time and overall performance of the system. A test plan including the performance test process is a must and should comprise of the choice of right test tool to execute variety of test cases. Analysing the test results, fine tuning the application and then retesting the application removes the performance bottlenecks and makes it a user friendly
application.

Performance testing is a major part of UI experience and should not be ignored as it
can have wide ranging impact on the business operations and sales. It should be a major part of any software development process as it is directly related to the end user experience and a failed application can impact the customer’s perception of the brand.