users test; functionality, user input validation, output results and transitions and boundary cases
testing where only the inputs and outputs of a software module are tested without examining the inner working of the software
any component of a system for which the user need not know the details of its internal operation