Structural testing examines the internal implementation details of software, including code structure, logic flow, algorithms, and data handling. It requires knowledge of and access to the internal code architecture, making it synonymous with white box testing. This contrasts with black box testing (also called functional testing) which only considers inputs and outputs without knowledge of internal workings.