[4] Test cases are built around specifications and requirements, i.e., what the application is supposed to do.
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.
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.