What is Gray Box Testing?

Gray box testing is the testing of a software application using an effective combination of both White box testing & Black box testing method. This is a nice & powerful idea to test the application.

The white box testing means tester is aware of the internal structure of code but the black box tester doesn’t aware the internal structure of the code.

In White Box testing, software tester is familiar with the internal code and structure. For white box testing, the tester must have the knowledge of programming language. In Black box testing, testers do not need to know about internal structures and code. Now, Gray Box testing is the combination of white box testing and black box testing. In Gray box testing, the tester is aware of the few parts of the internal structure. Gray box testing and translucent testing is same.

For designing test cases, testers need the knowledge of internal code and structures. Tester creates the test cases based on the knowledge of internal code and algorithms and then test the application without needing internal code anywhere, on black box level.  Most of the times gray box testing is useful in integration testing and penetration testing. With the gray box testing, front end, as well as code part, can be tested. It is called Gray box testing because tester cannot see inside the box but can see partially in it.

In the Gray box testing tester is usually has knowledge of limited access of code and based on this knowledge the test cases are designed and the software application under test treat as a black box & tester test the application from outside. Don’t confuse with White box & Gray box, as in the Gray box testing is tester doesn’t have the knowledge in detailed. Also, the Gray box testing is not a black box testing method because the tester knows some part of the internal structure of the code. So Gray Box Testing approach is the testing approach used when some knowledge of internal structure but not in detailed.

The name comes because the application for the tester is like a gray box like a transparent box and tester see inside it but not fully transparent & can see partially in it. As tester doesn’t require the access to code the gray box testing is known as unbiased & non-intrusive.

 

Gray box testing techniques:

  1. Matrix Testing: Business and Technical risks, which are defined by the developers in software programs are examined under matrix testing. Developers define all the variables that exist in the program. Each of the variables will have an inherent technical and business risk and can be used with varied frequencies during its life cycle.
  2. Pattern Testing: To carry out the testing, analysis of previous defects is done. It determines why the failure has been happened by digging into the code. Analysis template includes reasons for the defect. This will help test cases designed in future as they will be proactive in finding other failures before hitting production.
  3. Orthogonal Array testing: It is mainly a black box testing method. In orthogonal array testing, test data consists of n numbers of permutations and combinations. OAT is preferred when maximum coverage is required when there are very few test cases and test data is large. This is very helpful in testing complex applications.
  4. Regression testing: Testing the software after every change in the software to make sure that the changes or the new functionalities are not affecting the existing functioning of the system. This type of testing is also done when any defect is fixed to ensure that fixing defect has not affected other functionality of the software. Regression testing strategies:
  5. Retest all
  6. Retest risky use cases
  7. Retest changed segment
  8. Retest within Firewall
  9. Retest by profile

To test the Web Services application usually, the Gray box testing is used.

Gray Box Testing Example:

We will take the example of web application testing. To explore gray testing will take a simple functionality of web application. You just want to enter email id as input in the web form & upon submitting the valid email id user & based on users interest (fields entered) the user should get some articles over email. The validation of email is using JavaScript on the client side only. In this case, if the tester doesn’t know the internal structure of the implementations then you might test the web application of form with some cases like Valid Email Id, Invalid Email ID & based on this will check whether the functionality is working or not.

But tester is aware of some internal structure & if the system is making the assumptions like

  • The system will not get Invalid email ID
  • The system will not send email to invalid email ID
  • The system will not receive failure email notifications.

In this type of testing you have to test the application by disabling the JavaScript, it might be possible due to any reason JavaScript is failed & System get an Invalid email to process & all assumptions made by the system will fail, as a result, incorrect inputs are sent to the system, so

  • The system will get Invalid email ID to process
  • The system will send email to invalid email ID
  • The system will receive failure email notifications.

Note: The Gray box Testing is also spelled as “Grey Box Testing” so both GrayBox Testing & GreyBox Testing are the same one.

Gray box testing is mostly suited for web-based applications.

Advantages of gray box testing:

  1. It is not necessary to have access to all code.
  2. Users and developers have clear goals while doing testing.
  3. Gray box testing is mostly done by the user perspective.
  4. Testers are not required to have programming skills for this testing.
  5. Gray box testing is non-intrusive.
  6. Overall quality of the product is improved when inputs of developers and testers are improved.
  7. In gray box testing, developers have more time for defect fixing.
  8. It is a mix of black and white box testing, so by doing Gray testing, benefits of both black and white testing can be obtained.
  9. Gray box testing is unbiased. It avoids conflicts between a tester and a developer.
  10. Gray box testing is much more effective in integration testing.

Disadvantages of gray box testing:

  1. Defect association is difficult when gray testing is performed for distributed systems.
  2. The source code is missing in Gray box testing as there is very limited access to an internal structure which leads to limited access for code path traversal.
  3. Because source code cannot be accessed, doing complete white box testing is not possible.
  4. Gray box testing is not suitable for algorithm testing.

Most of the test cases are difficult to design.

 

Conclusion:

We think that you will get a clear idea of Gray box testing. If you have an example, experience of tips on gray box testing? then you can share it in comments the section below.
  1. Gray box testing provide combine benefits of white box and black box testing.
  2. Gray box testing is mostly suited for web-based applications.
  3. Gray box testing is unbiased

14 thoughts on “Gray Box Testing”

  1. Thanks a lot for sharing all this information. please keep on updating the article so that we can get more and more knowledge in terms of website testing…. please share about selenium IDE like how to use..? and how to generate test scripts…?

    Again Thanks

    Reply
  2. i was having some different idea of this GB Testing .
    can you tell me below is right ?

    GB = WB+BB = some knowledge of internal code working + functionality to be check according to SRS.

    SO in GB we just do not make TCs based on valid / invalid inputs but also make TCs depending on the Conditional (if else, case) and Looping statements (for , while) also.

    so i don’t have actual coding on my bench but i know algorithm of the with conditional and braching as Flowchart or other means

    Example :
    Registering a NEW User

    1. Check The User ID exist in database ?
    if yes give error or msg as required
    2. if User ID is Unique , check Mail ID entered by used exist in Database , is yes again error or MSG.

    thus after 1st If condition of “User ID” is passed check for next If conditions and so on

    Is above logic correct ????

    Reply
  3. The white box testing means tester is aware of internal structure of code but the black box tester doesn’t aware the internal structure of code.

    I think it is wrong.?

    Reply

Leave a Comment

Share This Post