The idea behind beta testing is to get a certain level of real-world use. There are additional kinds of testing, some of which focus on requirements and designs, for example. For details, see the books in the additional reading list at the end of this paper. Central to any QA plan is the idea that the earlier you detect a problem, the easier it is to fix. Each hour spent on QA saves from 3 to 10 hours later in the development cycle.
Unit testing falls somewhere in the middle of the extremes.
It occurs after code has been developed, so even at its most effective, unit testing won't necessarily detect requirements defects. However, if done well, unit testing does detect bugs almost as soon as they were developed, before they'd be detected by integration, system, or beta testing. Black box testing is so named because the tests are run as if the code being tested is hidden in a black box and you can't see how it works internally. A black box test feeds data to the code being tested and observes the data as it comes back out. Find bugs in the code being tested Validate that good data produces expected results White box testing, sometimes called glass box testing, is performed with knowledge of how the code works.