Subscribe by Email

Sunday, November 20, 2011

What do you understand by gray box testing?

Grey box testing or gray box testing can be defined as a combination of both white box testing as well as black box testing. Therefore, we can say grey box testing requires the full knowledge of algorithms and internal structure of the software system for the designing and production of test cases at the level of white box testing but, testing the software system at the level of black box testing.

It is not necessary for the person who is testing the software system to have full knowledge about the internal structure, source code and algorithms of the program.

Grey box testing according to one misconception is not only about modifying the input data values and modifying output information values because the system has to be tested as per the conditions of black box testing.

One needs to understand this when integrating two modules of the software system which have been written by two different programmers and whose thinking differ a lot. The two programmers only know about the interfaces of the both modules under test.

In contrast to this, the modification of a data repository is well considered as grey box testing because in this case only the internal data is modified and the external data remains unaffected. Apart from integration testing, grey box testing also includes reverse engineering.It is required to determine error messages and the boundary values for data.

Grey box testing includes the benefits from both sides i.e., it has the advantages of both white box testing and black box testing. This may seem confusing but it can be clarified with the following example. A person who knows the concepts of software mechanism and its internal structures as well as he/ she knows how the system should work and can determine the output, will design better test cases while externally testing the software system. However, a person with only the knowledge of black box testing won’t be able to make better test cases as compared to the former.

Despite all the added advantages, grey box testing is limited to intelligent test cases and the testing is to be performed with limited information, exception and data type handling etc. grey box testing is implemented to find flaws in the design and implementation of the software system.

The developer who uses grey box testing is well versed with the knowledge of system design and system implementation and designs test cases based on that knowledge itself.

The test strategy in grey box testing is based on the limited knowledge of internal structure of the software system. The best examples of this can be architectural model, UML design model and state model.

Grey box testing techniques are the best techniques for applications related to internet and web. It is ideal for modules that are connected through well defined user interfaces or which are loosely integrated. A major part of grey box testing is under white box testing and only a minor part follows the black box testing.

During grey box testing, initially the tester implements a limited number of test cases to test the internal structure of that particular software system. Later the tester follows black box testing techniques and feeds inputs to the test cases and checks whether the output is obtained as expected or not. In this kind of testing, inspection of internal structure is fully allowed but, the extent of modification is limited.

In addition to all the benefits of grey box testing, this testing methodology is a great time saver. It’s very useful especially when you have a shortage of time to test the software system.

No comments:

Facebook activity