White box testing examines the internal structures, design, and code of the software, requiring access to the source code. Black box testing focuses on inputs and outputs without seeing internal code. Smoke testing and sanity checks are preliminary testing types that don't specifically require source code access.