Wednesday, July 6, 2016

Performance testing parameters and its relation with performance

1.     Response time (Total turnaround time (TTAT))

  • Always measured in seconds on client side, measured in millisecond for server processing, measured in nanosecond for network.
  • Response time is inversely proportional to performance.

2.     Hit per second (HPS)

  • Request accepted by server, not processed by server
  • It is directly proportional to efficiency of server which might yield to higher performance.
           Case 1:- load is increasing but hit is not increasing -> client side memory leaks,

           Example: IE GUI closed but process running,

           Case 2:- load is in steady state but hit/sec is zero => hits are in queue

3. Throughput


  • For response data, it is measured in bytes per sec. It helps us in analysing the bandwidth, how much data is processed and pushed from server to client.
  • Case1: Hit/sec is decreased, load is increased but throughput is increasing -> memory leak at server side. Unclosed, unattended session at server. Improper handling of sessions.
  • Throughput increases with increasing hits on the web server for a certain range. Generally, it also depends on the bandwidth available. Then at a certain range, the Throughput becomes constant & at this point if hits per sec increases then the throughput decreases.
  • So whenever we derive a relation between Hits per sec & Throughput then within the threshold limits they are directly proportional to each other.


4. Transaction per sec (TPS)

  • Number of transaction of a specific business process has been completed in one second, larger the value higher the efficiency of server and higher the performance.


5. Total transaction per second (TTPS)

  • Total no of transactions completed in one second irrespective of business process. Larger the value of TTPS, higher the efficiency of server.


6. Connection per second (CPS)

  • Number of connection opened per second
  • The number of new connections should be a small fraction of the number of hits per second, because new TCP/IP connections are very expensive in terms of server, router and network resource consumption. Ideally, many HTTP requests should use the same connection, instead of opening a new connection for each request.
  • Exponential directly proportional to load


7. Pages downloaded per second (PDPS)

  • Number of Web pages downloaded from the server during each second of the load test scenario run.

Performance Testing & Its types

Performance Testing – Definition


Performance testing is a type of testing intended to determine the responsiveness, throughput, reliability, and/or scalability of a system under a given workload. It can also serve to investigate measure, validate or verify other quality attributes of the system, such as resource usage.

Performance testing determines speed, scalability, stability, while focusing on cost, system constraint, user expectation

Performance testing types:-


1.     Load testing

  • Load testing is the simplest form of performance testing.
  • A load test is usually conducted to understand the behaviour of the system under a specific intended/expected/anticipated load.
  • This load can be the expected (already known to user) concurrent number of users on the application performing a specific number of transactions within the set duration.
  • This test will give out the response times of all the important business critical transactions.
  •   If database and/or application server, etc. are also monitored, then this simple test can itself point towards any bottlenecks in the application software.

2.     Stress testing

  • Stress testing is normally used to understand the upper limits of capacity (no. of users) within the system.
  • When user load is greater than the intended load then it is called stress testing.
  • Another condition is when load is negligible but environment under test is with unfavourable/abnormal condition then also it is called stress testing.
  •  This kind of test is done to determine the system's robustness in terms of extreme load and helps application administrators to determine system performance if the current load goes well above the expected maximum.


3.     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 behaviour 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.
  • Load repeatedly is increased beyond anticipated load for short period of time.


4.     Endurance testing (soak testing)

  • It is a subset of load testing – Intended load is applied for long duration over an extended period.
  • Minimum of 4 hours and maximum can be 1 day or 2 day.
  • Endurance testing is usually done to determine if the system can sustain the continuous expected load.
  • During endurance tests, memory utilization is monitored to detect potential leaks.
  • Also important, but often overlooked is performance degradation. That is, to ensure that the throughput and/or response times after some long period of sustained activity are as good as or better than at the beginning of the test.
  • It essentially involves applying a significant load to a system for an extended, significant period of time. The goal is to discover how the system behaves under sustained use.


5.     Capacity Testing

  •  To check the total workload (increased number of users beyond intended load) a server can handle without violating predetermined key performance acceptance area is called Capacity testing.


6.     Scalability Testing


  • Scalability is the capability to increase resources to yield a linear (ideally) increase in service capacity. The key characteristic of a scalable application is that additional load only requires additional resources rather than extensive modification of the application itself.
  • To check the application's ability to handle additional workload without affecting performance.
  • Scalability testing is an extension of performance testing. The purpose of scalability testing is to identify major workloads and mitigate bottlenecks that can impede the scalability of the application.
  • Don’t confuse scalability with capacity testing. Without upgrading the hardware if testing is done then it is known as capacity testing and if hardware is upgraded then it is known as scalable testing.



7.     Stability testing

  • Determine reliability, robustness, function and data integrity, availability, consistency of responsiveness under variety of expected and unexpected condition. To check the stability of the application, do all kind of performance testing.


8.     Benchmark testing

  • Benchmark testing is the process of load testing a component to determine the performance characteristics of the application.
  • The benchmark test is repeatable in that the performance measurements captured will vary only a few percent each time the test is run. This enables single changes to be made to the application or infrastructure in an attempt to determine if there is a performance improvement or degradation.
  • The goals of benchmark testing typically fall into two categories; 
    • To test the system to measure how a change affects its performance characteristics.
    • To test and tune the system to reach a performance requirement or service level agreement (SLA). In this case a series of benchmark tests are conducted in conjunction with iterative cycles of performance tuning.


9.     Configuration Testing

  • Rather than testing for performance from the perspective of load, tests are created to determine the effects of configuration changes to the system's components on the system's performance and behaviour. A common example would be experimenting with different methods of load-balancing.

10.   Volume Testing

  • Volume testing is done against the efficiency of the application. Huge amount of data is processed through the application (which is being tested) in order to check the extreme limitations of the system whether no. of users are 1 or 2 or 10. Standard is 10
  • Such systems can be transactions processing systems capturing real time sales or could be database updates and or data retrieval.
  • Volume testing will seek to verify the physical and logical limits to a system’s capacity and ascertain whether such limits are acceptable to meet the projected capacity of the organization’s business processing

11.  Component Testing

  • Component test is any performance test that targets a single architectural component of the application.
  • Commonly tested components include servers, DB, networks, Firewalls, storage device.