White-Box — full code knowledge. Black-Box — no code knowledge. Gray-Box — partial knowledge.
White-Box Testing:
White-Box:
See internal code structure
Test all branches and paths
Measure code coverage
(Full knowledge)
Black-Box Testing:
Black-Box:
See only inputs and outputs
Test functionality
No knowledge of implementation
(No knowledge)
Gray-Box Testing:
Gray-Box:
See database schema
Test API + database
Some internal knowledge
(Partial knowledge)
Key differences: