1.INTRODUCTION TO PERFORMANCE TESTING
The performance testing is a measure of the performance characteristics of an application. The mainobjective of a performance testing is to demonstrate that the system functions to specification withacceptable response times while processing the required transaction volumes in real-time productiondatabase. It’s defined as the technical investigation done to determine or validate the speed, scalability,and/or stability characteristics of the product under test and also Performance-related activities, such astesting and tuning, are concerned with achieving response times, throughput, and resource-utilizationlevels that meet the performance objectives for the application under test.
The objective of a performance test is to demonstrate that the system meets requirements for transactionthroughput and response times simultaneously.The main deliverables from such a test, prior to execution, are automated test scripts and aninfrastructure to be used to execute automated tests for extended periods. This infrastructure is an assetand an expensive one too, so it pays to make as much use of this infrastructure as possible. Fortunately,this infrastructure is a test bed, which can be re-used for other tests with broader objectives. Acomprehensive test strategy would define a test infrastructure to enable all these objectives be met.The performance testing goals are:
End-to-end transaction response time measurements
Measure Application Server components performance under various loads
Measure database components performance under various loads
Monitor system resources under various loads.
Measure the network delay between the server and clients
1.2Types of Performance Testing
Performance Testing, Load Testing, Stress Testing, Spike Testing and Endurance Testing (Soak Testing)
is the process of determining the speed or effectiveness of a computer, network or software program or device. This process can involve quantitative tests done in a lab, such as measuringthe response time or the number of MIPS (millions of instructions per second) at which a systemfunctions. Qualitative attributes such as reliability, scalability and interoperability may also be evaluated.Performance testing is often done in conjunction with stress testing.
is a form of testing that is used to determine the stability of a given system or entity. Itinvolves testing beyond normal operational capacity, often to a breaking point, in order to observe theresults. It refers to tests that put a greater emphasis on robustness, availability, and error handling under a heavy load, rather than on what would be considered correct behavior under normal circumstances. Inparticular, the goals of such tests may be to ensure the software doesn't crash in conditions of insufficientcomputational resources (such as memory or disk space), unusually high concurrency, or denial of service attacks.
suggests to be done by spiking the number of users and understanding the behavior of theapplication whether it will go down or will it is able to handle dramatic changes in load.
Endurance Testing (Soak Testing )
is usually done to determine if the application can sustain thecontinuous expected load. Generally this test is done to determine if there are any memory leaks in theapplication.