Testing software while already having some knowledge of its underlying code or logic. It implies more understanding of the internals of the program than black box testing, but less than white box testing. Contrast with
black box testing and
white box testing. See
testing types and
gray box.