Looking for Regional Information?

Performance Engineering Of Web Applications

By RTG Marketing Published 12/30/2006 | Computer

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.

 ReadyTestGo is a professional Software Testing Company (www.readytestgo.com/readytestgo.htm).
For more details about Software Performance Testing (www.readytestgo.com/performance-engineering.htm), please contact [email protected]