Take the 2-minute tour ×
English Language & Usage Stack Exchange is a question and answer site for linguists, etymologists, and serious English language enthusiasts. It's 100% free, no registration required.

It occurred to me that I use the term "beta" to describe a "release candidate" of a computer product that has passed all expectations of the development team, and is now being given limited exposure to users at large for comment.

However, I have no idea how the term came to be, or what context it originally was used in. If we use "beta", then "alpha" must have been used at some point (possibly to refer to the internal QA testing period).

Was "gamma" ever used? Who came up with this nomenclature for the QA process?

share|improve this question
I've heard the term "alpha" used, albeit not as frequently. I should look into this more and provide a proper answer. –  Andy Aug 30 '11 at 16:04
Gmail has been in beta for 5 years and so the beta was finally discarded Google offered a Back to Beta option to display the Gmail beta logo. –  Itamar Aug 31 '11 at 5:02
The first version of FreeBSD I ever installed was 2.2-GAMMA. It was a stage much like a "release candidate," and I think the project has moved to the RC terminology since then. –  coneslayer Nov 4 '11 at 17:01
add comment

4 Answers

up vote 9 down vote accepted

There are some phases in Software Developing.

  1. Pre-alpha refers to everything that is prior to testing.
  2. Alpha is when the product is ready to go through the first phase of testing. It's not exactly true that Alpha means only internal testing, or at least this mainly refers to proprietary software. In Open Source softwares, Alpha versions might be publicly available. There might be several Alpha versions.
  3. Beta is the second phase in testing. Its focus is not to implement features anymore, (it is called feature complete), but rather to improve its user-friendliness. Everything is taken care by beta-testers that are "usually customers or prospective customers of the organization that develops the software, willing to test the software without charge, often receiving the final software free of charge or for a reduced price."

About other names being used, here's some info:

Other Greek letters, such as gamma and delta, are sometimes used to indicate versions that are substantially complete, but still undergoing testing, with omega or zenith used to indicate final testing versions that are believed to be relatively bug-free, ready for production.

You can read more about this here.

About the origins of this usage, I found a page written by Jeff Atwood, where he writes:

But where did these terms originate? There's an uncited Wikipedia section that claims the alpha and beta monikers came, as did so many other things, from the golden days of IBM:

The term beta test comes from an IBM hardware product test convention, dating back to punched card tabulating and sorting machines. Hardware first went through an alpha test for preliminary functionality and small scale manufacturing feasibility. Then came a beta test, by people or groups other than the developers, to verify that the hardware correctly performed the functions it was supposed to, and that it could be manufactured at scales necessary for the market. And finally, a c test to verify final safety. With the advent of programmable computers and the first shareable software programs, IBM used the same terminology for testing software. As other companies began developing software for their own use, and for distribution to others, the terminology stuck -- and is now part of our common vocabulary.

share|improve this answer
@Jeff Atwood: Hope there's no problem if I link to your page. :D –  Alenanno Aug 30 '11 at 16:37
add comment

This terminology originated from IBM in the 1960s when they had A-tests, B-tests, C-tests and D-tests. From the Jargon File 4.4.7:

Historical note: More formally, to beta-test is to test a pre-release (potentially unreliable) version of a piece of software by making it available to selected (or self-selected) customers and users. This 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, module, 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, and the D test was the C test repeated after the model had been in production a while.

share|improve this answer
add comment

Alpha is, in fact, still used: an alpha release of a software program is typically complete enough to run in a limited fashion for testing purposes, but lacks significant functionality or content in some areas, and may crash or otherwise fail in expected or unexpected ways. Alpha testing is usually conducted internally or among a very small and trusted group of outsiders.

It is easy to see, therefore, how beta logically follows alpha: the program is still not ready to ship, but it more complete than it is during the alpha phase, and the group of testers is larger than it is during alpha but not nearly as large as the anticipated user base of the final product is anticipated to be.

"Release candidate," which I believe is of more recent vintage than the other two terms, indicates software that is at a more advanced state than beta. Typically it means exactly what it says--that the software is believed to be ready for release, unless additional siginificant bugs are uncovered--although the distinction between a late beta and an early RC tends to get obscured from time to time.

share|improve this answer
I do not understand a beta release to be still not complete. Ordinarily I expect it to contain all functionality planned for the Release Candidate. To me, a beta release is intended to flush out any remaining bugs or shortcomings in user-friendliness. For a simple app, if the developer(s) are both competent and lucky, the beta might even be upgraded to RC with no changes whatsoever, –  FumbleFingers Aug 30 '11 at 16:13
@FumbleFingers - good point. I changed "complete" to "ready to ship." –  phenry Aug 30 '11 at 18:35
add comment

Beta is not equivalent to release candidate. A beta is usually internal or released to a controlled group of testers, whereas a RC is a version of the product that can be released to the public if no major issues are found.

Of course there is alpha; it is internal only, never seen by the outside world.

See here for a detailed explanation.

share|improve this answer
Alphas are commonly shown to the public in open source projects. A beta release is supposed to function as intended but with known issues. –  Captain Giraffe Aug 30 '11 at 18:46
But often a beta will be released if no issues are found; often the purpose of the beta is to try the software on as many real-life configurations, machines, environments and/or countries as possible, more than usually possible in even the best internal testing. –  Hugo Sep 10 '11 at 20:26
add comment

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.