Unit-4
Unit-4
Unit testing: This type of testing focuses on verifying the functionality of individual
components or modules of the software to ensure that they work correctly in
isolation.
Integration testing: Integration testing is used to test how different components of
the software interact with each other and function as a whole system.
System testing: System testing evaluates the entire software product to ensure
that it meets all specified requirements and functions as expected in real-world
scenarios.
Acceptance testing: Acceptance testing involves testing the software with end-
users to determine if it meets their needs and performs as desired.
Performance testing: Performance testing assesses the speed, responsiveness, and
stability of the software under different conditions to ensure optimal performance.
Security testing: Security testing evaluates the software for vulnerabilities and
weaknesses that could be exploited by hackers or malicious users.
Internal and External Views of
Testing
Internal view of software testing:
Involves analyzing the code and functionality of the software to
ensure it meets the specified requirements and standards.
Focuses on identifying errors, bugs, and defects within the
software through various testing techniques such as unit testing,
integration testing, and system testing.
Requires deep knowledge of the software’s architecture, design,
and code base to effectively test its functionality and performance.
External view of software testing:
Involves testing the software from a user’s perspective to ensure
it meets their requirements and expectations.
Focuses on validating the software’s functionality, usability, and
performance through techniques such as acceptance testing,
usability testing, and regression testing.
Requires understanding of user behavior, preferences, and
expectations to effectively test the software’s usability and user
experience.
Purpose of Testing:
Regression testing:
It is the process of retesting the modified parts of the software to ensure that the recent
changes have not affected the existing functionalities.
It helps in identifying any new bugs or issues introduced due to changes in the code.
Regression testing is performed after each code change, bug fix, or feature enhancement.
It ensures that the overall quality and stability of the software are maintained throughout
the development process.
Smoke testing:
It is the preliminary testing done on a software build to ensure that the basic functionalities
are working as expected.
Smoke testing is performed before in-depth testing to check if the build is stable enough for
further testing.
It focuses on major functionalities and critical areas of the software to ensure that the build
is ready for more comprehensive testing.
Smoke testing helps in catching major issues early in the development cycle, reducing the
overall testing time and effort.
System Testing
Validation testing is the process of evaluating software or a system to make sure it meets
the specified requirements. Here are some simple points to explain validation testing:
Validation testing is performed to ensure that the software or system meets the
requirements outlined in the specifications or user stories.
It involves running tests to confirm that the software functions as intended and produces
the expected outcomes.
Validation testing checks that the software meets the needs of the end users and that it
is user-friendly and easy to use.
It helps to identify any defects or issues that may prevent the software from working
correctly or meeting the user's needs.
Validation testing is typically performed towards the end of the software development
lifecycle, after unit testing and integration testing have been completed.
The goal of validation testing is to ensure that the software is ready for release to the
end users and that it will perform as expected in a production environment.
Validation testing helps to build confidence in the software and ensures that it meets the
quality standards set for the project.
Acceptance Testing