Performance testing is a practical approach
of ensuring the quality characteristics of speed, stability and scalability of
a software application. It can be further considered as the superset of more
critical testing techniques such as load testing, stress testing endurance
testing, spike testing and isolation testing. All these methods help to
determine that the developed system is meeting its performance criteria.
Load testing
focuses on evaluating the response time of the system for transactions for a
period of time. This type of testing is carried out to determine the behavior
of the system under anticipated load in normal conditions.
Stress Testing is performed in order to
evaluate the performance characteristics of an application under test when it
is subjected to workload models and load volumes which are beyond anticipation
during production operations. It is also performed to determine the application
behavior when it is subjected to load volumes while it is subjected to additional
stressful conditions such as server failure, insufficient disk space or limited
memory.
Users expect webpages to load as quickly as
possible. When this does not happen user satisfaction decreases. Websites that
load faster have a competitive advantage. Having competitors just a click away
makes it vital to keep load times quick in order to retain customers.
After speed, website scalability is another
performance factor. It is important to determine how much a website can be
enhanced with new features and configuration so that it can perform equally
efficiently with additional enhancements.
There will be times, when a website will
have to endure stressful situations like Black Friday, New Years Eve, etc., a
time when crashing would not be a good
time. Even a few minutes of downtime is
extremely costly and may generate invalid records in the database. Stress testing here proves to be very
important as they determine the threshold limits of a webpage to help the development team beforehand in
addressing such exceptions if and when they occur.
Although many companies are hesitant to do
so, the most accurate way to ensure the performance of an application, is to
test it in the production system. This can be done by following some practices
which can minimize its impact on the real users.
-
Test the application
sufficiently before making it available to the users at all. This can be
planned as a release management plan
-
Plan for a scheduled
maintenance and restrict all user interaction during that period of time.
-
If none of the above two
options are possible, then it is best to test the application on the off hours
of off days like midnight on Friday, Saturday and Sunday.
-
Increase test load on the
system gradually, so that the test transactions along with the real user
transactions remain within the threshold limits. This will prevent any negative
impact on the real users.
Conclusion
With advancement in technology and
complexity in software features, performance testing
has become more difficult. Part of it can also be attributed to the complexity
of modern web browsers and HTML5. The performance metrics after testing should
be very clearly informed to the stakeholders. Any defects should be checked and
corrections should be immediately made.