Software Testing | Black Box Testing

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.



Post a Comment

0 Comments