根据Wikipedia 2023:Software release life cycle显示,软件的开发周期版本命名有以下几种:
- Pre-alpha(Dev)
- Alpha
- Beta
- Perpetual beta
- Open and closed beta
- Release candidate
- Stable release
- Release
其他版本:
- LTS
- Patch
- Final
- TECH
说明:
Pre-alpha(Dev)
Pre-alpha是指在软件项目进行正式测试之前执行的所有活动。这些活动包括需求分析、软件设计、软件开发和单元测试。在典型的开源开发中,有几种类型的pre-alpha版本。里程碑版本包括特定的功能集,并在功能完成后尽快发布
Alpha
软件发布生命周期的alpha阶段是软件测试的第一阶段。在此阶段,开发人员通常使用白盒技术测试软件。然后,由另一个测试团队使用黑盒或灰盒技术进行额外的验证。向组织内部转换到黑盒测试称为alpha发布。通常,专有软件中很少有alpha版本的外部可用性,而开源软件通常有公开可用的alpha版本。alpha阶段通常以功能冻结结束,表示不会再添加更多功能。此时,软件被认为是具备全部功能的。总体而言,一个软件包的alpha版本或发布旨在完成某个特定的任务,但不保证完全完成。
Feature complete
一个软件的功能完成(FC)版本已经实现了所有计划或主要的功能,但由于存在错误、性能或稳定性问题,它还没有达到最终状态。这通常发生在开发的alpha测试结束时。
通常,功能完成的软件仍然需要进行beta测试和错误修复,以及性能或稳定性的增强,然后才能进入发布候选版本,最终达到最终版本的状态。
Beta
Beta阶段是紧随alpha阶段之后的软件开发阶段,以希腊字母第二个字母命名。处于beta阶段的软件也被称为beta版本。通常在软件已经具备全部功能的情况下开始beta阶段,但可能仍然存在已知或未知的一些错误。与完整的软件相比,处于beta阶段的软件通常会有更多的错误和速度或性能问题,并且仍可能导致崩溃或数据丢失。beta测试的重点是减少对用户的影响,通常包括可用性测试。向用户提供beta版本的过程称为beta发布,通常是软件首次在开发组织之外提供。软件的beta版本可以是公开或私密的,取决于它们是否公开可用或仅限于有限的受众。Beta版本的软件通常对组织内部的演示和预览以及潜在客户非常有用。一些开发人员将此阶段称为预览、预览版本、原型、技术预览或早期访问。
Beta测试人员是积极报告beta软件问题的人。他们通常是软件开发组织的客户或代表潜在客户的人员。Beta测试人员往往免费提供服务,但通常会收到他们测试的产品的版本、发布版本的折扣或其他奖励。
Perpetual beta
一些软件被保持在所谓的“永久测试版”状态,其中新功能不断添加到软件中,而不建立最终的“稳定”版本。随着互联网促进了软件的快速和廉价分发,公司已经开始采取更加宽松的方法来使用“测试版”这个词。
Open and closed beta
开发人员可以发布封闭测试版或公开测试版;封闭测试版版本是通过邀请发布给一组受限个人进行用户测试的,而公开测试版测试人员则来自更大的用户群体或任何感兴趣的人。私人测试版可能适用于能够提供价值但还没有准备好被所有人使用的软件,可能由于扩展问题、缺乏文档或仍然缺少重要功能。测试人员会报告他们发现的任何错误,并有时提出他们认为在最终版本中应该提供的其他功能。
公开测试版具有两个目的:向潜在消费者展示产品,以及在广泛的用户群体中进行测试,可能会揭示出一个较小的测试团队可能无法发现的隐晦错误。
Release candidate
发行候选版(RC),也被称为“银色版本”,是具备成为稳定产品的潜力的 beta 版本,除非出现重大错误,否则准备好发布。在产品稳定化的这个阶段,所有的产品特性都已经经过了一个或多个 beta 周期的设计、编码和测试,并且没有已知的不能被解决的 bug。当开发团队同意不会再添加全新的源代码时,发行版被称为代码完成。仍然可能会对代码进行修改以修复缺陷、修改文档和数据文件以及对测试用例或实用程序进行外围代码的更改。如果私下选择了 Beta 测试人员,他们通常会被认为是使用了发行候选版作为完成产品。Beta 测试是在客户的位置或客户的位置进行的,以从用户的角度测试软件。
Stable release
稳定版又称为生产版本,是通过所有验证和测试阶段的最后一个发行候选版(RC)。剩余的错误被认为是可以接受的。该版本用于生产环境。
有些软件产品(例如Linux发行版)也有长期支持(LTS)版本,这些版本基于已经经过测试的完整版本,只接收安全更新。这使得开发人员可以更多地分配时间进行产品开发,而不是更新代码或由于过时的假设而发现并修复新引入的错误。
Release
一旦发布,软件通常被称为“稳定版”。正式术语通常取决于发布的方式:物理媒体、在线发布或网络应用程序。
扩展知识
发布到制造(RTM)
“发布到制造”(RTM)是一个术语,用于指软件产品准备好交付。这个版本可能已经数字签名,使最终用户能够验证软件购买的完整性和真实性。被称为“金主”或GM的RTM版本副本将被大量复制或复制到光盘中(如果适用)。这个术语取自音频录制行业,特别是母带制作的过程。RTM是一般可用性(GA)之前的阶段,当产品发布给公众时。黄金主版本(GM)通常是开发者在测试阶段的最终版本。对于iOS来说,这通常是一个重大版本发布之前的最终版本,但也有一些例外情况。
RTM通常在某些零售大规模生产软件环境中使用,而不是商业或政府生产和分发的专门软件生产或项目,其中软件作为相关计算机硬件销售的一部分出售,并且通常最终将与相关硬件一起在零售商店以大规模/公共的方式销售,以表明该软件已经达到了定义的质量水平,并且准备好进行大规模的零售分发。在其他情况下,“RTM”可能意味着软件已被交付或发布给客户或用户,以进行安装或分发到相关硬件终端用户计算机或机器。该术语并不定义交付机制或交付数量
一般可用性 (GA)
“General Availability(GA)”是指产品经过必要的商业化活动后,可以购买的营销阶段,但具体取决于语言、地区以及电子版和媒体版的可用性[14]。商业化活动可能包括安全和合规性测试,以及本地化和全球范围内的可用性。在RTM和GA之间的时间可能需要数天到数月,以完成GA所需的所有商业化活动。在这个阶段,软件已经“上线”。
“Release to the Web(RTW)”或“Web Release”是一种利用互联网进行软件发布和分发的方式。制造商不会在此类发布机制中生产任何物理媒介。随着互联网使用的增加,Web发布变得越来越普遍。
在软件的支持生命周期内,有时会对其进行服务更新、补丁或服务包,有时也称为“中间版本”或“维护版本”(MR)。例如,微软发布了三个针对Windows XP 32位版本的主要服务包和两个针对64位版本的服务包。这些服务更新包含了一系列的更新、修复和增强功能,以单个可安装的包的形式提供。它们也可能实现新功能。有些软件发布时就预期会有定期支持。一般需要长时间支持的软件类型包括反病毒套件和大型多人在线游戏。以Windows XP为例,微软在延长支持结束后的五年内提供了付费更新。这意味着支持在2019年4月8日结束。
当软件不再销售或受到支持时,该产品被认为已经到达了“生命周期结束”,被停止、退役、废弃、遗弃或过时,但用户的忠诚度可能会在其平台过时后仍然存在,例如Common Desktop Environment和Sinclair ZX Spectrum。
在生命周期结束日期之后,开发者通常不会实现任何新功能,修复现有的缺陷、错误或漏洞(无论在该日期之前是否已知),或为该产品提供任何支持。如果开发者愿意,他们可以发布源代码,以便平台能够再次生存并由志愿者维护;如果不愿意,则在后期它可能会变成abandonware后被逆向工程。
历史
“Alpha/Beta”测试术语的使用起源于IBM。类似的术语在至少20世纪50年代(甚至更早)被涉及IBM的人所使用。其中,“A”测试是在公开发布前对新产品进行验证。“B”测试是在发布产品进行制造之前对其进行验证。“C”测试是产品一般可用性之前的最终测试。随着软件成为IBM产品的重要组成部分,alpha测试术语用于表示发布前的测试,而beta测试则用于显示产品准备就绪以供一般可用性。IBM在20世纪60年代放弃了alpha/beta测试术语,但当时它已经受到相当广泛的关注。在IBM中,使用“beta测试”来指代客户测试是不常见的,而是使用“现场测试”这个术语。
随后出现了重大的公共beta版本,早期的客户已经购买了WordVision文字处理器的“先驱版”,售价为49.95美元。1984年,Stephen Manes写道,“在一个杰出的市场营销策略中,Bruce and James Program Publishers成功地让人们为测试该产品而付费。”2000年9月,苹果公司发布了一款带盒装的Mac OS X Public Beta操作系统。Microsoft在2005年9月至2006年5月之间发布了Windows Vista的社区技术预览版(CTP),从2009年到2011年,Minecraft处于公共beta测试状态。
2005年2月,ZDNet发表了一篇关于beta版本经常停留多年并被用作生产级别的现象的文章。例如,Gmail和Google新闻长时间处于beta状态,尽管被广泛使用; Google News在2006年1月离开beta,随后于2009年7月离开beta的Google应用程序(现已更名为Google Workspace),包括Gmail。自Windows 8推出以来,Microsoft称预发布软件为“预览版”,而不是beta版。2014年启动的Windows Insider计划发布的所有预发布版本均称为“Insider预览版”。beta版本也可能表示类似于发布候选版、限时演示或营销技术的形式。
参考
https://en.wikipedia.org/wiki/Application_lifecycle_management
https://en.wikipedia.org/wiki/Application-release_automation
https://en.wikipedia.org/wiki/Application_retirement
https://en.wikipedia.org/wiki/Merge_window
https://en.wikipedia.org/wiki/Release_engineering
https://en.wikipedia.org/wiki/Release_management
https://en.wikipedia.org/wiki/Rolling_release
https://en.wikipedia.org/wiki/Software_deployment
https://en.wikipedia.org/wiki/Software_versioning
其他
LTS(Long-Term Support)版本指的是长期支持版本,是一种特殊类型的软件版本。它通常在发布后比较稳定,可以获得长期的技术支持和更新,以确保其持续运行的可靠性和安全性。LTS版本适合企业、组织和个人长期使用和维护,而非只是短期尝试。常见的LTS版本包括Ubuntu LTS版、CentOS LTS版、Debian Stable版等
Patch(补丁)版本指的是在软件的主要版本发布之后,针对当前版本中出现的问题和漏洞所发布的修补程序版本。通常会修复一些重要的错误和安全问题,以提高软件的稳定性和安全性。Patch版本是对先前发布的版本进行bug修复和性能改进,同时保持与先前发布版本的兼容性。Patch版本通常是非常重要的,因为它们可以帮助确保软件在使用过程中保持稳定并没有安全漏洞。一些软件会定期发布patch版本,使其保持在最新和最稳定的状态
Final版本,通常指的是软件开发的最后一个稳定版本。在软件开发中,测试人员和开发人员会对软件进行多次测试、反复修改,直到软件达到预期的功能和稳定性后,才会发布最终版本。因此,Final版本通常具有较高的可信度和稳定性。在发布Final版本之后,软件也会持续接受bug修复和更新等工作。最终版本也可能是一个重要的版本号里程碑,标志着软件的正式发布
TECH版本这个概念没有一个固定的定义,可能在不同的场景或者软件中有不同的含义。一般来说,TECH版本可能指的是处于技术测试阶段的版本或者开发版。这种版本通常用于内部或有限的测试、调试和验证,还没有完全测试和排除所有问题,可能存在一些未知的缺陷和功能尚未实现。在软件的开发过程中,可能有多个TECH版本,每个版本都会逐渐完善和改进,最终成为正式发布的版本