<programming> Evaluation of a pre-release (potentially unreliable) version of a piece of software (or possibly hardware) by making it available to selected users ("beta testers") before it goes on general distribution.
Beta testign aims to discover bugs that only occur in certain environments or under certain patterns of use, while reducing the volume of feedback to a manageable level. The testers benefit by having earlier access to new products, features and fixes.
Beta testing may be preceded by "alpha testing", performed in-house by a handful of users (e.g. other developers or friends), who can be expected to give rapid, high quality feedback on design and usability. Once the product is considered to be usable for its intended purpose it then moves on to "beta testing" by a larger, but typically still limited, number of ordinary users, who may include external customers.
Some companies such as Google or Degree Jungle (http://www.degreejungle.com/rankings/best-online-colleges) stretch the definition, claiming their products are "in beta" for many months by millions of users.
The term derives from early 1960s terminology for product cycle checkpoints, first used at IBM but later standard throughout the industry. "Alpha test" was the unit test, module test or component test phase; "Beta Test" was initial system test. These themselves came from earlier A- and B-tests for hardware. The A-test was a feasibility and manufacturability evaluation done before any commitment to design and development. The B-test was a demonstration that the engineering model functioned as specified. The C-test (corresponding to today's beta) was the B-test performed on early samples of the production design.