Performance testing

One crucial part in building an application was its stability on the given number of workload. More likely into how does the application response in a given workload. One way to examine applications speed, robustness, reliability and application size was thru Performance testing.

Performance testing evaluates the system performance in terms of responsiveness in terms of speed, reliability, robustness and correct sizing in such workloads. The test can be done in some indicators such as:

  • Browser,page and network response time

  • Server request processing time

  • Number of acceptable concurrent user volume

  • CPU memory consumption and number/type of error which may be encountered with the app.

Performance test planning

Like any other test, doing performance test also needs a test plan. This will be out written basis into what will be the QA activity and goals in doing the test. So it is necessary that the test are knowledgeable into what are needed to be covered in the test plan. Before starting the test, think first what are the problem that the test will solve. Refer to the sample questions below:

  • Why is the system performance testing is important?

  • When is the right time to conduct performance testing?

  • What are the different types of performance tests?

  • What does performance testing measure?

  • What is the process of performance testing?

  • What are the characteristics of effective performance testing?

  • What are performance testing metrics?

  • Why automation performance testing?

  • How to automate performance testing?

Why is the system performance testing is important?

Performance test is a way to ensure that the application meets the expected level of service and provide a positive user experienced. For the test measure the systems service capability to handle requests/workloads. This test is to ensure that the application is stable, relative to speed and scalability. Failed to do so will results different problems that may lead to a damaged brand reputation.

When is the right time to conduct performance testing?

Performance test can start during the development stage of the application. But this test will focus into the systems web-services, microservices, API's. The earlier the component is tested, the sooner an anomaly can be detected.

What are the different types of performance tests?

  • Load tests

    • It simulates the number of virtual use that might use an application

  • Unit tests

    • Simulates the transactional activity of a functional test campaign

  • Stress Tests

    • Evaluates the behavior of systems facing peak activity

  • Soak tests

    • Soak testing increases the number of concurrent users and monitors the behavior of the system over a more extended period.

  • Spike tests

    • Spike testing seeks to understand implications to the operation of systems when activity levels are above average. Unlike stress testing, spike testing takes into account the number of users and the complexity of actions performed (hence the increase in several business processes generated).

What does performance testing measure?

The test measures Load times, Scalability, response time and systems performance

What is the process of performance testing?

Performance testing is to be discuss within the team before and during the development. Because not only QA's are involve to this test but as well as the Devs and DevOPs. Given with the task of the team during the development, a set date is necessary to build the test. The build commonly happen when a stable version of application existed. When a version build are present, the team can start defining the following:

  1. Identify the testing environment: Before you begin the testing process, itโ€™s essential to understand the details of the hardware, software, and network configurations youโ€™ll be using. Comprehensive knowledge of this environment makes it easier to identify problems that testers may encounter.

  2. Identify the performance acceptance criteria : Before carrying out the tests, you must clearly define the success criteria for the application โ€“ as it will not always be the same for each project. When you are unable to determine your success criteria, itโ€™s recommended that you find a similar application as the benchmark.

  3. Define planning and performance testing scenarios: To carry out reliable tests, itโ€™s necessary to determine how different types of users might use your application. Identifying key scenarios and data points is essential for conducting tests as close to real conditions as possible:

    1. Set up the testing environment

    2. Implement test design

    3. Run and monitor tests

    4. Analyze, adjust and re-do the tests

    After running your tests, you must analyze and consolidate the results. Once the necessary changes are done to resolve the issues, tests should be repeated to ensure the elimination of any others.

What are the characteristics of effective performance testing?

Realistic tests that provide sufficient analysis depth are vital ingredients of โ€œgoodโ€ performance tests. Itโ€™s not only about simulating large numbers of transactions but anticipating real user scenarios that provide insight into how your product will perform live.

Performance tests generate vast amounts of data. The best performance tests are those that allow for quick and accurate analysis to identify all performance problems, their causes.

What are performance testing metrics?

The critical metrics you should be looking for in your tests must be clearly defined before you start testing. These parameters generally include:

  • Amount of time the processor spends running non-idle threads

  • Use of a computerโ€™s physical memory for the processing

  • Number of bits per second used by the network interface (bandwidth)

  • The time the disk is busy with read/write requests

  • Number of bytes used by a process that cannot be shared with others (used to measure memory leaks)

  • Amount of virtual memory used

  • Number of pages written or read to disk to resolve hardware page defects

  • The overall processing rate of faulty pages by the processor

  • The average number of hardware interruptions the processor receives/processes each second

  • Average read/write requests queued for the selected disk during a sampling interval

  • Length of the output packet queue

  • Total number of bytes sent/received by the interface per second

  • Response times

  • The rate at which a computer/network receives requests per second

  • Number of user requests satisfied by pooled connections

  • Maximum number of sessions that can be simultaneously active

  • Number of SQL statements handled by cached data instead of expensive I/O operations

  • Number of access requests to a file on a Web server every second

  • Amount of data that can be restored at any time

  • The locking quality of tables and databases

  • Maximum wait times

  • Number of threads currently running/active

  • The return rate of unused memory in the system (garbage collector)

References: https://devqa.io/performance-test-plan-template/

Last updated