What is Gray Box Testing?
Gray box testing is the testing of software application using effective combination of both White box testing & Black box testing method. This is nice & powerful idea to test the application.
Here is the simple definition for Gray box testing.
It is combination of white-box testing and black-box testing. This testing is to search for the defects if any due to improper structure or improper usage of application. It is also known as translucent testing.
It is too beneficial because it takes the straightforward technique of black box testing and combines it with the code trageted systems in white box testing.
I really hate the term 'grey box'. Sure it's easy to define, but is it really easy to classify consistent between different people across the industry? For the most part, it's a 'grey' area. (pardon my pun) Most people use this term will without a clear idea of what they're talking about. Where whitebox ends and where grey box begins? There's no industry standard definition, where it means one thing to one person, it can mean something to someone else.
We can clearly say, unit testing is clearly whitebox, because you target a test at a specific implementation of a module. And manual functional testing without assistive tools is clearly blackbox.
But how about manual testing with a debugging overlay? I think it's grey box since you have a peek into the system internals. However, you're not looking at the source code and don't necessarily know which code paths are being executed. But I think this opens up a brand new avenue of testing you normally won't get in a pure blackbox or whitebox approach. Where a whitebox you target logic branching, and a blackbox you target functional requirements. A exploratory test using debugging overlays allows you to target your test based on actual behavior of your application. Some would consider this just an extension of black, since you are not considering anything from the source code into your test. Some consider it white because you have a more transparent knowlege of the machine's state.
API testing. Is that whitebox, blackbox, or grey? I think it's blackbox because it's testing against an interface, and assume no knowledge of the system internals. Some think it's white because you have a clear blue print of how the software is suppose to behave and what internal dependencies there are. Some may consider that grey just because of the lack of complete transparency.
Load testing. Is that black or is it grey? You are not truly a blackbox testing when you do load testing. You are making assumptions on what sort of traffic is generated so you can mimic it, and scale it up.
Gray box testing:
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 code. So Gray Box Testing approach is the testing approach used when some knowledge of internal structure but not in detailed.