Functional testing validates specified functionality or an isolated subsystem, module, or function without calling real external services. Its environmental isolation makes tests more reliable while still allowing black-box or grey-box approaches. section 15.1
Use functional testing as a boundary between requirement validation and broader system behavior:
- Test functional requirements generally, or focus on a separate piece of logic such as a subsystem, module, or function. section 15.1
- Contrast integration testing, which exercises integrated application parts and real subsystems to expose behavior at subsystem boundaries. section 15.1
- Treat property-based testing as a functional-testing technique when generated data checks invariants and mathematical properties. section 15.1
A game as a functional-testing target
A console game such as Labyrinth provides a domain for testing specified behavior. Tests can validate the game’s functionality while keeping external services out of the test environment. section 15.0 section 15.1

