ü Performance Testing – Performance tests are used to evaluate and understand the
application’s scalability when, for example, more users are added or the volume
of data increases. This is particularly important for identifying bottlenecks
in high usage applications. The basic approach is to collect timings of the
critical business processes while the test system is under a very low load (a
‘quiet box’ condition) and then collect the same timings with progressively
higher loads until the maximum required load is reached. For a data retrieval
application, reviewing the performance pattern may show that a change needs to
be made in a stored SQL procedure or that an index should be added to the
database design.
ü Stress Testing – Stress Testing is performance testing at higher than normal
simulated loads. Stressing runs the system or application beyond the limits of
its specified requirements to determine the load under which it fails and how
it fails. A gradual performance slow-down leading to a non-catastrophic system
halt is the desired result, but if the system will suddenly crash and burn it’s
important to know the point where that will happen. Catastrophic failure in
production means beepers going off, people coming in after hours, system
restarts, frayed tempers, and possible financial losses. This test is arguably
the most important test for mission-critical systems.
ü Load Testing – Load tests are the opposite of stress tests. They test the
capability of the application to function properly under expected normal
production conditions and measure the response times for critical transactions
or processes to determine if they are within limits specified in the business
requirements and design documents or that they meet Service Level Agreements.
For database applications, load testing must be executed on a current
production-size database. If some database tables are forecast to grow much
larger in the foreseeable future then serious consideration should be given to
testing against a database of the projected size.
Performance, stress, and load testing are all major undertakings and
will require substantial input from the business sponsors and IT staff in
setting up a test environment and designing test cases that can be accurately
executed. Because of this, these tests are sometimes delayed and made part of
the User Acceptance Testing phase. Load tests especially must be documented in
detail so that the tests are repeatable in case they need to be executed
several times to ensure that new releases or changes in database size do not
push response times beyond prescribed requirements and Service Level
Agreements.
No comments:
Post a Comment