Software Testing
Software Testing is a process of verifying and validating whether the Software
Product or Application is working as expected or not. The complete testing includes
identifying errors and bugs that cause future problems for the performance of an application.
Software Testing Can be Divided into Two Steps:
Software testing mainly divides into the two parts, which is used in the Software
Development Process:
1. Verification: This step involves checking if the software is doing what is supposed to
do. Its like asking, "Are we building the product the right way?"
2. Validation: This step verifies that the software actually meets the customer's needs and
requirements. Its like asking, "Are we building the right product?"
Need for Software Testing
Software bugs can cause potential monetary and human loss. There are many examples in
history that clearly depicts that without the testing phase in software development lot of
damage was incurred
Types of Software Testing
Here are the Types of Software Testing mainly categorized into the two domain, which are
below.
Hitesh Soni SE 9179027237
1. Manual Testing
Manual Testing is a technique to test the software that is carried out using the functions and
features of an application. Which means manual testing will check the defect manually with
trying one by one function is working as expected.
2. Automation Testing
Automation Testing It is a technique where the Tester writes scripts independently and uses
suitable Software or Automation Tools to test the software. It is an Automation Process of a
Manual Process. It allows for executing repetitive tasks without the use of a Manual Tester.
Types of Manual Testing
Manual testing will be divided into further types which is following:
1. White Box Testing
White Box Testing is a software testing technique that involves testing the internal structure
and workings of a software application. The tester has access to the source code and uses this
knowledge to design test cases that can verify the correctness of the software at the code level.
Hitesh Soni SE 9179027237
2. Black Box Testing
Black-Box Testing is a type of software testing in which the tester is not concerned with the
internal knowledge or implementation details of the software but rather focuses on validating
the functionality based on the provided specifications or requirements.
Types of Black Box Testing
Black Box Testing will be divided into further types which is following:
1. Functional Testing
Functional Testing is a type of Software Testing in which the system is tested against the
functional requirements and specifications. Functional testing ensures that the requirements or
specifications are properly satisfied by the application.
2. Non-Functional Testing
Non-Functional Testing is a type of Software Testing that is performed to verify the non-
functional requirements of the application. It verifies whether the behavior of the system is as
per the requirement or not. It tests all the aspects that are not tested in functional testing.
Types of Functional Testing
Functional Testing will be divided into further types which is following:
1. Unit Testing
Unit Testing is a method of testing individual units or components of a software application. It
is typically done by developers and is used to ensure that the individual units of the software
are working as intended.
2. Integration Testing
Integration Testing is a method of testing how different units or components of a software
application interact with each other. It is used to identify and resolve any issues that may arise
when different units of the software are combined.
3. System Testing
System Testing is a type of software testing that evaluates the overall functionality and
performance of a complete and fully integrated software solution. It tests if the system meets
the specified requirements and if it is suitable for delivery to the end-users.
Hitesh Soni SE 9179027237
Types of Non-functional Testing
Here are the Types of Non-Functional Testing
1. Performance Testing
Performance Testing is a type of software testing that ensures software applications 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.
2. Usability Testing
Usability Testing in software testing is a type of testing, that is done from an end user’s
perspective to determine if the system is easily usable. Usability testing is generally the
practice of testing how easy a design is to use on a group of representative users.
3. Compatibility Testing
Compatibility Testing is software testing that comes under the non functional testing category,
and it is performed on an application to check its compatibility (running capability) on
different platforms/environments. This testing is done only when the application becomes
stable.
Different Levels of Software Testing
In Software testing there are Different Levels of Testing can be majorly
classified into 4 levels:
1. Unit Testing: In this type of testing, errors are detected individually from every
component or unit by individually testing the components or units of software to ensure
that they are fit for use by the developers. It is the smallest testable part of the software.
2. Integration Testing: In this testing, two or more modules which are unit tested are
integrated to test i.e., technique interacting components, and are then verified if these
integrated modules work as per the expectation or not, and interface errors are also
detected.
3. System Testing : In system testing, complete and integrated Software are tested i.e., all
the system elements forming the system are tested as a whole to meet the requirements of
the system.
4. Acceptance Testing: This is a kind of testing conducted to ensure that the requirements
of the users are fulfilled before its delivery and that the software works correctly in the
user’s working environment.
Hitesh Soni SE 9179027237
Why is Importance of Software Testing?
Software testing is important for the several reasons and it mainly classified
in the following reason which are affecting the most.
Defects can be Identified Early: Software testing is important because if there
are any bugs they can be identified early and can be fixed before the delivery of
the software.
Improves Quality of Software: Software Testing uncovers the defects in the
software, and fixing them improves the quality of the software.
Increased Customer Satisfaction: Software testing ensures reliability,
security, and high performance which results in saving time, costs, and customer
satisfaction.
Helps with Scalability: Software testing type non-functional testing helps to
identify the scalability issues and the point where an application might stop
working.
Saves Time and Money: After the application is launched it will be very
difficult to trace and resolve the issues, as performing this activity will incur
more costs and time. Thus, it is better to conduct software testing at regular
intervals during software development.
Benefits of Software Testing
Here are some Benefits which give Software Testing:
Product Quality: Testing ensures the delivery of a high-quality product as the
errors are discovered and fixed early in the development cycle.
Customer Satisfaction: Software testing aims to detect the errors or
vulnerabilities in the software early in the development phase so that the detected
bugs can be fixed before the delivery of the product. Usability testing is a type of
software testing that checks the application for how easily usable it is for the
users to use the application.
Cost-Effective: Testing any project on time helps to save money and time for
the long term. If the bugs are caught in the early phases of software testing, it
costs less to fix those errors.
Security: Security testing is a type of software testing that is focused on testing
the application for security vulnerabilities from internal or external sources.
Hitesh Soni SE 9179027237