Before any software product can be released it must be tested. Typically a formal test strategy is planned and executed on the software before it can be considered for release. Often after the formal phases of testing have been completed, additional testing is performed called Alpha and Beta testing.
Alpha testing is done before the software is made available to the general public. Typically, the developers will perform the Alpha testing using white box testing techniques. Subsequent black box and grey box techniques will be carried out afterwards. The focus is on simulating real users by using these techniques and carrying out tasks and operations that a typical user might perform. Normally, the actual Alpha testing itself will be carried out in a lab type environment and not in the usual workplaces. Once these techniques have been satisfactorily completed, the Alpha testing is considered to be complete.
The next phase of testing is known as Beta testing. Unlike Alpha testing, people outside of the company are included to perform the testing. As the aim is to perform a sanity check before the products release, there may be defects found during this stage, so the distribution of the software is limited to a selection of users outside of the company. Typically, outsourced testing companies are used as their feedback is independent and from a different perspective than that of the software development company employees. The feedback can be used to fix defects that were missed, assist in preparing support teams for expected issues or in some cases even enforce last minute changes to functionality.
In some cases, the Beta version of software will be made available to the general public. This can give vital ‘real-world’ information for software/systems that rely on acceptable performance and load to function correctly.
The types of techniques used during a public Beta test are typically restricted to Black box techniques. This is due to the fact that the general public does not have inside knowledge of the software code under test, and secondly the aim of the Beta test is often to gain a sanity check, and also to retrieve future customer feedback from how the product will be used in the real world.
Various sectors of the public are often eager to take part in Beta testing, as it can give them the opportunity to see and use products before their public release. Many Software Testing Companies use this phase of testing to assist with marketing their product. For example, Beta versions of a software application get people using the product and talking about it which (if the application is any good) builds hype and pre-orders before its public release.