Performance Testing and the World Wide Web

Today’s client/server systems are expected to perform reliably under loads ranging from hundreds to thousands of simultaneous users. The fast growing number of mission critical applications (e-commerce, e-business, contents management, etc.) accessible through the Internet makes web site performance an important feature for success in the market.

According to a broad statement in the white paper Web Performance Testing and Measurement: a complete approach, by G. Cassone, G. Elia, D. Gotta, F. Mola, A. Pinnola: “…a survey [in the US] has found that a user typically waits just 8 seconds for a page to download completely before leaving the site!”

Organizations need to perform repeatable load testing to determine the ultimate performance and potential limits of a system on an on-going basis. Poor performance can have direct negative consequences on the ability of a company to attract and retain its customers. Controlling performance of web site and back-end systems (where e-business transactions run) is a key factor for every on-line business.

“Performance Testing” is the name given to a number of non-functional tests carried out against an application. There are three main elements that often comprise what is called Performance Testing. These are:

  • Performance Testing – Concentrates on testing and measuring the efficiency of the system.
  • Load Testing – Simulates business use with multiple users in typical business scenarios, looking for weaknesses of design with respect to performance.
  • Stress Testing – Sets out to push the system to its limits so that potential problems can be detected before the system goes live.

A difference between performance and load testing is that performance testing generally provides benchmarking data for marketing purposes, whereas load testing provides data for the developers and system engineers to fine-tune the system and determine its scalability.

With load testing, you can simulate the load generated by hundreds or thousands of users on your application – without requiring the involvement of the end users or their equipment. You can easily repeat load tests with varied system configurations to determine the settings for optimum performance. Load testing is also particularly useful to identify areas of performance bottlenecks in high traffic web sites.

Top five questions to ask yourself when considering load testing:

  • Do you experience problems with performance in production?
  • What is the cost of downtime, including monetary, person hours, opportunity cost, customer satisfaction, and reputation?
  • Does your application scale with an increase of users?
  • Do you have a method for obtaining real performance metrics?
  • How do you repeat/reproduce a performance problem?

Defining exactly what you want to get from this type of testing is fundamental. In a comprehensive approach, there are some major questions that have to be considered:

  • Who are your end users?
  • How can you monitor their experience with the system?
  • How can you translate these measurements into solutions?
  • What tools and methods can help?

With the answers to the above questions you get started with:

  • Strategy and Planning
    • Define your specific performance objective.
    • Specify the types of users to generate the necessary load.
    • Define the scenarios that simulate the work and data flow.
    • Define how the scenarios will be measured and tested.
    • Define the repository for storing the data to be collected.
    • Plan your test environment.
    • Identify appropriate tools.
  • Development
    • Develop/customize test scripts which simulate your user’s behaviour.
    • Configure your test environment.
  • Execution
    • Execute your test scripts to simulate user load.
    • Monitor the system resources.
  • Result Analysis
    • Analyze and interpret the results.
    • Isolate and address issues.
    • Tune your implementation.
    • Plan for future marketing requests.
Avatar

About Trevor Atkins

Trevor Atkins (@thinktesting) has been involved in 100’s of software projects over the last 20+ years and has a demonstrated track record of achieving rapid ROI for his customers and their business. Experienced in all project roles, Trevor’s primary focus has been on planning and execution of projects and improvement of the same, so as to optimize quality versus constraints for the business. LinkedIn Profile
This entry was posted in  All, Automation & Tools, Test Planning & Strategy and tagged , , . Bookmark the permalink.