Black box testing is a technique of software testing which examines the functionality of software without knowing its internal structure or coding. The primary source of black box testing is a specification of requirements that is stated by the customer.
This testing approach
focuses on the input that goes into the software, and the output that is
produced. Black box testing involves testing a system with no prior knowledge
of its internal workings. The testing team does not cover the inside
details such as code, server logic, and development method.
Black box testing
involves testing against a system where the code and paths are invisible. It
is a process of checking the functionality of an application as per the
customer requirement. The source code is not visible in this testing; that's
why it is known as black-box testing.
Black box testing is
based on the requirements and checks the system to validate against predefined
requirements. The testing is done
without the internal knowledge of the products. Black-box
testing is commonly known as behavioral
testing, since we follow the behavior of the overall
design.
In black box testing,
test cases are designed from an examination of the input/output values only and
no knowledge of design or code is required. For this reason, black box testing
is also known as functional testing.
Types of Black Box Testing:
There are three types of black-box testing namely: functional testing, non-functional testing, and regression testing.Functional Testing:
This is a type of black box testing which deals with the functional
requirements or specifications of a system. Here, different actions or functions of the system are
being tested by providing the input and comparing the actual output with the
expected output.
Functional testing is concerned only with the
functional requirements of a system and covers how well the system executes its
functions. Software testers are responsible for carrying out this test.
Non-Functional Testing:
This black box testing type is not related to testing of
specific functionality. Black
box testing can check additional aspects of the software, beyond features and
functionality.
Non functional testing
is concerned with the non-functional requirements and is designed specifically
to evaluate the readiness of a system according to the various criteria which
are not covered by functional testing.
Apart
from the functionalities of the requirements, there are several non-functional
aspects that are required to be tested to improve the quality and performance
of the application. It is solely focused
on non-functional requirements like usability, scalability and performance.
Regression Testing:
Regression Testing is done after code fixes, upgrades or
any other system maintenance to check the new changes has not affected any
existing functionality. The motive
is to examine the new code and its effect on the existing code.
Techniques of Black Box Testing:
In order to systematically
test a set of functions, it is necessary to design test cases. Testers can
create test cases from the requirement specification document using the
following Black Box Testing techniques:
1. Equivalence Partitioning
2. Boundary Value Analysis
3. State Transition Testing
4. Decision Table Testing
5. Graph-based testing
6. Error Guessing
7. Comparison Testing
Equivalence Partitioning:
This technique is also known as
Equivalence Class Partitioning (ECP). In this technique, input
values to the system or application are divided into different classes or
groups based on its similarity in the outcome.
Hence, instead of using each and
every input value, we can now use any one value from the group/class to test
the outcome. This way, we can maintain test coverage while we can reduce the
amount of rework and most importantly the time spent.
Boundary Value Analysis:
Boundary value testing is focused
on the values at boundaries.. The two ends, the inner and the outer
limits are considered in this type of testing. We set a boundary
value lower or higher than the actual limit to check the behavior of our system
in both conditions.
Boundary value analysis tests the
software with test cases with extreme values of test data. It is used to
identify the flaws or errors that arise due to the limits of input data.
This technique determines whether a certain range of values are acceptable by
the system or not
State Transition Testing:
State Transition Testing is a technique that is used to test the different states of the system under test. The state of the system changes depending upon the conditions or events. If there are different responses during transition from one state to another then state transition testing can be incorporated.
This testing technique uses the inputs, outputs, and the state of the system during the testing phase. It checks the software against the sequence of transitions or events among the test data.
Based on the type of software
that is tested, it checks for the behavioral changes of a system in a
particular state or another state while maintaining the same inputs.
Decision Table Testing:
This approach creates test cases based on various possibilities. It considers multiple test cases in a decision table format where each condition is checked and fulfilled, to pass the test and provide accurate output. It is preferred in case of various input combinations and multiple possibilities.
If the results are obtained depending on certain conditions
it comes under Decision table testing. If the conditions are combined they form
rules. The outputs of these rules are formed and the test cases are structured.
Graph-Based Testing:
It is similar to a
decision-based test case design approach where the relationship between links
and input cases are considered.
Error Guessing Technique:
Error
Guessing is a technique based on guessing the errors that can stay in the
application. This method of
designing test cases is about guessing the output and input to fix any errors
that might be present in the system. It depends on the skills and judgment of
the tester. There’s no specific set of rules to
test the behavior of a system with this technique.
It can help to look
for various faults which systematic techniques may fail to detect. The method
almost always depends on the tester’s prior experience and their foresight to
guess where defects can occur in the future.
Comparison testing:
In this method, different independent versions of the same software are used to compare to each other for testing.
FAQ:
1. What is black box testing in Software Engineering?
2. What are the types of the black box testing?
3. Explain the black box testing techniques.
0 Comments
if you have any doubts plz let me know...