Functional testing validates what the system does - its features, functions, and interoperability. Option B correctly describes this. Option A lists non-functional tests (performance, load, stress). Option C describes non-functional characteristics. Option D is incorrect - functional testing tests 'what' the system does, not 'how' it works internally.