What is a Beta Version and which different phases exist in software development?
An early stage of software development
A beta version is a software development stage in which some new functions have already been implemented, but the development of a release has not yet been completed. The characteristics of a beta version are, for example
- the lack of functions,
- the incomplete implementation of individual functions,
- the possible presence of auxiliary means such as stubs or mock objects,
- the outstanding tests of individual functions or of the totality of functions.
It is common for the documentation of new features (in the manual, change log etc.) to be incomplete during the beta phase of a software release.
The phases of software development
Classically, there are 5 different phases of software development:
- The pre-alpha version, in which the release for the development of new functions takes place. In the agile context, this corresponds roughly to the transition from Sprint Planning to Sprint. Some publications also define prototypes as elements of a pre-alpha version.
- The alpha version, in which the first functions of the planned release are implemented, which may be evaluated by in-house testers using white-box tests. Gray or black box tests can also be used at the end of an alpha phase.
- The beta version, which can be divided into two types: a closed beta, and an open beta, a (at least partially) public beta version. While the closed beta is only made available to internal users and testers, the open beta can be made available to selected customers or external users for testing purposes. This of course requires a trustful cooperation between manufacturer and customer as well as a corresponding communication. Both closed beta and open beta can run through several cycles, which can be numbered consecutively in version management (beta 1, beta 2 etc.).
- The Release Candidate – also known as Gamma Delta – describes the almost final version of a software. This Release Candidate can also be made available to selected customers – with appropriate communication. Manufacturers often assume that the testers will at best find smaller errors in the Release Candidate, and ideally no errors at all. Gamma Delta can also run through several cycles. At the end of the phase, the documentation of the new functions should also be completed.
- The release as a final version of a development or as a status that is offered or made available to all customers. This is also referred to as Golden Master. The entirety of the functions to be implemented is defined in release management.
Even if companies with partly public beta versions try to provide users or testers with a pre-release version of essential parts of a defined overall scope of functions, serious errors are not uncommon. Therefore it is also obvious that beta versions – possibly in contrast to release candidates – are not suitable for productive use.
In practice, it can be observed that a version of manufacturer A can already function significantly more stable and better than a version of manufacturer B. This is also due to the fact that there is no generally valid classification of beta versions.
With the Web 2.0 concept the term Perpetual Beta became known. It describes the continuous development and optimization of websites that can never reach a finished state. Sometimes a reference to the banana principle is made, but this is rather misleading.
Even far away from software development, there are beta versions which may trade under other terms such as Erlkönig in the automotive industry.