Web Performance

Website performance analysis and engineering

Performance analysis is focused on understanding and analyzing how the website will perform under various circumstances. The goal is to produce estimates of the following key performance metrics:

  • Response time, i.e. how long will it take to perform a specific task, like view a web page, get the results of a search query, subscribe to a service, place an order, etc.
  • Throughput, i.e. the "horsepower" of a website and it can be expressed in many different ways, depending on its nature. For example, typical throughput metrics include:
    • maximum concurrent visitors (how many people can visit a website concurrently and use its resources)
    • maximum transactions per second (search queries, payment transactions or other requests regardless of the number of concurrent users)
    • maximum bytes per second (affects response time and it's crucial for some types of services like Web TV)
  • Utilization, i.e. what percentage of the time is a website busy. If utilization is too high, it means you have to upgrade your systems in order to avoid longer response times.
How well a website performs can have a serious impact on its overall success. If a website performs poorly, the visitors will look for alternatives and this could not only hurt your sales but also tarnish your business image.

At Alterora we try to identify performance issues from the very onset of every project. We have integrated performance engineering throughout our entire methodology, so performance is never evaluated far too late in the system life cycle.

How we do the performance testing We follow the well established methodology that involves:
  1. Functional testing. The first step is to verify that the website is behave as expected and it is functioning properly.
  2. Load and scalability testing. The purpose of this step is to simulate website usage at different loads. With the help of automation testing tools we can see how the system responses as we increase concurrent users or the size and the complexity of their requests.
  3. Interpretation of the results. Analyzing the results can take different directions as uncovering the bottleneck of a system (think of it as the "weakest link") can be not so obvious. It might be a the network misconfiguration, a non-optimized database, a slow piece of code or a hardware issue.
  4. Optimization. Having analyzed the results in the previous step, we are now in position to identify opportunities for improvement. and suggest specific recommendations.