Performance Testing
Performance Testing
1. Load testing
Load testing simulates a real-world load on the system to see how it
performs under stress. It helps identify bottlenecks and determine the
maximum number of users or transactions the system can handle. It checks
the product’s ability to perform under anticipated user loads. The objective
is to identify performance congestion before the software product is
launched in the market.
2. Stress testing
Stress testing is a type of load testing that tests the system’s ability to
handle a high load above normal usage levels. It helps identify the breaking
point of the system and any potential issues that may occur under heavy
load conditions. It involves testing a product under extreme workloads to
see whether it handles high traffic or not. The objective is to identify the
breaking point of a software product.
3. Spike testing
Spike testing is a type of load testing that tests the system’s ability to handle
sudden spikes in traffic. It helps identify any issues that may occur when
the system is suddenly hit with a high number of requests. It tests the
product’s reaction to sudden large spikes in the load generated by users.
4. Soak testing
Soak testing is a type of load testing that tests the system’s ability to handle
a sustained load over a prolonged period. It helps identify any issues that
may occur after prolonged usage of the system.
5. Endurance testing
Endurance testing is similar to soak testing, but it focuses on the long-term
behavior of the system under a constant load. It is performed to ensure the
software can handle the expected load over a long period.
6. Volume testing
In Volume testing, a large number of data is saved in a database and the
overall software system’s behavior is observed. The objective is to check the
product’s performance under varying database volumes.
7. Scalability testing
In Scalability testing, the software application’s effectiveness is determined
by scaling up to support an increase in user load. It helps in planning
capacity additions to your software system.
Why use performance testing?
The objective of performance testing is to eliminate performance
congestion.
It uncovers what needs to be improved before the product is
launched in the market.
The objective of performance testing is to make software rapid.
The objective of performance testing is to make software stable and
reliable.
The objective of performance testing is to evaluate the performance
and scalability of a system or application under various loads and
conditions.
It helps identify bottlenecks, measure system performance, and
ensure that the system can handle the expected number of users or
transactions.
It also helps to ensure that the system is reliable, stable, and can
handle the expected load in a production environment.
How to conduct performance testing?
Conducting performance testing involves several steps to ensure that a
software application can handle expected loads and perform well under
stress. Here’s a simplified guide on how to conduct performance testing:
Regression testing
Regression testing is a crucial aspect of software engineering that
ensures the stability and reliability of a software product. It involves
retesting the previously tested functionalities to verify that recent code
changes haven’t adversely affected the existing features.
By identifying and fixing any regression or unintended bugs, regression
testing helps maintain the overall quality of the software. This process is
essential for software development teams to deliver consistent and high-
quality products to their users.
What is Regression Testing?
Regression testing is like a software quality checkup after any changes are
made. It involves running tests to make sure that everything still works as it
should, even after updates or tweaks to the code. This ensures that the
software remains reliable and functions properly, maintaining its integrity
throughout its development lifecycle.
When to do regression testing?
When new functionality is added to the system and the code has been
modified to absorb and integrate that functionality with the existing
code.
When some defect has been identified in the software and the code is
debugged to fix it.
When the code is modified to optimize its working.
Process of Regression testing
Firstly, whenever we make some changes to the source code for any reason
like adding new functionality, optimization, etc. then our program when
executed fails in the previously designed test suite for obvious reasons.
After the failure, the source code is debugged to identify the bugs in the
program. After identification of the bugs in the source code, appropriate
modifications are made. Then appropriate test cases are selected from the
already existing test suite which covers all the modified and affected parts
of the source code. We can add new test cases if required. In the end,
regression testing is performed using the selected test cases.
Process Regression testing
Techniques for the selection of Test cases for Regression Testing
Select all test cases: In this technique, all the test cases are selected
from the already existing test suite. It is the simplest and safest
technique but not very efficient.
Select test cases randomly: In this technique, test cases are selected
randomly from the existing test suite, but it is only useful if all the test
cases are equally good in their fault detection capability which is very
rare. Hence, it is not used in most of the cases.
Select modification traversing test cases: In this technique, only
those test cases are selected that cover and test the modified portions
of the source code and the parts that are affected by these
modifications.
Select higher priority test cases: In this technique, priority codes
are assigned to each test case of the test suite based upon their bug
detection capability, customer requirements, etc. After assigning the
priority codes, test cases with the highest priorities are selected for
the process of regression testing. The test case with the highest
priority has the highest rank. For example, a test case with priority
code 2 is less important than a test case with priority code
Alpha testing is
Beta testing is
performed by testers
performed by clients
who are usually
who are not part of
internal employees of
the organization.
Performed by the organization.
concentrates on the
quality of the product
the quality of the
but collects users
product before
input on the product
forwarding to beta
and ensures that the
testing.
product is ready for
real time users.