STQA UNIT-03 Self Notes
STQA UNIT-03 Self Notes
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.
• Decision Table Testing: A decision table puts causes and their effects in a matrix.
There is a unique combination in each column.
• 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.
➢ 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.
TANISHA BANGAR 3
➢ Equivalence Partitioning-
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:
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
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