0% found this document useful (0 votes)
15 views

Software Testing

Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views

Software Testing

Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 18

Software Testing

PRESENTED BY,
HARSHVARDHAN KHERODKAR
Importants Software Testing

 Software testing is the culmination of application development through


which software testers evaluate code by questioning it. This evaluation can
be brief or proceed until all stakeholders are satisfied. Software testing
identifies bugs and issues in the development process so they're fixed
prior to product launch. This approach ensures that only quality products
are distributed to consumers, which in turn elevates customer
satisfactions and trust.
Types of Testing

 Unit Testing

 Integration

 Performance

 Security

 Load

 Regression

 Acceptance
Unit Testing

 Unit testing involves the testing of each unit or an individual component of the
software application. It is the first level of functional testing. The aim behind unit
testing is to validate unit components with its performance.
 A unit is a single testable part of a software system and tested during the
development phase of the application software.
Integration Testing

 Integration testing is the process of testing the interface between two software
units or modules. It focuses on determining the correctness of the interface. The
purpose of integration testing is to expose faults in the interaction between
integrated units. Once all the modules have been unit tested, integration testing is
performed.
Integration Testing Contd..

 Advantages:
1. It is convenient for small systems.
2. Simple and straightforward approach.
3. Can be completed quickly.
4. Does not require a lot of planning or coordination.
5. May be suitable for small systems or projects with a low degree of interdependence between
components.
 Disadvantages:
1. There will be quite a lot of delay because you would have to wait for all the modules to be integrated.
2. High-risk critical modules are not isolated and tested on priority since all modules are tested at once.
3. Not Good for long projects.
4. High risk of integration problems that are difficult to identify and diagnose.
5. This can result in long and complex debugging and troubleshooting efforts.
Performance Testing

 Performance Testing is a type of software testing that ensures software


applications to perform properly under their expected workload. It is a testing
technique carried out to determine system performance in terms of sensitivity,
reactivity and stability under a particular workload.
 Performance testing is a type of software testing that focuses on evaluating the
performance and scalability of a system or application. The goal of performance
testing is to identify bottlenecks, measure system performance under various loads
and conditions, and ensure that the system can handle the expected number of
users or transactions.
Performance Testing Contd..

 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.
Security Testing

 Security Testing is a type of Software Testing that uncovers vulnerabilities of the


system and determines that the data and resources of the system are protected
from possible intruders. It ensures that the software system and application are
free from any threats or risks that can cause a loss. Security testing of any system
is focused on finding all possible loopholes and weaknesses of the system which
might result in the loss of information or repute of the organization. Security
testing is a type of software testing that focuses on evaluating the security of a
system or application. The goal of security testing is to identify vulnerabilities and
potential threats, and to ensure that the system is protected against unauthorized
access, data breaches, and other security-related issues
Security Testing Contd..

 Principle of Security Testing: Below are the six basic principles of security testing:
• Confidentiality
• Integrity
• Authentication
• Authorization
• Availability
• Non-repudiation
Types of Security Testing

 Security Scanning

 Risk Assessment

 Vulnerability Scanning

 Penetration testing

 Security Auditing

 Ethical hacking

 Posture Assessment
Load Testing

 It is an integral part of performance testing under non-functional testing, where


we check an application's performance by applying some load, which is either less
than or equal to the desired load.

 load testing is used to find whether the organization used for compering the
application is necessary or not, and the performance of the application is
maintained when it is at the maximum of its user load.

 Generally, load testing is used to signify how many concurrent users handle the
application and the application's scale in terms of hardware, network capacity etc.
Regression
Testing
Regression Testing is the process of testing
the modified parts of the code and the parts
that might get affected due to the
modifications to ensure that no new errors
have been introduced in the software after
the modifications have been made.
Regression means return of something and
in the software field, it refers to the return of
a bug.
Regression Testing contd..

 Advantages of Regression Testing:


• It ensures that no new bugs has been introduced after adding new functionalities
to the system.
• As most of the test cases used in Regression Testing are selected from the existing
test suite and we already know their expected outputs. Hence, it can be easily
automated by the automated tools.
• It helps to maintain the quality of the source code.
 Disadvantages of Regression Testing:
• It can be time and resource consuming if automated tools are not used.
• It is required even after very small changes in the code.
Acceptance Testing

 It determines whether the software is conforming specified requirements and user


requirements or not. It is conducted as a kind of Black Box testing where the
number of required users involved testing the acceptance level of the system. It is
the fourth and last level of software testing.
Use of Acceptance Testing

• To find the defects missed during the functional testing phase.


• How well the product is developed.
• A product is what actually the customers need.
• Feedback help in improving the product performance and user experience.
• Minimize or eliminate the issues arising from the production.
Acceptance Testing Contd..

 Advantages of Acceptance Testing :


• This testing helps the project team to know the further requirements from the users directly as it involves
the users for testing.
• Automated test execution.
• It brings confidence and satisfaction to the clients as they are directly involved in the testing process.
• It is easier for the user to describe their requirement.
• It covers only the Black-Box testing process and hence the entire functionality of the product will be
tested.
 Disadvantages of Acceptance Testing :
• Users should have basic knowledge about the product or application.
• Sometimes, users don’t want to participate in the testing process.
• The feedback for the testing takes long time as it involves many users and the opinions may differ from
one user to another user.
• Development team is not participated in this testing process.
Conclusion

 Software testing is an important part of the software development process. It is


not a single activity that takes place after code implementation, but is part of each
stage of the lifecycle. A successful test strategy will begin with consideration
during requirements specification.
 Testing details will be fleshed through high and low level system designs, and
testing will be carried out by developers and separate test groups after code
implementation.
 As with the other activities in the software lifecycle, testing has its own unique
challenges. As software systems become more and more complex, the importance
of effective, well planned testing efforts will only increase.

You might also like