You've created a new software program. You need to test it for bugs. So you hire a company to do some gray box testing for you.
The process involves letting testers try the program, with an eye both on the outward functionality and the internal workings of the program. The technique splits the difference between black box testing and white box testing.
In black box testing, the person running the debugging process knows nothing about the internal workings. They're going in blind. The goal is to test the functionality of the process, i.e. how it works for the user, without caring too much about how the sausage is getting made on the back-end.
White box testing takes the opposite approach. The tester has total knowledge of how the program operates. This strategy is more concerned about the process of how the program works, rather than with its functionality.
Gray box mixes the two. It's getting a look at both structures and functionality.