Need for testing web applications:

Superior
web experience is the key to success on the World Wide Web. Web applications
have to support many online user interactions daily. All foresighted
corporations should invest in performance engineering of their web
applications.

Process overview:

Any
performance testing process should ensure repeatability, consistently high
quality of delivery, complete coverage and a strong feedback mechanism to
leverage knowledge.

Test Planning:

Based on
the requirement analysis, a comprehensive project plan is prepared. Resources
such as Number of engineers, Testing tools, Servers, Load generators, Bandwidth
are identified and planned by performance analyzer. The number of test runs,
number of transactions, scenarios to be tested, access to various systems (in
case of live/customer site test) etc. are planned.

In
performance consulting the mode of testing is also finalized during the test
planning stage in order to determine whether the testing has to be conducted
over the Internet, on-site at the customer’s data center, or at the offshore
lab.

Understanding the requirements:

WUT is
analyzed for performance benchmarking by determining end-to-end requirements a.
Usage pattern is outlined based on customer feedback and analysis of web log.
Details such as percentage usage per transaction, type and version of browsers
used, connection speed etc are estimated in performance consulting. Based on
this, a WUS is developed.

Templates
and checklists help to decide load levels, method of delivery, etc. The website
infrastructure is also studied to understand the arrangement with ISP(s),
various component usages like firewall, hardware platforms, etc.

Development of simulation scripts:

Test cases
are designed and scripted to cover all the transactions identified as a part of
performance benchmarking. The library of test scripts available with an
independent testing company can be customized and used in order to reduce
testing time.

Collecting the data:

During the execution of the test,
test logs are to be recorded and maintained for performance engineering. The
emphasis is to be on identifying application bottlenecks under various load
conditions. It is recommended to re-run the test to validate the effect of any
fixes made.

Analyzing the data:

The test
results are to be reviewed and analyzed by a performance analyzer with
experience in Hardware platforms Operating systems, Databases and Software
design. Such a team can identify bottlenecks, analyze the root cause and
provide recommendations for corrective action.

Providing results &
recommendations:

A report
including observations and recommendations along with the metrics collected
during the test by performance analyzer is to be submitted on the completion of
each test run through performance consulting.

Best Practices:

The
objective of a performance testing engagement is to ensure stability and
scalability of the web application. Understanding and following best practices
in this area will help isolate and fix bottlenecks rapidly and would also help
in making the performance benchmarking process more effective.

1. Test for
common performance bottlenecks – Web Server, Database Server and Network
problems are the most common reasons why web applications fail to scale. It is
best to start performance engineering from the easiest to the most difficult
application layer.


2. Test for
common transactions – It is critical to test these transactions first as they
are the ones that will put the most load on the system.

3. Create
reusable test scripts – Maintaining a library of reusable test scripts can
minimize rework and significantly improve testing cycle time.

4. Track
defects to closure – A performance testing engagement cannot be conducted on
the basis of a pre-determined number of test runs. Repeating tests is important
to ensure that the recommendations once implemented have resulted in fixing the
issues.