軟體版本週期

軟體版本週期是指電腦軟體的發展及發行過程，如右圖，從pre-alpha（準預覽版本）發展到alpha（預覽版本）、beta（測試版本）、released candidate （最終測試版本）至最後的release/gold（完成版）。

## 開發期

### pre-alpha

有時候軟體會在alpha或beta版本前先釋出pre-alpha版本。一般而言相對於alpha或beta版本，pre-alpha版本是一個功能不完整的版本。

### alpha

alpha版本仍然需要測試，其功能亦未完善，因為它是整個軟體釋出週期中的第一個階段，所以它的名稱是「alpha」，希臘字母中的第一個字母「α」。

alpha版本通常會送到開發軟體的組織或某群體中的軟體測試者作內部測試。在市場上，越來越多公司會邀請外部客戶或合作夥伴參與其測試。這令軟體在此階段有更大的可用性測試。

在測試的第一個階段中，開發者通常會進行白盒測試。其他測試會在稍後時間由其他測試團體以黑盒或灰盒技術進行，不過有時會同時進行。

#### 功能完整版本

功能完整版本（feature-complete，縮寫FC）是指一個電腦軟體已實作所有計畫或主要功能，但因錯誤、效能或穩定性問題而尚未最終完成的版本。此階段發生於開發中alpha測試結束時。

功能完整版本通常仍須經過beta測試和錯誤修正，以及效能或穩定性提升，才能進入候選版本，最終達到正式版狀態。

### beta

beta版本是軟體最早對外公開的軟體版本，由公司外的第三方開發者和業餘玩家等參與公眾測試。因為是alpha的下一個階段，所以為第二個希臘字母beta (β)。一般來說，beta包含所有功能，但可能有一些已知問題和較輕微的程序錯誤（bug），要進行除錯（debug）。beta版本的測試者通常是開發軟體的組織的客戶，他們會以免費或優惠價錢得到軟體。Beta版本亦作為測試產品的支援和市場反應等。

其他情況不同企業有不同的稱法，例如微軟曾以community technology preview（簡稱CTP，中文稱為「社群技術預覽」）為發佈軟體的測試版本之一，微軟將這個階段的軟體散佈給有需要先行試用的使用者或廠商，並收集這些人的使用經驗，以便作為進一步修正軟體的參考。

#### 永久測試版

部分軟體持續處於所謂的「永久測試版」（perpetual beta）狀態，不斷加入新功能卻從未發佈最終的「穩定」版本。隨著網際網路促進了軟體的快速和低成本分發，業界對「beta」一詞的使用已採取了更為寬鬆的態度。

### release candidate

release candidate（簡稱RC）指可能成為最終產品的候選版本，如果未出現問題則可釋出成為正式版本。在此階段的產品通常包含所有功能、或接近完整，亦不會出現嚴重問題。

多數開源軟體會推出兩個RC版本，最後的RC2則成為正式版本。閉源軟體較少公開使用，微軟公司在Windows 7上應用此名稱。蘋果公司把在這階段的產品稱為「golden master candidate」（簡稱GM candidate），而最後的GM即成為正式版本。而 iOS 自 14.2 開始亦採用 RC 稱呼處於此階段的版本狀態。

## 完成期

### 生產商發放

生產商發放（release to manufacturing，縮寫RTM）是軟體產品準備交付時使用的術語，來自於以前還需要使用實體載具（唯讀，硬碟等）來進行安裝的時代。某些電腦程式以「RTM」作為軟體版本代號，例如微軟Windows 7發行零售版前的RTM版本主要是發放給組裝機生產商用，使製造商能夠提早進行整合工作或解決軟體與硬體設備可能遇到的錯誤。RTM版本不一定意味著創作者解決了軟體所有問題；仍有可能向公眾發布前更新版本。以Windows 7為例：RTM版與零售版的版本號是一樣的。

### 一般可用

一般可用（general availability, 縮寫GA）是所有必要的商業活動已經完成，該軟體產品已經可以發售的階段。然而，這取決於語言、地域和電子設備與媒體的可用性，有些地區之間可能會有上市時間的延遲。商業活動可能也包括安全性和合法測試，以及本地化和全球銷售的可能性評估。RTM與GA的間隔可能會是1週或幾個月，因為在此過程中需要進行許多商業活動。在這個階段，可以說軟體已經「上線」了。

### 網路分發

網路分發（release to the Web，縮寫RTW），或稱Web發佈，是一種利用網際網路進行分發的軟體交付方式。製造商在這種類型的發佈中並不生產實體軟體工具，而會藉由OTA來進行發放。隨著網際網路使用人數的增長，RTW變得越來越普遍。

### 穩定版

穩定版（亦稱正式版或生產版）是通過所有驗證和測試階段的最終候選版本（RC），任何已知的剩餘錯誤均被視為可接受範圍，此版本正式投入生產使用。部分軟體產品（例如Debian等Linux發行版）還提供長期支援（LTS）版本，這類版本基於已經過充分測試的完整版本，僅接受安全性更新。

## 軟體支援

在軟體的生命週期內，有時會發佈服務版本、補丁或服務包，有時也稱為「臨時版本」或「維護版本」（maintenance release，縮寫MR）。例如微軟為Windows XP的32位元版本發佈了三個主要服務包，為64位元版本發佈了兩個服務包。這些服務包以單個可安裝軟體包的形式提供更新、修正和功能增強，也可能包含新功能。部分軟體在發佈時即預期提供定期支持，通常需要長期持續支持的軟體類別包括防毒軟體套件和大型多人線上遊戲。以Windows XP為例，微軟在延伸支援結束後仍提供付費更新長達五年，支援終止日為2019年4月8日。

### 軟體壽命結束

當軟體不再銷售並已被停止支持時，該產品即達到使用壽命終止階段，有時稱為「終止服務」、「停產」、「棄用」、「廢棄」或「過時」，但忠實使用者群可能會繼續其存在一段時間，甚至在其平台已過時後仍長期沿用——例如公共桌面環境以及ZX Spectrum。

在壽命終止日期後，開發者通常不再新增功能，不修正已知或未知的缺陷、錯誤或漏洞，也不再提供任何產品支持。若開發者有意，可能會公開發佈原始碼，以便由志願者繼續維護該平台。

## 歷史

「alpha/beta」測試術語起源於IBM。類似的術語早在1950年代（甚至更早）即被IBM軟體開發相關人員使用。「A測試」是新產品在公開宣佈前的驗證；「B測試」是產品送交製造前的驗證；「C測試」則是產品正式供貨前的最後測試。隨著軟體成為IBM業務的重要組成部分，alpha測試術語用於指稱公開宣佈前的測試，beta測試則用於表示產品達到正式供貨的準備狀態。IBM的早期軟體項目經理Martin Belsky自稱是這套術語的發明者。IBM於1960年代放棄了alpha/beta術語，但此時這套術語已廣為人知。IBM本身並未使用「beta測試」指稱客戶測試，而是採用「現場測試」（field test）一詞。

其後出現了多個著名的公開測試案例：早期購買者以49.95美元購買了IBM PC文字處理軟體WordVision的「先鋒版」（pioneer edition）。1984年，Stephen Manes在文章中寫道，Bruce and James Program Publishers「以一次絕妙的行銷手法，成功讓人們付費換取測試產品的機會」。2000年9月，蘋果公司以盒裝形式發行了Mac OS X Public Beta作業系統。2005年9月至2006年5月，微軟為Windows Vista發佈了多個社群技術預覽版（CTP）。《Minecraft》則於2009年至2011年間處於公開beta階段。

2005年2月，ZDNet刊登了一篇探討「beta版本長期存在並以正式版標準使用」現象的文章。文中指出Gmail和Google新聞等服務儘管已廣泛使用，卻長期停留在beta狀態；Google新聞於2006年1月結束beta，Google Apps（現稱Google Workspace，含Gmail）則於2009年7月結束beta。自Windows 8起，微軟將預發行軟體改稱為「預覽版」（preview）而非beta版。2014年推出的Windows Insider計劃所發佈的所有預發行版本均稱為「Insider Preview版本」。「beta」一詞有時也用於指代候選版本、限時試用版本或行銷手法。