Go to previous article – Understanding Website testing
What is Black-Box testing?
Black-box testing (also known as behavioral testing) is a software testing method that examines the functionality of a piece of software without looking at its internal structures; it is based completely on the software specifications.
This testing method is highly diverse as it can be used in almost every level of software testing such integration, system testing, or acceptance testing. Higher level testing methods are comprised of the black-box method as only the inputs and outputs of the system are looked at.
The goal of Black-Box testing-
The goal of black-box testing is it gains knowledge about the software itself.
Black-box testing gets its name because the tester sees the software (metaphorically) like a black box. You cannot see inside of a black box, thus the inner workings of the software cannot be seen.
Errors are searched for not in the structure or design but in the functions, interface, or behavior. For example, a tester may test a portion of a web page by providing inputs and verifying the actual outputs against the expected outputs.
The tester is not required to have any knowledge about the application’s internal code; however, he/she must be aware of how the software is supposed to work.
There is not a strict set of rules he/she must follow when black-box testing, only a general set of guidelines:
- Examine the initial requirements of the system
- Choose valid inputs to determine if SUT (system under test) processes them correctly
- Determine the expected outcomes of those inputs
- Use the inputs to create a test case
- Perform the test case
- Compare the actual results with the expected results
- Resolve any defects found and test again
While there are numerous forms of black-box testing, there are three distinct forms that are worth noting:
- Functional testing is the most common as it is related to how the system functions based on its requirements.
- Non-functional testing is common as well as it involves the performance, scalability, and usability of the system.
- Regression testing is performed after errors are resolved to make sure any changes made to the code did not affect its performance.
Black-box can be tested in many ways, three different ways that we can mention are:
- Equivalence partitioning – This software test design technique involves dividing inputs into valid and invalid partitions and then selecting values from each partition to use as test data.
- Boundary value analysis – This involves determining what the software boundaries are for the input values and then choosing values that are at or barely inside/outside the boundaries to use for test data.
- Cause effect graphing – This identifies the input conditions (cases) and output conditions (effects) to produce a cause-effect graph to then generate the appropriate test case.
One downfall of black-box testing is the small number of inputs that can be tested at once. Tests can also be very repetitive, and if the project specifications are not clear, the test case design will be difficult.
However, black-box testing is quite flexible as far as who can test the software as little programming knowledge is involved. This allows the developers to let outside sources objectively test the software.
You may also want to read about White-Box testing