What is Black Box Testing? Various Black-box testing techniques

Definition of Black Box Testing
In Black-box testing technique, the internal structure of the application under test (AUT) is not known to the testers. The tester only knows the input and expected output of the test cases. The tester is unaware about the actual code of the application and does not know how the output has been achieved. Thus the whole application is like a box painted in black wherein one is not able to see the contents inside the box.
Black box testing is applicable in any level of testing technique i.e. unit testing, integration testing, system testing and acceptance testing. Earlier we had discussed functional and non functional testing techniques. Black box testing is also known as specification-based, input-outpute based or behavioral testing.

Example of black-box testing:
A tester who does have any information about the internal structure of a website or the language used, thus he tests the web pages by using browsers, buttons, link clicks to verify the output as expected.

Black box testing is basically used to remove errors which fall in the below categories:
1) Incorrect or missing functions
2) Interface issues
3) Error in data structures or access to external database
4) Behavior or performance issues
5) Initialization and termination errors

Different techniques of black box testing

1) Decision table testing
Decision table is the most precise way of presenting logic where multiple conditions are used. Decision tables are extensively used by software designers to convey implementation of various requirements of the customer. Based on these decision tables developers do necessary programming. Decision tables are also used by testers to build various test cases.

A decision table has following four portions
* Stub portion
* Entry portion
* Condition portion
* Action portion

To identify test cases with a decision table, we interpret the conditions as input and actions as output. And then we test all the possible scenarios.

2) Equivalence partitioning
Equivalence testing is basically generating a group of test cases with the help of a technique called equivalence partitioning. It is basically used in identifying the partition of value and selecting representative values from within partitions and deciding how values can be tested. All possible input parameters are divided into partitions in such a way that input values in a partition depict similar behavior. Once the partitions have been identified then representative values in each partition is used in test cases. This reduces the testing effort and at the same time ensures full coverage.

3) Boundary value analysis
Boundary value analysis is another method to test the functionality of the application. The test cases are prepared in such a way that test the boundary conditions of the logic used in the application. It is important because most of the problems are suspected at the boundary of the application. Example: if we have a condition that accepts values from 50 to 100, it’s a good practice to test values like 49,50,51,99,100,101.

4) Cause–effect graph
Cause and effect is basically a black box testing strategy wherein outcome (or result) is mapped against the various causes (inputs). It is a way to choose test cases with the help of the causes (input) and the effects (which input). Here fish-bone diagram is used.

5) Error guessing
There is no specific technique or tool developed for identifying the error through error guessing. It is simply based on the tester’s experience and guesses where the error is hidden in the modules of the software. This is probably the most effective black-box testing technique as well as the most difficult technique to master.

Next up we will discuss pros and cons of black-box testing in software development.

Read More:
Software Bug and Defect Life Cycle
Benefits of Unit Testing in Software development
Testing V/s Debugging

Copyright © ianswer4u.com