testing

what is the difference between white box and black box testing?

A few seconds with a search engine would have answered this for you! However (on the understanding that this isn't homework),
White box: testing when you know how the code is supposed to work. Tests are designed to prove that all of the code works and should make sure that every line of code is executed (eg programmer testing)
Black box: testing where you only know the required inputs and outputs and design tests to prove that the outputs are correct for, in theory, all possible inputs without any knowledge of how the code does it (eg user testing)