Different software companies have different definitions of “alpha,” “beta,” and “release” quality. They also have different notions of what version numbers mean. Here are the definitions we strive to adhere to:
alpha
Alpha quality software has undergone only the most superficial of testing. It may contain known bugs, and almost certainly contains unknown bugs. Features intended for the final release may be incomplete or missing. We rarely release alpha quality software to the public.
beta
Beta quality software has all features intended for final release. Generally, we will have fixed all known bugs, but sometimes we will allow bugs we consider minor to be in beta software. Beta software has been tested, but not extensively. It probably contains many bugs that we have not discovered.
release
Release quality software has been tested extensively on multiple computers with different software versions. It will contain no known bugs, unless the bug is difficult to remove, rarely encountered, and documented thoroughly in our Read Me. (It probably contains undiscovered bugs. No one is perfect!)
Sub-minor version number
The difference between, say, 1.2.3 and 1.2.4 is supposed to be only bug fixes. But often there will be a few minor additional features when we feel that it is unlikely that those features will create bugs that affect older features. (Bugs in old features that are introduced with a new version of the software are known as “regressions.”)
Minor version number
The difference between, say, 1.2.3 and 1.3 will be the introduction of new features and/or a major change in how the application operates. While we endeavor to test all our software before releasing it, such changes frequently result in regressions.
Major version number
The difference between, say, 1.2.3 and 2.0 is usually the addition of large numbers of new features, and/or a major change in how the user interacts with application. Often there will also be major changes in the underlying structure of the code that we fear may introduce regressions. Major version number releases will often contain many bugs and regressions.
Alpha and beta version numbers
The difference between 1.2.3α1 and 1.2.3α2 can be bug fixes and implementation of incomplete features. The difference between 1.2.3β1 and 1.2.3β2 will usually be only bug fixes. There is usually no difference between the final public beta and the release version.