Unit 4
Unit 4
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.
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.
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.
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 of time. It helps identify any issues that may occur after
prolonged usage of the system.
Endurance testing: This type of testing is similar to soak testing, but it focuses on the long-
term behavior of the system under a constant load.
Performance Testing is the process of analyzing the quality and capability of a product. It is a
testing method performed to determine the system performance in terms of speed, reliability
and stability under varying workload. Performance testing is also known as Perf Testing.
Performance Testing Attributes:
Speed:
It determines whether the software product responds rapidly.
Scalability:
It determines amount of load the software product can handle at a time.
Stability:
It determines whether the software product is stable in case of varying workloads.
Reliability:
It determines whether the software product is secure or not.
Objective of Performance Testing:
1. The objective of performance testing is to eliminate performance congestion.
2. It uncovers what is needed to be improved before the product is launched in market.
3. The objective of performance testing is to make software rapid.
4. The objective of performance testing is to make software stable and reliable.
5. 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.
Types of Performance Testing:
1. Load testing:
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 market.
2. Stress testing:
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. Endurance testing:
It is performed to ensure the software can handle the expected load over a long period of time.
4. Spike testing:
It tests the product’s reaction to sudden large spikes in the load generated by users.
5. Volume testing:
In volume testing large number of data is saved in a database and the overall software
system’s behavior is observed. The objective is to check product’s performance under varying
database volumes.
6. Scalability testing:
In scalability testing, software application’s effectiveness is determined in scaling up to support
an increase in user load. It helps in planning capacity addition to your software system.
Performance Testing Process:
1. Iteration 0
It is the first stage of the testing process and the initial setup is performed in this stage. The testing
environment is set in this iteration.
This stage involves executing the preliminary setup tasks such as finding people for testing,
preparing the usability testing lab, preparing resources, etc.
The business case for the project, boundary situations, and project scope are verified.
Important requirements and use cases are summarized.
Initial project and cost valuation are planned.
Risks are identified.
Outline one or more candidate designs for the project.
2. Construction Iteration
It is the second phase of the testing process. It is the major phase of the testing and most of the
work is performed in this phase. It is a set of iterations to build an increment of the solution. This
process is divided into two types of testing:
Confirmatory testing: This type of testing concentrates on verifying that the system meets the
stakeholder’s requirements as described to the team to date and is performed by the team. It is
further divided into 2 types of testing:
Agile acceptance testing: It is the combination of acceptance testing and functional
testing. It can be executed by the development team and the stakeholders.
Developer testing: It is the combination of unit testing and integration testing and
verifies both the application code and database schema.
Investigative testing: Investigative testing detects the problems that are skipped or ignored
during confirmatory testing. In this type of testing, the tester determines the potential problems
in the form of defect stories. It focuses on issues like integration testing, load testing, security
testing, and stress testing.
This phase is also known as the transition phase. This phase includes the full system testing and
the acceptance testing. To finish the testing stage, the product is tested more relentlessly while it
is in construction iterations. In this phase, testers work on the defect stories. This phase involves
activities like:
Training end-users.
Support people and operational people.
Marketing of the product release.
Back-up and restoration.
Finalization of the system and user documentation.
4. Production
It is the last phase of agile testing. The product is finalized in this stage after the removal of all
defects and issues raised.
Agile Testing Quadrants
The whole agile testing process is divided into four quadrants:
1. Quadrant 1 (Automated)
The first agile quadrat focuses on the internal quality of code which contains the test cases and
test components that are executed by the test engineers. All test cases are technology-driven and
used for automation testing. All through the agile first quadrant of testing, the following testing can
be executed:
Unit testing.
Component testing.
2. Quadrant 2 (Manual and Automated)
The second agile quadrant focuses on the customer requirements that are provided to the testing
team before and throughout the testing process. The test cases in this quadrant are business-
driven and are used for manual and automated functional testing. The following testing will be
executed in this quadrant:
Pair testing.
Testing scenarios and workflow.
Testing user stories and experiences like prototypes.
3. Quadrant 3 (Manual)
The third agile quadrant provides feedback to the first and the second quadrant. This quadrant
involves executing many iterations of testing, these reviews and responses are then used to
strengthen the code. The test cases in this quadrant are developed to implement automation
testing. The testing that can be carried out in this quadrant are:
Usability testing.
Collaborative testing.
User acceptance testing.
Collaborative testing.
Pair testing with customers.
4. Quadrant 4 (Tools)
The fourth agile quadrant focuses on the non-functional requirements of the product like
performance, security, stability, etc. Various types of testing are performed in this quadrant to
deliver non-functional qualities and the expected value. The testing activities that can be
performed in this quadrant are:
Non-functional testing such as stress testing, load testing, performance testing, etc.
Security testing.
Scalability testing.
Infrastructure testing.
Data migration testing.
S.
No. Load Testing Stress Testing
Load Testing is performed to test the Stress Testing is performed to test the
1. performance of the system or software robustness of the system or software
application under extreme load. application under extreme load.
In load testing load limit is the In stress testing load limit is above the
2.
threshold of a break. threshold of a break.
4. Huge number of users. Too much users and too much data.
The factor tested during load testing The factor tested during stress testing
6.
is performance. is robustness and stability.
9. Load testing is useful in finding bugs Stress testing is useful as it aids the testing
like memory overflows, etc., finding unit by testing the system in failure
the adequacy of current infrastructure situations, checks for data saving by the
in running the applications, system before it crashed, to see if any
determining the number of concurrent unanticipated failures potentially harm the
users that an application can handle, security of the system, and more.
checks for application’s scalability for
accommodating more users and more.