Comparison among Black Box Testing, Gray Box Testing and White Box Testing
Before working out the differences between black box, gray box and white box testing techniques, let us try to understand the term test granularity.
What is Test Granularity & what is the meaning of its various levels?
Test Granularity refers to the level of details in a test. And when we talk about the Highest Granularity, it indicates that all internals are known to us.
Broad comparison among the three basic Test Techniques are as under:
|Sr||Black Box Testing||Gray Box Testing||White Box Testing|
|1||Low granularity||Medium granularity||High granularity.|
|2||Internals NOT known.||Internals partially known.||Internals fully known.|
|3||Internals not required to be known.||Internals relevant to testing are known.||Internal code of the application and database known.|
|4||Also known as
# Opaque box testing
# Closed box testing
# Input output testing
# Data driven testing
# Behavioral testing
# Functional testing
|Also known as
Translucent box testing.
|Also known as
# Glass box testing
# Clear box testing
# Design based testing
# Logic based testing
# Structural testing
# Code based testing.
|5||It is done by end-users
(User acceptance testing).Also done by testers & developers.
|It is done by end-users (user acceptance testing).
Also done by testers & developers.
|It is normally done by testers & developers.|
|6||Testing method where
# System is viewed as a black box
# Internal behavior of the program is ignored
# Testing is based upon external specifications.
|Internals are partly known (i.e. gray), but not fully known (i.e. white).
Test design is based on the knowledge of the algorithm, interval states, architecture or other high level descriptions of the program behavior.
|Internals are fully known.|
|7||It is likely to be least exhaustive of the three.||It is somewhere in between.||Potentially most exhaustive of the three.|
|8||Requirements based. Test cases based on the functional specifications, as internals not known.||Better variety / depth in test cases on account of high level
knowledge of internals.
|Ability to exercise code with relevant variety of data.|
|9||Being specification based if would not suffer from the deficiency as described for white box testing.||It would also not suffer from the deficiency as described for white box testing.||Since test cases are written based on the code, specifications missed out in coding would not be revealed.|
|10||It is suited for functional / business domain testing.||It is suited for functional / business domain testing bit in depth.||It is suited for all.|
|11||Not suited to algorithm testing.||Not suited to algorithm testing.||Appropriate for algorithm testing.|
|12||It is concerned with validating outputs for given inputs, the application being, treated as a black box.||Here in, we have a better variety of inputs and the ability to extract test results from database for comparison with expected results.||It facilitates structural testing. It enables logic coverage, coverage of statements, decisions, conditions, path and control flow within the code.|
|13||It can test only by trial and error (data domains, internal boundaries and overflow.||It can test data domains, internal boundaries and overflow, if known.||It can determine and therefore test better: data domains, internal boundaries and overflow.|