An abstraction of a device or system in which only its externally visible behaviour is considered and not its implementation or "inner workings".
See also functional testing.