Gray Box Software Testing: The Software
Testing Halfway House
One of the important stages in the software development
life cycle is software testing. There are a number of testing
types used for testing the software starting from the
development of the application until it reaches the marketing
phase. Before it is released for production any software has to
undergo series of testing such as black box/ white box/ gray
box testing, unit/ integration/ system/ acceptance testing,
functional/ non-functional testing and verification and
validation. Many times the software might function
satisfactorily when tested as individual modules but fail when
the modules are combined together.
The black box/ white box/ gray box testing is based on the
categorization of testing based on the knowledge of system. As
the name "black box" suggests, this type of testing requires no
knowledge of internal logic or code structure. The types of
testing under this strategy are totally focused on the testing
for requirements and functionality of the product/software
application.
Black box testing is sometimes also known as "Opaque/
Functional/ Behavioral/ Closed Box Testing". In this the
software tester will input the data and check the correctness
of the output data. He is not concerned with the internal
operations which make the data do what it does.
The aspect of testing that is done by white box testing is
normally done by a capable software professional. White box
testing strategy deals with the internal logic and structure of
the code.
This strategy is also known as glass/ structural testing and
open box/ clear box testing. The tests written based on the
white box testing strategy incorporate coverage of the code
written, branches, paths, statements and internal logic of the
code etc.
Superficial knowledge on software is not sufficient for
doing this test. You must have studied the software thoroughly
and you should know the functional capabilities of the
software. This test will continue to reveal all the glitches in
the software until they are all removed.
Gray box testing involves having access to internal data
structures and algorithms for purposes of designing the test
cases, but testing at the user, or black-box level. Gray box
testing can be considered as the combination of black box and
white box testing.
The objective of this testing is to find out defects related
to bad design or bad implementation of the system. In gray box
testing, the test engineer is equipped with the knowledge of
system and designs test cases or test data based on system
knowledge.
However, just like in the case of black box testing the
tester does not have access to the code. Access to the code is
available only to the white box testers. A gray box tester can
input data into the database and see the output results. He can
also perform SQL queries on the database to verify the column
values. These are mainly used with client to server testers or
individuals who use a database
Gray box testing is also known as gray box analysis. Gray
box analysis combines white box techniques with black box input
testing. Gray box approaches usually require using several
tools together.
In this type of testing debugging of the software is carried
out by a software tester who has only a limited knowledge of
the internal parts of the program, unlike a white box tester
who has access to a code. He has an idea about the individual
modules of the system but is unaware of the exact
functionality.
The black box and the gray box are similar in that they both
view the program from the external point of view. Both the
testers do not have internal access to the source code. Since
the testers do not have access to the codes there will not be
any premeditated thinking and the results will not be biased
due to changes made in the code while testing.
On the other hand, it is more difficult to solve problems in
an application due to the non-availability of the codes unlike
in white box testing where the code is known to the tester and
is considered in designing the testing process.
|