The intent of Alpha Testing is to exercise the nearly completed application in real-world situations. The goal is not just to uncover bugs, but to discover any deficiencies, unintended side-affects, clumsiness in the UI, and misconceptions in how the application will be used. The Alpha Test phase begins when all features have been implemented, but a number of known bugs still exist in the code. Some companies begin Alpha Testing before all features exist-we feel that is not really Alpha since the testers can exercise only a portion of the features, not the entire product.
The intent of Beta Testing is to exercise the virtually completed application in real-world situations. Beta Test has just one goal: to uncover bugs. The Beta Test phase begins when all features have been implemented and virtually no known bugs still exist in the code. Results of Beta Testing determine the last series of "tweaks" to the code before the product is declared complete.