Software Performance Testing: How Software
Performs With Real Tasks
During the development of any software, a number of tests
are being performed to ensure that the software is free from
any bugs and meets the standards as required by the user in
terms of functionality, performance etc. Although all the tests
conducted are meant to achieve a common objective of getting
the software ready to be fit for marketing each of these tests
serve a certain purpose different from others. Performance
testing is one such test in the software development time
cycle. Performance testing is a measure of testing of the
performance of software and is an indicator of how well a
software system or component meets its requirements for
performance timeliness. Two important dimensions for timeliness
are responsiveness and scalability. Responsiveness is the
ability of a system to meet its objectives for response time or
throughput. The Scalability is the ability of a system to
continue to meet its response time or throughput objectives as
the demand for the software function increases.
Performance testing comes under the categorization of
non-functional testing and is usually conducted for web
applications. There are different types of testing performed
while conducting performance testing. One such test is load
testing. In this testing the system behavior is checked
under load. The application is tested under heavy loads, such
as testing of a web site to determine the point of degradation
or failure of the response time. As the traffic increases the
load on the website increases and you can determine the point
at which the application cannot take the load. In classic
performance testing, the time taken for responding to user
command is measured. The number of transactions that can
possibly be performed on the site at one time is also
measured.
Another type of performance testing is stress testing
wherein the system is stressed under heavy load like putting
large number of data beyond storage capacity, complex database
queries, continuous input to system or database load. The
Testing is conducted to evaluate a system or component to
determine the load under which it fails and how. The most
preferable result is a graceful degradation under load leading
to non-catastrophic failure. In case you operate on different
programs simultaneously there will be certain slowdown on the
program execution. Another is volume testing wherein the tester
will add more and more data to find the point of
non-functioning of the program. The volume test can also
determine how much volume of software the system can hold
before failure.
Performance tests normally are performed with the following
objectives in mind.
 |
Identification of system bottlenecks |
 |
Verification of current system capacity. |
 |
Verification of scalability of the system. |
 |
Determine optimal hardware/software configuration
for your product. |
Some of researches done by software testers indicate that
the reasons for failure of performance tests are mainly due to
hardware/ database problems, abnormal size and volume of the
transactions which cannot be handled by the system and lack of
proper bandwidth. Validation and verification of system
qualities such as reliability and scalability are also
performed in this testing. The incorporation of performance has
to start even at the computer design stage i.e. well before any
program coding is started.
Performance testing is normally conducted after the
functional testing completion and is done during the System
Testing phase. In addition to indicating whether the system
meets the performance standard as envisaged originally it also
can find out which of the two given systems are superior in
performance or vice versa. It also can identify the part of the
system which makes it better or worse. Introduction of
performance testing in the early stages of development will go
a long way in getting a better product at minimal cost. The
cost of rectifying the performance defects is large if the
testing is started in the late stages of development. Ideally,
the test cases should be as similar to the actual expected use
as far as possible, but this is very rare.
|