Asset Management Software Header Gif

 Software Testing Basics

 

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.