Gray Box Testing: The Software Testing Halfway HouseWith the development of software also comes the phase known as software testing. Software testing involves many types of testing from the beginning of the development of the software right to the time it is released for marketing. Before it can be released, it needs to pass a series of tests, some tests repeatedly. Often the software or one unit of it will pass a test, they make an addition to it, and then it won't pass the test. There are various tests for this type of situation. There are functionality and performance tests and more detailed tests like black box software testing, white box testing (or glass box) and gray box testing. Black box testing and white box testing have the difference of the point of view the software tester or engineer can see. In black box testing, they have access to the exterior of the software but not the interior. The tester or programmer will input data and observe the output of the data, but doesn't deal with what makes the data do what it does. This is the job of the white box tester. In white box testing, the programming has knowledge of and access to the code that made the data perform in the manner it performed. In gray box testing, the software tester has access to the interior of the system, where the data is located, but not the actual code. Black box testers may know the individual branches of a code and what makes the code branch off, but not actual access to the code. White box testers are the only testers that have access to the code. A gray box tester is able to do his test such as entering data into a database and can view the software images after the data is input. He can perform an SQL query on the database to verify the column values. These are most often used with client to server testers or individuals who use a database. Gray box testing is also called gray box analysis and is a method of software debugging when the tester has only a limited knowledge of the internal parts of the program, unlike a black box tester who has access to a code. He may have the knowledge of how the individual components within the system interact, but does not know how each one functions. The similarity between black box and gray box is that they both view the program from the external or outside part. Because the gray box tester does not have access to the source code, it is non-intrusive and unbiased unlike black box testing. However, because there is no internal access, it is more difficult to detect and eliminate problems within an application. |