0% found this document useful (0 votes)
93 views7 pages

STQA UNIT-03 Self Notes

The document discusses various black box testing techniques including boundary value analysis, robustness testing, equivalence partitioning, syntax testing, and finite state testing. It also covers different levels of testing from unit testing to acceptance testing.

Uploaded by

ac8198905
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)
93 views7 pages

STQA UNIT-03 Self Notes

The document discusses various black box testing techniques including boundary value analysis, robustness testing, equivalence partitioning, syntax testing, and finite state testing. It also covers different levels of testing from unit testing to acceptance testing.

Uploaded by

ac8198905
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/ 7

SOFTWARE TESTING AND QUALITY ASSURANCE

UNIT-03: BLACK BOX TESTING:


• Black box testing techniques,
• Boundary Value Analysis,
• Robustness Testing,
• Equivalence Partitioning,
• Syntax Testing,
• Finite State Testing,
• Levels of Testing,
• Unit Testing,
• Integration Testing.

➢ Black Box Testing-

Black Box Testing is a software testing method in which the functionalities of software
applications are tested without having knowledge of internal code structure,
implementation details and internal paths. Black Box Testing mainly focuses on input and
output of software applications and it is entirely based on software requirements and
specifications. It is also known as Behavioral Testing.
The above Black-Box can be any software system you want to test. For Example, an
operating system like Windows, a website like Google, a database like Oracle or even your
own custom application. Under Black Box Testing, you can test these applications by just
focusing on the inputs and outputs without knowing their internal code implementation.

TANISHA BANGAR 1
➢ Black Box Testing Techniques-
Following are the prominent Test Strategy amongst the many used in Black box Testing
• Equivalence Class Testing: It is used to minimize the number of possible test cases to
an optimum level while maintains reasonable test coverage.

• Boundary Value Testing: Boundary value testing is focused on the values at


boundaries. This technique determines whether a certain range of values are acceptable
by the system or not. It is very useful in reducing the number of test cases. It is most
suitable for the systems where an input is within certain ranges.

• Decision Table Testing: A decision table puts causes and their effects in a matrix.
There is a unique combination in each column.

➢ Types of Black Box Testing-


There are many types of Black Box Testing but the following are the prominent ones –
• Functional testing – This black box testing type is related to the functional
requirements of a system; it is done by software testers.

• Non-functional testing – This type of black box testing is not related to testing of
specific functionality, but non-functional requirements such as performance,
scalability, usability.

• Regression testing – Regression Testing is done after code fixes, upgrades or any other
system maintenance to check the new code has not affected the existing code.

➢ Boundary Value Analysis-


Boundary value analysis is one of the widely used case design technique for black box
testing. It is used to test boundary values because the input values near the boundary have
higher chances of error..
Whenever we do the testing by boundary value analysis, the tester focuses on, while
entering boundary value whether the software is producing correct output or not.
Boundary values are those that contain the upper and lower limit of a variable. Assume
that, age is a variable of any function, and its minimum value is 18 and the maximum value
is 30, both 18 and 30 will be considered as boundary values.
TANISHA BANGAR 2
There is 18 and 30 are the boundary values that’s why tester pays more attention to these
values, but this doesn’t mean that the middle values like 19, 20, 21, 27, 29 are ignored.
Test cases are developed for each and every value of the range.
Example #1: Suppose, a printer has to make and deliver printed copies ranging from 1 to
150. So, to apply boundary value testing, the analysis is done on the boundaries, taking the
extreme ends. The maximum value is 150 and the minimum value is 1. The invalid values
in this test case will be 0 and 151.

➢ Robustness Testing-
Robustness testing is any quality assurance methodology focused on testing the robustness
of software. Robustness testing has also been used to describe the process of verifying the
robustness of test cases in a test process.
• Robustness is a measure how well a software system can cope with invalid inputs are
expected user interaction it give sustainability.

• Robotic system is one that continuous to function correctly even in the face of
unexpected or invalid inputs.

• A software system that is robust is able to handle error and unexpected inputs restfully
without trashing or producing incorrect results.

• It is also able to adapt to changes in its operating environment such as changes in the
OS hardware or other software components.

• The purpose of robustness testing is to identify the parts of a system that are most
vulnerable , to failure and determine how the system can be made more resisent to
failure.

• Robustness testing is typically in a variety of stressful conditions such as high


temperature and humidity ,high pressure and high level of vibration.
Example of robustness testing?
Robustness testing is usually done to test the exceptional handling. Example for robustness
testing with invalid inputs: For example, when testing is done for test cases, nominal values
are fixed as two variables and change the third value of the variable.

TANISHA BANGAR 3
➢ Equivalence Partitioning-

Equivalence class partitioning is a black-box testing technique or specification-based


testing technique in which we group the input data into logical partitions called equivalence
classes.
Equivalence Partitioning is also known as Equivalence Class Partitioning. In equivalence
partitioning, inputs to the software or system are divided into groups that are expected to
exhibit similar behaviour, so they are likely to be proposed in the same way.

Equivalence partitioning is a technique of software testing in which input data is divided


into partitions of valid and invalid values, and it is mandatory that all partitions must exhibit
the same behavior. If a condition of one partition is true, then the condition of another equal
partition must also be true, and if a condition of one partition is false, then the condition of
another equal partition must also be false. The principle of equivalence partitioning is, test
cases should be designed to cover each partition at least once. Each value of every equal
partition must exhibit the same behavior as other.

The equivalence partitions are derived from requirements and specifications of the
software. The advantage of this approach is, it helps to reduce the time of testing due to a
smaller number of test cases from infinite to finite. It is applicable at all levels of the testing
process.

Example-an OTP number which contains only six digits, less or more than six digits will
not be accepted, and the application will redirect the user to the error page.

➢ Syntax Testing-

Syntax Testing, a black box testing technique, involves testing the System inputs and it is
usually automated because syntax testing produces a large number of tests. Internal and
external inputs have to conform the below formats:
• Format of the input data from users.
• File formats.
• Database schemas.
Syntax testing is used to validate and break the explicit or implicit parser of that language.

TANISHA BANGAR 4
Syntax Testing - Steps:

• Identify the target language or format.


• Define the syntax of the language.
• Validate and Debug the syntax.

Syntax Testing - Limitations:

• Sometimes it is easy to forget the normal cases.


• Syntax testing needs driver program to be built that automatically sequences through
a set of test cases usually stored as data.

➢ Finite State Testing-


Finite state testing is a software testing technique that focuses on testing the different states
and transitions of a system or application. It is particularly useful when dealing with
systems that can be modeled using finite state machines.
In finite state testing, the system is represented as a finite state machine, where each state
represents a specific condition or behavior of the system, and transitions represent the
actions or events that cause the system to move from one state to another. The goal is to
test the system's behavior at different states and ensure that it behaves correctly during state
transitions.
Finite state testing helps identify defects or issues related to state handling, such as
incorrect transitions, missing states, or unexpected behavior during state changes. It
provides a systematic approach to ensure that the software behaves correctly under various
conditions and transitions between states smoothly.
Note that finite state testing is not limited to software applications. It can also be applied
to hardware systems, protocols, and other domains where behavior can be modeled as a
finite state machine.

TANISHA BANGAR 5
➢ Different Levels of Testing-
The levels of software testing involve the different methodologies, which can be used while
we are performing the software testing.
In software testing, we have four different levels of testing, which are as discussed below:
1. Unit Testing
2. Integration Testing
3. System Testing
4. Acceptance Testing

• Level 1: Unit Testing-


Unit testing is the first level of software testing, which is used to test if software modules
are satisfying the given requirement or not.
The first level of testing involves analyzing each unit or an individual component of the
software application.
Unit testing is also the first level of functional testing. The primary purpose of executing
unit testing is to validate unit components with their performance.
A unit component is an individual function or regulation of the application, or we can say
that it is the smallest testable part of the software. The reason of performing the unit testing
is to test the correctness of inaccessible code.
Unit testing will help the test engineer and developers in order to understand the base of
code that makes them able to change defect causing code quickly. The developers
implement the unit.
• Level 2: Integration Testing-
The second level of software testing is the integration testing.
The integration testing process comes after unit testing. It is mainly used to test the data
flow from one module or component to other modules.
In integration testing, the test engineer tests the units or separate components or modules
of the software in a group.
The primary purpose of executing the integration testing is to identify the defects at the
interaction between integrated components or units.

TANISHA BANGAR 6
When each component or module works separately, we need to check the data flow
between the dependent modules, and this process is known as integration testing.
We only go for the integration testing when the functional testing has been completed
successfully on each application module.
In simple words, we can say that integration testing aims to evaluate the accuracy of
communication among all the modules.
• Level 3: System Testing-
The third level of software testing is system testing, which is used to test the software's
functional and non-functional requirements.
It is end-to-end testing where the testing environment is parallel to the production
environment. In the third level of software testing, we will test the application as a whole
system.
To check the end-to-end flow of an application or the software as a user is known as System
testing.
In system testing, we will go through all the necessary modules of an application and test
if the end features or the end business works fine, and test the product as a complete system.
• Level 4: Acceptance Testing-
The last and fourth level of software testing is acceptance testing, which is used to evaluate
whether a specification or the requirements are met as per its delivery.
The software has passed through three testing levels (Unit Testing, Integration Testing,
System Testing). Some minor errors can still be identified when the end-user uses the
system in the actual scenario.

In simple words, we can say that Acceptance testing is the squeezing of all the testing
processes that are previously done.

The acceptance testing is also known as User acceptance testing (UAT) and is done by the
customer before accepting the final product.

Usually, UAT is done by the domain expert (customer) for their satisfaction and checks
whether the application is working according to given business scenarios and real-time
scenarios.

TANISHA BANGAR 7

You might also like