QA City

   QA City >> Expert Column
Dont Miss Experts

Nuts and Bolts of Performance Testing - Part I

Abhinav Vaid
Abhinav Vaid
Delivery Manager, Arctern
Abhinav is having 15 Years of Experience in Software Testing, Test Automation, Product Release Ma... more>>
Performance Testing was always a part of Software Testing whether explicitly stated or not. The world of software testing is becoming smarter and mature. The changing landscape of Computing and a paradigm Industry wise shift towards SOA/Web based applications has brought a forefront focus on Performance Testing. The expectations sought from this kind of testing are measurable numbers. I have tried to extract the essence of Performance Testing in terms of minimal words which could serve the purpose of cutting short the learning time. Performance Testing is done to measure the Performance of an Application Under Test (AUT) whether the application is an embedded, desktop or a distributed enterprise application. However, these are the enterprise based applications/architectures where lies the prime focus of Performance Testing. Expectations sought from AUT are to measure the performance numbers and ensuring that it conforms to the expectations stated under SLA (Service Level Agreement).
Goals of Performance Testing: The business goal of Performance Testing is to measure the application performance and ensure that the numbers conform to the Service Level Agreements. Goals can be internal (if the application is an in house project), or external (when the SLAs define the objectives).

Types of Performance Testing:

Performance Testing is often confused with Load Testing which is not the case. Performance Testing is a superset of various testing activities performed on an Application Under Test. This at a highest level can be used to calibrate various testing parameters or quality attributes of the System.

Following are the Types of Performance Testing:

Soak Testing

It is about measuring application performance over long periods of test execution. The duration of Test Execution is typically decided to simulate a real production/live environment. We used to perform a lot of Soak Testing of Group Shield for Exchange, which is a McAfee product. The Tests included pumping the mails(including sample virus files like eicar, tryguard) from various mailboxes at regular intervals to Exchange Server for a couple of days of continuous run. The Application Performance counters were captured/evaluated during the entire duration of Test Run.

Load Testing

There are many people who confuse Load Testing with Performance Testing where as Performance Testing is a super set of Load Testing. In Load Testing, we just keep increasing the Load (incrementally) to the Application Under Test and measure the Response Time. Typically, the Load is not increased more than what the application is supposed to support.

Stress Testing

This is another term thats commonly mis-interpreted by many IT professionals. The application crash translates into a condition where the application either hangs or stops responding to requests. In Stress Testing, the application is deliberately loaded with the Load that the AUT does not claim to support and/or the resources are deliberately pulled out so that the application reaches a threshold/breaking point and maybe crash. Some of the symptoms of breaking point include 503 errors with a "Server Too Busy" message, and errors in the application event log that indicate that the ASPNET worker process recycled because of potential deadlocks. Symptoms and causes of application failure under stress conditions. Recoverability options, whether the application recovers after a crash or not. In Stress Testing, the expectations from Stress Testing are that it should exit gracefully and there should be no data loss.

Spike Testing

Spike testing is done by suddenly increasing the number of, or load generated by, users by a very large amount and observing the behavior of the system. The goal is to determine whether performance will suffer, the system will fail, or it will be able to handle dramatic changes in load.

In the next article I will discuss more on the "Objectives of Performance Testing"
Experts on QA
Swaid Qadir Bhat
Sr System Architect
Virtusa Corporation
Subhash  Motwani
Prasad Rao Pasam
Ayaskanta  Mohanty
Managing Director
TATWA Technologies
Rajesh  Dagar
Software Architect
Connect Icon Pvt Ltd
Yasar  Khuthub
Software QA Manager
Azure IT Solutions
Sunil  Bhat
Project Management
HCL Infosystems Limi
Sharad  Agarwal
Team Lead