Black box testing refers to a software testing method where the SUT (Software Under Test) functionality is tested without worrying about its details of implementation, internal path knowledge and internal code structure of the software.
This method of testing is completely based on the specifications and requirements of the software.
The focus of the black box testing is upon the output and inputs of the software system rather than the program’s internal knowledge.
The system that undergoes this type of testing is considered as the “black box”, and it can be any software like a database, website or Operating System.
What Is The Purpose Of Black Box Testing?
Black box testing focuses on testing the complete functionality of the system as well as its behavior.
This testing method is also referred to as behavioral testing and functional testing.
This testing method is critical during the stages of software testing life cycle like regression testing, acceptance, unit, system, integration and software development.
The techniques of Black box testing are beneficial for the end users who wish to perform software verification.
The following are the techniques employed while using Black box testing for a software application.
BVA or Boundary Value Analysis:
It is one among the useful and critical Black box testing technique that helps in equivalence partitioning. BVA helps in testing any software having a boundary or extreme values.
This technique is capable of identifying the flaws of the limits of the input values rather than focusing on the range of input value. Boundary Value Analysis also deals with edge or extreme output values.
Equivalence Class Partitioning:
This technique of Black box testing is widely used to write test cases. It can be useful in reducing a broad set of possible inputs to smaller but effective ones.
It is performed through the division of inputs as classes, and each class is given a value.
It is applied when the need for exhaustive testing arises and for resisting the redundancy of inputs.
State Transition Testing
This technique usually considers the state, outputs, and inputs of a system during a specific period.
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.
The test cases for this technique are created by checking the sequence of transitions and state or events among the inputs.
The whole set of test cases will have the traversal of the expected output values and all states.
Decision Table Testing:
In some instances, the inputs combinations can become very complicated for tracking several possibilities.
Such complex situations rely on decision tables, as it offers the testers an organized view about the inputs combination and the expected output.
This technique is identical to the graph-based testing technique; the major difference is using tables instead of diagrams or graphs.
This technique of Black box testing involves a graph drawing that depicts the link between the causes (inputs) and the effects (output), which trigger the effects.
This testing utilizes different combinations of output and inputs. It is a helpful technique to understand the software’s functional performance, as it visualizes the flow of inputs and outputs in a lively fashion.
Error Guessing Technique:
This testing technique is capable of guessing the erroneous output and inputs to help the tester fix it easily. It is solely based on judgment and perception of the earlier end user experience.
Apart from the above-explained popular techniques of this testing, there are few more, such as the fuzzing technique, all pair testing and orthogonal array testing.
The example given below throws light on how the techniques of this testing can be used to test the specific software with given inputs
While considering a shopping scenario,
- Shop for $500 and receive a discount of 5%
- Shop for $1000 and receive a discount of 7%
- Shop for $1500 or more and receive a discount of 10%
With the help of Equivalence partitioning technique of this testing, it is possible to divide inputs as four partitions, amount less than 0, 0–500, 501–1000, 1001–1500 and so on. The details such as the maximum limit for shopping and the product details will not be considered by this testing technique.
When boundary value is added to the partitions, the boundary values will be 0, 500, 501, 1000, 1001 and 1500. With the BVA technique, the lower and upper values are usually tested, so values like -1, 1 and 499 will be included. Such values will help in explaining the behavior of the input values in software.
According to State Transition Testing technique of Black box testing, when a shopper shops above $1500 two times in a month, their status gets changed from Gold to Platinum, and if he does not shop for the next 2 months, the status gets back to Gold. Using further test cases, it is possible for the tester to such complex track.
There are several phases of which are segregated into different types, such as regression testing, unit testing, beta testing, integration testing, system testing, functional testing, load testing, etc. But, the prominent types are explained below.
This type of testing is useful for the testers in identifying the functional requirements of a software or system.
This testing type is performed after the system maintenance procedure, upgrades or code fixes to know the impact of the new code over the earlier code.
This testing type is not connected with testing for any specific functionality but relates to non-functional parameters like usability, scalability and performance.
Difference between Black Box Testing and White Box Testing
Used to test software without knowing the internal structure of the software
Performed after knowing the internal structure of the software
Carried out by testers
Performed by developers
Does not require programming knowledge
Requires programming knowledge
Requires implementation knowledge
Does not require implementation knowledge
Higher level testing
Lower level testing
Consumes less time
Consumes a lot of time
Done in the trial and error method
Data domains and boundaries can be tested
Types of black box testing
1. Functional testing
2. Regression testing
3. Non-functional testing
Types of white box testing
1. Path testing
2. Loop testing
3. Condition testing
Not suitable for algorithm testing
Suitable for algorithm testing
Levels to with Black Box testing are applicable to
- Integration testing
- System testing
- Acceptance testing
How to do Black Box testing?
- Requirement and specifications will be examined
- Positive inputs, as well as negative inputs, will be given to the system to verify it
- Outputs for the tests will be defined earlier
- Test cases will be executed
- Actual outputs and expected outputs will be compared
- Fixed issued will be retested
Major Tools used for Black Box testing
Originally published at https://www.testbytes.net on November 25, 2019.