Latest News: Part 3 of the TelQA Testing Series articles now available for download.
Go to Product Pages
An Introduction to Testing

Why Test?

Customers expect that with each new product release companies will provide more features, better quality and lower prices. To keep up with this fast changing market, companies involved in software, hardware, or equipment manufacture are constantly looking for ways to reduce time to market, improve productivity and lower costs.

Regardless of its size, if a company is to be successful in the design, development and production of products or systems it is almost certain that they must have some form of testing strategy in place. Whether they have implemented test procedures as part of a formal Quality Assurance (QA) plan, or they simply rely on the individuals within the company to implement their own testing, time and effort should be allocated to testing.

The fundamental aim of the testing process is to ensure that systems meet their specified requirements. Whether the requirement is functional or performance based, some form of testing must be carried out to verify compliance with a specification.

In many cases companies consider testing an essential part of their development process. The benefits of testing during development can be measured as improved quality, reduced delivery times and lower support costs. In other cases the customer may require that a formal Acceptance Test be carried out before the product is delivered. An Acceptance Test is a documented set of test procedures and required results which must be carried out before the product can be officially released to the customer.

Even when product development is complete, testing has a further role to play within product maintenance. In particular testing can be crucial in ensuring that any changes made to the product do not cause a reduction in the overall quality, i.e. the unchanged parts of the product continue to operate as normal.

The requirement for testing also applies to web based applications; users expect the application to run smoothly without slow response times, site lock-ups, failed logins, corrupted data and other performance related problems. To ensure this, the application needs to be performance tested.

What is Web Application Performance Testing?

The goal of performance testing is to identify the presence of bottlenecks in a web application that could potentially cause performance problems. This is done by applying a realistic load to a web application and monitoring a range of performance related parameters during the test. The performance data captured from the test can then provide a measure of the application’s capability to deliver an acceptable level of performance both at the time of testing and in the future.

A typical performance test consists of four main stages:
  • The capture of user interactions
  • The creation of virtual users
  • The application of the load
  • The analysis of the test results

These stages are covered in more detail below.

The Capture of User Interactions and Creation of Virtual Users

In the first stage of the test creation the range of typical user types is determined. The interactions of each individual user type are then captured using a combination of a standard browser and test specific software (such as TelQA Test). The interactions are stored within an editable script. This script can then be modified, or modelled, to create a virtual user (VU).

Creation of VUs

1
The user accesses the target application using a standard browser
2
Browser communication to the target application is intercepted by the test software. A script is created containing all requests made by the user
3
The target application responses are intercepted by the test software. The response data is inserted into the script at the relevant points
4
The script content is modelled to create virtual users (VUs) by changing all user specific information (passwords, delays, etc) to values which can be defined within the test

Application of the Load and Results Analysis

A realistic load consisting of different combinations and volumes of VUs is created by the test software. This load may be a fixed load applied for a specified length of time, or it could be a load that increases and decreases over time.

Replay of VUs

1
The test software controls the replay of user interactions through VUs. Performance results data relating to individual VUs is collected by the test software
2
VU requests as captured during the creation of the VU
3
Server response to individual VU requests
4
The test software requests performance data
5
Web server performance data is collected by the test software


Types of Performance Testing

Typically, performance testing is split into two main categories:
  • Load Testing
  • Stress Testing

Load Testing

Load testing involves applying a realistic load to a web application such that the behaviour of the application can be monitored under both normal and expected peak load conditions.

Stress Testing

Stress testing involves applying an abnormally high load to a web application to test its robustness and stability. The application is usually loaded to breaking point. This type of testing can be used to determine the behaviour of the application during extreme load situations.

Applications of Performance Testing

Performance testing is used throughout the full product development lifecycle. A typical web application development lifecycle will include:

  • Unit Testing
  • Integration Testing
  • Customer Acceptance Testing
  • Service Level Agreement Validation
  • Regression Testing during maintenance

Each of these testing stages utilise both functional and performance testing.