Performance

image description

PERFORMANCE TESTS

A performance problem can turn the best service into a nightmare. In these cases, the negative user perception becomes critical as it usually impacts finances, directly or indirectly (for example, requiring extra time for someone to do something that was automatic).

The goal of performance testing is to detect problems and bottlenecks (for example response time degradation), before reaching production. This is achieved by simulating usage load that mimics different real world scenarios.

We can execute almost any performance test type: sustained load, overload and recovery, stress, etc... providing evidences and advice to achieve an optimal configuration of your servers or code rework, if required.

Performance Specifications

We gather and evaluate the requirements that the system must meet to achieve optimal performance, defining the scope of the tests, which systems will be subject to them, number of concurrent users, response times, etc.

Test Environments

We identify the system elements, ensuring that there is a proper resource monitoring over time.

Programming and execution

We design, develop and execute the performance test scripts, continuosly monitoring the system. We use open source tools or, if the client requires it, any other tool for this purpose.

Reports and Integration

We analyze the results of the test execution and create detailed reports which include ideas to improve on the following iteration. On some occasions, epecially if the test must be run several times, we automate both performance testing and the generation of these reports by including the performance testing within your continuous integration cycle.

The performance target determines the type of tests to perform:

Performance

We load the system with the expected number of users during normal system use.

Integration

We evaluate if other systems are able to process the loads generated by our service or application on time.

Peak

By varying the load quickly, we determine the ability of our system to respond, carefully monitoring resources consumption and recovery.

Stress

We gradually increase the load until the system collapses. This allows to identify the first weak point in the environment focus our attention on it.

We consider the performance tests as a preview of the system's final behavior once it is live. Identifying problems in a controlled environment prevents potential problems and avoids surprises.