PERFORMANCE TESTING

Software Testing



Testing is not just finding out the defects. Testing is not just seeing the requirements are satisfied.


Testing is a process of verifying and validating all wanted requirements are there in products and also verifying and validating any unwanted requirements are there in the products.


It is also seeing any latent effects are there in the product because of these requirements.


Testing is not just a phase in SDLC, but it is to be addressed in all phases.

A New Look into


PERFORMANCE


TESTING

Performance testing is to determine the performance attributes of the system under various performance requirements.


Performance attributes are not limited to finding the response time, throughput but it is also to determine the performance attributes like resource usages, leakages, bottlenecks when system is running under various performance requirements. (Normal, load, stress, volume etc.,)


Performance testing is to identify the application’s behavior when the application is communicating with other application in the system, OS, database server, web server etc., It is also to evaluate the compliance of the system or component with specified performance requirements.


Performance testing and functional testing are not same and their objective is entirely different. Even an application with no error may fail because of performance issue.


Performance testing is conducted at the end of the production life cycle to determine whether the application is ready for production from performance perspective.

Performance Testing

Types of Performance Testing


Performance Testing Type

There are different type of Performance Testing based on performance objective. Each type of testing has its own advantages and disadvantages.


1. Load Testing

2. Stress Testing

3. Scalability Testing

4. Volume Testing

5. Endurance testing

6. Capacity Testing


Each test has its own objectives and methodologies. Performance testing is an umbrella term consisting different form of testing. Different type of performance testing have to be understood properly. When to do what type of testing is very important decision. It is mainly based on performance objective

PERFORMANCE TESTING OBJECTIVE



Business Risks Addressed by Performance Testing

To evaluate the compliance of the system with specified performance requirements.

To identify Response time and throughput level of the application.

To identify Resource usages (Memory, disk, process, processor, cache, network, etc.)

To identify Performance Problems like resources leakages or bottlenecks

To identify the various factors affecting the system when load is increased.

Scalability factors to be considered for scaling up the system. Whether the system could be scalable for different environment.

To identify stress level of the application

To identify the behavior of the application when the system is under heavy volume of data.

To determine the optimum capacity needed to address the IT infrastructure needed for production requirements.

To compare and tune the performance attributes of the system.

PERFORMANCE TESTING APPROACH



TRACE provides an integrated complete end-to-end performance testing solution to its customers with its defined methodology and LOADTRACER testing tool. Testing with TRACE reduces the cost of performance testing.


The approach followed at Trace is based on performance objective. The performance objective differs from clients to clients and projects to projects like system integrity, performance behavior, performance enhancement, performance problem diagnosing.


Continuous Performance testing has to be done after tuning the performance aspect of the application. In each cycle, code has to be tuned. Bottlenecks and leakages have to be addressed.

TRACE APPROACH

Performance Testing Process



REQUIREMENT

REQUIREMENT ANALYSIS


Requirement Understanding

Identify the test environment

Project Initiation

Test Initiation Checklist

Determining test scope

PLANNING

TEST PLANNING


Define Test goals

Performance Criteria

Testing tool selection

Identify test scope

Project Acceptance Criteria

DESIGNING

TEST DESIGNING


Test scenario design

Test script creation

Test Data creation

Metric Identifcation

Design Checklist

EXECUTION

ENVIRONMENT SETUP


H/W and S/W environment

Loadtracer tool setup

Resource setup

Lt Monitor Setup

Test environment readiness

ANALYSIS

TEST EXECUTION


Test Script Execution

Test Validation

Virtual user simulation

Monitor the test

Performance data collection

REPORT

ANALYSIS& REPORTING


Analyze the Data

Find Performance issues

Generate analytical report

Performance Tuning

Test Report Generation

PERFORMANCE TESTING METRICS


Performance Testing Metrics

Following are the only few metrics out many that considered during performance testing

Application Specific metrics

All the metrics related to the application being tested like threads lock, request wait, transaction, queues etc.,

User level metrics

All the metrics related to identify the performance behavior at user level like Response Time, Hits per second, Request per seconds, Transaction per seconds

Platform specific metrics

All the metrics that are related to the software that is hosting the application like .net , silver light and J2EE

Server Specific Metrics

All the counters related to server like web server, database server, and application server, file server.

Network specific metrics

All the metrics related to know the efficiency of network including switches, routers, gateways, network interfaces and counters at protocol level.

System Specific metrics

All the metrics related to resource utilization on the server like CPU, Processor, memory, disks, network, cache, drivers and etc.,

Business Risks Addressed Through Performance Testing


Performance testing is inevitable for addressing business risks. For example, if your web application is slow, then the users will browse through some other web application. Eventually you may loose business. Apart from this performance testing helps us to determine many other potential problem related to resource usage, response time, load, scalability and stability.


Major Risks that are addressed thru performance testing are related to Speed, Scalability and Stability

SPEED FACTOR

Increase in response time increase in risks. Even a best application with bad response time will fail. If the application is not fast, then it will result in failure. Slow Web page rendering is always a business risk.


SCALABILITY FACTOR

Will I be able to handle sudden increase in load? Increase in business means increase in users. Increase in users means increased usage. If the application is not handling this spike, then it is a business risks. What are the scalability factor?


STABILITY FACTOR

How far the system is stable in the production? Will the system run for long duration without any fault? How the system is reliable? If the system goes down abruptly , what will happen for the partially completed transaction? Will be user be able to recover the data upon restart?


A good performance testing is where project related risks are identified and correct mitigation strategies are derived there by reducing the testing time.
Business Risks Addressed by Performance Testing