White box testing involves examining and testing the internal code structure, logic, and implementation of a program. The tester has access to the source code and understands how the software works internally. Unit testing is a type of white box testing but more specific, black box testing doesn't look at code, and regression testing checks for unintended changes.