Last week, we did a short introduction into what black box testing is, who uses it, why it’s used and when it’s needed. In this article, we’ll dig a little deeper and explain the different black box testing techniques applied during testing projects – equivalence class partitioning, decision table testing, cause-effect graphs, boundary value analysis and error guessing.
Before we dive into a further understanding of black box testing techniques, let’s refresh our memories a bit on what exactly black box testing is. Black box testing (a.k.a. Opaque testing, a.k.a. Functional testing, a.k.a. Behavioral testing and a.k.a. Closed box testing – phew, that’s a lot of names!) focuses on the functional requirements of the software.
Those who do conduct black box testing, typically have no knowledge of the internal workings that makes up the software. For example, the tester would have no clue as to how the database is structured, which programming language was used, how the server was set up, etc. Besides inputting and comparing data, the tester has no idea what the program does to arrive at the output data. They just know how the software is expected to behave in response to a particular action they take.
Now that we have that out of the way, let’s get back into what prominent black box testing techniques are generally used during software projects.
Equivalence Class Partitioning
Equivalence partitioning is a method based on the idea that inputs of a program can be partitioned into classes of data (a set of valid/invalid states for input conditions). This is an important black box testing method and one of the ways in which test cases are derived. It is most helpful for avoiding redundancy and reducing the number of test cases that need to be developed.
Decision Table Testing
Decision tables are used to demonstrate cause and their effects in a readable and compact format. It clearly shows each combination and outlines the complex business rules. Examples of decision tables include flowcharts and matrices.
Cause-effect graphing is a testing technique that takes into account a program’s desired external behavior. It graphically illustrates the relationship between effects and causes. It identifies all the factors that influence the particular outcome. Test cases are designed accordingly.
Boundary Value Analysis
Boundary Value Analysis (BVA) is the most commonly used black box testing technique. This form of functional testing focuses on determining boundaries for input values and testing at those chosen boundaries. Boundary values include just inside/outside of the boundaries, typical values, error values, maximum and minimum.
Error guessing is a method of black box testing that relies solely on the previous experience of the tester. The software tester uses their past experience to determine where errors in the software may be. Test cases are then designed to find those errors and any lingering bugs.