A system/software test methodology that is derived from external specifications and requirements of the system. Methods for black-box testing include random testing, testing at boundary values, and a possible error list. It verifies the end results at the system level, but does not check on how the system is implemented. Nor does it assume that all statements in the program are executed. See also functional testing.