Gray Box Testing
It is just a combination of both Black box & white box testing.
It is platform independent and language independent.
Used to test embedded systems.
Functionality and behavioral parts are tested.
Tester should have the knowledge of both the internals and externals of the function.
If you know something about how the product works on the inside, you can test it better from the outside.
Gray box testing is especially important with Web and Internet applications, because the Internet is built around loosely integrated components that connect via relatively well-defined interfaces. Unless you understand the architecture of the Net, your testing will be skin deep.