Specification-based testing techniques are black-box testing methods that test a system based on its functional and non-functional specifications without knowledge of internal structure. They focus on what the system does through inputs and outputs rather than how it works internally. Functional testing examines system features while non-functional testing looks at quality attributes like performance and usability, though tests for non-functional aspects are less standardized.