Test cases are generally derived from external descriptions of the software, including specifications, requirements and design parameters.
[8][9] Black-box testing may be necessary to assure correct functionality, but it is insufficient to guard against complex or high-risk situations.
[10] An advantage of the black box technique is that no programming knowledge is required.
Whatever biases the programmers may have had, the tester likely has a different set and may emphasize different areas of functionality.
On the other hand, black-box testing has been said to be "like a walk in a dark labyrinth without a flashlight.