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?

  • 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, 2011 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, 2011 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, 2011 at 17:01

4 Answers 4


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.

  • 1
    @Jeff Atwood: Hope there's no problem if I link to your page. :D
    – Alenanno
    Aug 30, 2011 at 16:37
  • The linked article merely states that the above is from "an uncited Wikipedia section ".
    – user176214
    Jul 10, 2018 at 19:40

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.

  • 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, Aug 30, 2011 at 16:13
  • @FumbleFingers - good point. I changed "complete" to "ready to ship."
    – phenry
    Aug 30, 2011 at 18:35

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.

  • Alphas are commonly shown to the public in open source projects. A beta release is supposed to function as intended but with known issues. Aug 30, 2011 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, 2011 at 20:26

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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