0% found this document useful (0 votes)
21 views15 pages

Types of Software Testing

The document provides an overview of software testing, detailing its importance in ensuring error-free software and describing various types of testing, including Automation Testing and Manual Testing. It further categorizes Manual Testing into White Box, Gray Box, and Black Box Testing, and outlines Functional and Non-Functional Testing methods. Additionally, it lists other testing types such as Smoke Testing, Sanity Testing, and User Acceptance Testing, highlighting their specific purposes and methodologies.

Uploaded by

hilates595
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views15 pages

Types of Software Testing

The document provides an overview of software testing, detailing its importance in ensuring error-free software and describing various types of testing, including Automation Testing and Manual Testing. It further categorizes Manual Testing into White Box, Gray Box, and Black Box Testing, and outlines Functional and Non-Functional Testing methods. Additionally, it lists other testing types such as Smoke Testing, Sanity Testing, and User Acceptance Testing, highlighting their specific purposes and methodologies.

Uploaded by

hilates595
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

Software Testing

Topperworld.in

Types of software testing


⚫ Testing is the process of executing a program to find errors. To make our
software perform well it should be error-free.
⚫ If testing is done successfully it will remove all the errors from the
software.

❖ Types of software testing:


1. Automation Testing
2. Manual Testing

1) Automation Testing:

⚫ Automated Testing is a technique where the Tester writes scripts on


their own and uses suitable Software or Automation Tool to test the
software.

©Topperworld
Software Testing

⚫ It is an Automation Process of a Manual Process. It allows for executing


repetitive tasks without the intervention of a Manual Tester.

2) Manual Testing:
⚫ It is a way of physically testing the software without utilizing automated
tools like coded test scripts.
⚫ Exclusive test cases (i.e., a set of conditions to test the application's
functionality and verify expected results) are written and implemented to
test their pass or fail status.
⚫ It guarantees whether the application is working, as referenced in the
product requirement document or not.
⚫ Manual testing is compulsory for each recently developed application before
automated testing.
⚫ This testing requires extraordinary endeavors and time, however, it
guarantees bug-free software or applications.
According to testing criteria, manual testing can be divided into:-
a. White Box Testing
b. Grey Box Testing
c. Black Box Testing
a.White Box Testing:
✓ The primary aim here is to analyze the internal code structure, data types
used, internal code design, the flow of inputs, and respective outputs from
the application.
✓ The term “white-box” is used to focus on the inner perspective of the
application. The transparent or white box signifies the ability to see through
the product’s external shell into its internal work.

©Topperworld
Software Testing

✓ The developer does white box testing, where he goes through every line of
the code. The developer finds and fixes the bugs.

b.Gray Box Testing:

✓ Gray Box Testing is a software testing technique that is a combination of


the Black Box Testing technique and the White Box Testing technique.

✓ In the Black Box Testing technique, the tester is unaware of the internal
structure of the item being tested and in White Box Testing the internal
structure is known to the tester.
✓ The internal structure is partially known in Gray Box Testing.
✓ This includes access to internal data structures and algorithms to design
the test cases.

c.Black Box Testing


✓ When the functionalities of the software application are tested without
knowing the internal code structure, it is called Black Box testing, while in
white box testing, the internal code is known to the tester.
✓ The term “Black box” is used as the tester is unaware of the internal code
structure of the application.
✓ Black box testing is performed by a test engineer or sometimes a developer
in some organizations, who creates test cases to check the efficiency and
accuracy of the application.
✓ All test cases are planned considering the input and desired outputs.

©Topperworld
Software Testing

Black box testing can further be divided into:


a) Functional Testing
b) Non-Functional Testing

❖ Functional Testing
⚫ Functional testing is a software testing method that checks if the core
purpose of the software is fulfilled i.e. the functional necessities are ensured.
⚫ The focus is to check the software's functionality by providing input and
checking the desired output against functional necessities.

⚫ Functional testing objectives include testing main functions, ease of


usability, and extent of accessibility of the system.
⚫ The testing can be done either manually or using automated tools. Some of
the popular tools are JUnit(mainly used with Java applications), Selenium (an
open-source tool for both web and desktop applications), soapUI(mainly
used for web application testing), etc.

➢ Types of Functional Testing

The diverse types of Functional Testing contain the following:

1. Unit Testing
2. Integration Testing
3. System Testing

©Topperworld
Software Testing

1. Unit Testing:
✓ Unit testing is the first level of functional testing in order to test any
software. In this, the test engineer will test the module of an application
independently or test all the module functionality is called unit testing.
✓ The primary objective of executing the unit testing is to confirm the unit
components with their performance.
✓ Here, a unit is defined as a single testable function of a software or an
application.
✓ And it is verified throughout the specified application development phase.

2. Integration Testing

✓ Once we are successfully implementing the unit testing, we will


go integration testing. It is the second level of functional testing, where we
test the data flow between dependent modules or interface between two
features is called integration testing.
✓ The purpose of executing the integration testing is to test the statement's
accuracy between each module.

Types of Integration Testing:

Integration testing is also further divided into the following parts:

◆ Incremental Testing
◆ Non-Incremental Testing

©Topperworld
Software Testing

 Incremental Testing

⚫ Like development, testing is also a phase of SDLC (Software Development


Life Cycle).

⚫ Different tests are performed at different stages of the development cycle.

⚫ Incremental testing is one of the testing approaches that is commonly used


in the software field during the testing phase of integration testing which
is performed after unit testing.

⚫ Several stubs and drivers are used to test the modules one after one which
helps in discovering errors and defects in the specific modules.

There are 2 Types of Incremental Testing

1) Top-down Integration Testing


2) Bottom-up Integration Testing

1. Top-down Integration Testing

⚫ Top-down testing is a type of incremental integration testing approach


in which testing is done by integrating or joining two or more modules
by moving down from top to bottom through the control flow of the
architecture structure.

©Topperworld
Software Testing

⚫ In these, high-level modules are tested first, and then low-level


modules are tested.

⚫ Then, finally, integration is done to ensure that the system is working


properly.

⚫ This technique is used to increase or stimulate the behavior of Modules


that are not integrated into a lower level.

2. Bottom-up Integration Testing

⚫ Bottom-up Testing is a type of incremental integration


testing approach in which testing is done by integrating or joining two
or more modules by moving upward from bottom to top through the
control flow of the architecture structure.

⚫ In these, low-level modules are tested first, and then high-level


modules are tested.

⚫ This type of testing or approach is also known as inductive reasoning


and is used as a synthesis synonym in many cases.

⚫ Bottom-up testing is user-friendly testing and results in an increase in


overall software development.

⚫ This testing results in high success rates with long-lasting results.

 Non-Incremental Integration Testing/ Big Bang Method

⚫ Whenever the data flow is complex and very difficult to classify a parent
and a child, we will go for the non-incremental integration approach.
⚫ The non-incremental method is also known as the Big Bang method.

©Topperworld
Software Testing

3. System Testing

⚫ Whenever we are done with the unit and integration testing, we can proceed
with the system testing.
⚫ In system testing, the test environment is parallel to the production
environment. It is also known as end-to-end testing.
⚫ In this type of testing, we will undergo each attribute of the software and
test if the end feature works according to the business requirement. And
analysis the software product as a complete system.

❖ Types of Non-functional Testing

Non-functional testing categorized into different parts of testing, which we are


going to discuss further:

1. Performance Testing

2. Usability Testing
3. Compatibility Testing

©Topperworld
Software 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.

✓ 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.

Classification of Performance Testing:

Performance testing includes the various types of testing, which are as follows:

a. Load Testing

b. Stress Testing
c. Scalability Testing
d. Stability Testing

©Topperworld
Software Testing

1. Load Testing:

While executing the performance testing, we will apply some load on the
particular application to check the application's performance, known as load
testing. Here, the load could be less than or equal to the desired load.

It will help us to detect the highest operating volume of the software and
bottlenecks.

2. Stress Testing:

It is used to analyze the user-friendliness and robustness of the software beyond


the common functional limits.

Primarily, stress testing is used for critical software, but it can also be used for
all types of software applications.

3. Scalability Testing:

©Topperworld
Software Testing

To analysis, the application's performance by enhancing or reducing the load in


particular balances is known as scalability testing.

In scalability testing, we can also check the system, processes, or database's


ability to meet an upward need. And in this, the Test Cases are designed and
implemented efficiently.

4. Stability Testing:

Stability testing is a procedure where we evaluate the application's performance


by applying the load for a precise time.

It mainly checks the constancy problems of the application and the efficiency of
a developed product. In this type of testing, we can rapidly find the system's
defect even in a stressful situation.

2. 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. This means
simply this compatibility test aims to check the developed software
application functionality on various software, hardware platforms,
networks browser etc.

✓ This compatibility testing is very important in product production and


implementation point of view as it is performed to avoid future issues
regarding compatibility.

Some other types of Software Testing

©Topperworld
Software Testing

In software testing, we also have some other types of testing that are not part
of any above discussed testing, but those testing are required while testing any
software or an application.

1. Smoke Testing
2. Sanity Testing

3. Regression Testing
4. User Acceptance Testing

5. Exploratory Testing

6. Adhoc Testing
7. Security Testing
8. Globalization Testing

Let's understand those types of testing one by one:

1. Smoke Testing

⚫ Smoke Testing is done to make sure that the software under testing is
ready or stable for further testing

©Topperworld
Software Testing

⚫ It is called a smoke test as the testing of an initial pass is done to check


if it did not catch fire or smoke in the initial switch-on.

2. Sanity Testing

⚫ It is a subset of regression testing. Sanity testing is performed to ensure


that the code changes that are made are working properly.

⚫ Sanity testing is a stoppage to check whether testing for the build can
proceed or not.

⚫ The focus of the team during the sanity testing process is to validate
the functionality of the application and not detailed testing.

⚫ Sanity testing is generally performed on a build where the production


deployment is required immediately like a critical bug fix.

3. Regression Testing

⚫ The process of testing the modified parts of the code and the parts that
might get affected due to the modifications ensures that no new errors
have been introduced in the software after the modifications have
been made.

⚫ Regression means the return of something and in the software field, it


refers to the return of a bug.

4. User Acceptance Testing

⚫ User Acceptance Testing is a testing methodology where clients/end


users participate in product testing to validate the product against their
requirements.

©Topperworld
Software Testing

⚫ It is done at the client’s site on the developer’s site. For industries such
as medicine or aerospace, contractual and regulatory compliance
testing, and operational acceptance tests are also performed as part of
user acceptance tests.

⚫ UAT is context-dependent and UAT plans are prepared based on


requirements and are not required to perform all kinds of user
acceptance tests and are even coordinated and contributed by the
testing team.

5. Adhoc Testing

⚫ Testing the application randomly as soon as the build is in the checked


sequence is known as Adhoc testing.
⚫ It is also called Monkey testing and Gorilla testing.
⚫ In Adhoc testing, we will check the application in contradiction of the
client's requirements; that's why it is also known as negative testing.
⚫ When the end-user using the application casually, and he/she may
detect a bug. Still, the specialized test engineer uses the software
thoroughly, so he/she may not identify a similar detection.

6. Security Testing:

⚫ Security Testing is a type of Software Testing that uncovers


vulnerabilities in 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.

©Topperworld
Software Testing

⚫ Security testing of any system is focused on finding all possible


loopholes and weaknesses of the system that might result in the loss of
information or repute of the organization.

7. Globalization Testing

⚫ Globalization Testing is a type of software testing that is performed to


ensure the system or software application can function independently
of the geographical and cultural environment.

⚫ It ensures that the application can be used all over the world and
accepts all language texts.

⚫ Nowadays with the increase in various technologies, every software


product is designed in such a way that it is a globalized software
product.

©Topperworld

You might also like