一、版本发布流程
1、增加/变更功能流程
涉及人员范围: 产品经理、原型设计师(需要的话)、研发工程师(服务端、终端、硬件、结构)、测试工程师。
动作:
- 产品经理召集所有涉及人员进行需求宣讲,完成最终功能需求确认,同时确认
release版本号
。 - 原型设计师根据最终需求设计原型图(需要的话)。
- 产品经理确认原型图(需要的话)。
- 产品经理组织研发、测试进行沟通协调周期预估、评估影响范围以及提取风险点。
输出: 最终功能需求文档(尽量具体,最好有业务流程图之类的)、原型图(需要的话)、研发和测试周期预估表、风险点报告、release版本号
。
涉及人员范围: 研发工程师。
动作:
- 根据
release版本号
创建对应的分支,分支名
=develop/
+release版本号
,例如:develop/3.0.0
。 - 在新建的分支上进行开发并自测,有条件的话根据测试编写的用例进行自测。
- 自测没问题,在最新的分支提交上打alpha版本的tag,并打包上传到ftp服务器,告知测试工程师去获取测试。注:
tag名
=alpha版本号
,例如:3.0.0.118-alpha
。包名
=项目名_
(选填) +tag名
,例如:JH_3.0.0.118-alpha
,如果打出的包是debug调试版,则包名需要加上标识debug
,例如:JH_3.0.0.118-alpha-debug
。
输出: alpha版本的包、CHANGELOG.md。
涉及人员范围: 测试工程师、产品经理、研发工程师。
动作:
- 根据需求文档编写测试用例(前置条件、操作步骤、期望结果)。此步可以和第(2)点同步进行。
- 编写相关自动化测试脚本进行挂机测试。此步可以和第(2)点同步进行。
- 从ftp服务器获取研发工程师所指定的包进行测试,过程中发现问题,有条件时保留现场,让研发人员进行分析,有本地日志记录时,及时抓取日志,并确定问题出现时间范围。所发现的问题需要同样告知产品经理。
- 最后整理测试报告,并和产品经理沟通确认每个问题的严重等级:P0、P1、P2、P3,并把缺陷问题指给具体的某个研发工程师(不确定时指给研发经理)。
- 研发工程师根据严重等级依次解决处理缺陷。
- 所有缺陷自测没问题,在最新的分支提交上打alpha版本的tag,输出对应的包上传到ftp服务器,告知测试工程师获取测试。
- 在beta测试前,至少需要进行3轮的alpha
输出: 测试用例、测试报告、缺陷问题链接、alpha版本的包。
涉及人员范围: 研发工程师、测试工程师。
动作:
- 对测试所指派的缺陷问题,根据严重等级依次处理。
- 所有缺陷自测没问题,在最新的分支提交上打alpha版本的tag,输出对应的包上传到ftp服务器,告知测试工程师获取测试,重复第(3)点。
- 在beta测试前,至少需要进行3轮的alpha测试。
- 当最后一轮alpha测试没问题时,在最新的分支提交上打beta版本的tag,并打包上传到ftp服务器,提供给外部测试。注:
tag名
=beta版本号
,例如:3.0.0.214-beta
。包名
=项目名_
(选填) +tag名
,例如:JH_3.0.0.214-beta
。
输出: beta版本的包。
涉及人员范围: 产品经理、研发工程师、测试工程师、其他人员。
动作:
- 此测试面向的是非专业的测试人员,所以主要进行的是发散性的测试。
- 收集过程中的缺陷以及体验问题,产品经理组织研发、测试工程师进行沟通,分析缺陷和体验的严重程度,以及是否在当前版本进行修改,或是遗留到下个版本。
- 对于必改的,研发工程师进行修复,并重复alpha测试流程。
- beta测试一般1到2轮。
输出: 测试报告、缺陷问题链接、beta版本的包、CHANGELOG.md。
涉及人员范围: 研发工程师、测试工程师、产品经理。
动作:
- 当beta测试以及相关已知缺陷都已修复后,经产品经理、测试经理、研发经理确认,即可打发行版的包(原则上由测试进行发包)。
- 把开发分支,例如:
develop/3.0.0
,合入到master主分支(同时删除开发分支),并在合入后的最新提交上打release版本的tag(进行冻结),输出对应的包上传到ftp服务器,提供给工厂烧写到设备中。注:tag名
=release版本号
,例如:3.0.0
。包名
=项目名_
(选填) +tag名
,例如:JH_3.0.0
。
输出: release版本的包、CHANGELOG.md。
禁止: 烧写出厂设备时只能获取发行版的包,严禁使用临时编译出来或者其他版本的包。
2、问题修复流程
涉及人员范围: 产品经理、研发工程师、测试工程师。
动作:
- 产品经理组织研发工程师、测试工程师进行缺陷分析,确认其严重等级:P0、P1、P2、P3。确认哪些缺陷需要在此次版本修改,同时确认
release版本号
。 - 产品经理组织研发、测试进行沟通协调周期预估、评估影响范围以及提取风险点。
输出: 需要修复的缺陷清单、风险点报告、release版本号
、缺陷问题链接。
涉及人员范围: 研发工程师。
动作:
- 根据
release版本号
创建对应的分支,分支名
=hotfix/
+release版本号
+_问题描述
,例如:hotfix/3.0.1_login_crash
。 - 对所指派的缺陷问题,根据严重等级依次处理。
- 所有缺陷自测没问题(不引入新问题),在最新的分支提交上打alpha版本的tag,输出对应的包上传到ftp服务器,告知测试工程师获取测试。
- 自测没问题,在最新的分支提交上打alpha版本的tag,并打包上传到ftp服务器,告知测试工程师去获取测试。注:
tag名
=alpha版本号
,例如:3.0.1.322-alpha
。包名
=项目名_
(选填) +tag名
,例如:JH_3.0.1.322-alpha
,如果打出的包是debug调试版,则包名需要加上标识debug
,例如:JH_3.0.1.322-alpha-debug
输出: alpha版本的包、CHANGELOG.md。
涉及人员范围: 测试工程师、研发工程师、产品经理。
动作:
- 针对缺陷问题,编写测试用例(如果之前没有的话)。此步可以和第(2)点同步进行。
- 从ftp服务器获取对应的alpha版本的包,对缺陷进行测试,并确认是否已修复,同时确认是否有新引入问题。
- 最后整理测试报告,并和产品经理、研发经理确认每个缺陷的修复情况。
- 当指定的缺陷都已修复并测试后,还需要进行至少1轮用例测试,避免引入新的bug。
- 当最后一轮alpha测试没问题时,产品经理组织研发经理、测试经理评估是否需要进行belta测试,若需要则在最新的分支提交上打beta版本的tag,并打包上传到ftp服务器,提供给外部测试。注:
tag名
=beta版本号
,例如:3.0.1.322-beta
。包名
=项目名_
(选填) +tag名
,例如:JH_3.0.1.322-beta
。
输出: 测试用例、beta版本的包、测试报告。
涉及人员范围: 研发工程师、测试工程师、产品经理。
动作:
- 当beta测试(如果有的话)以及相关已知缺陷都已修复后,产品经理、测试经理、研发经理确认,即可打发行版的包(原则上由测试进行发包)。
- 把修复分支,例如:
hotfix/3.0.1_login_crash
,合入到master主分支(同时删除开发分支),并在合入后的最新提交上打release版本的tag(进行冻结),输出对应的包上传到ftp服务器,提供给工厂烧写到设备中。注:tag名
=release版本号
,例如:3.0.1
。包名
=项目名_
(选填) +tag名
,例如:JH_3.0.1
,如果打出的包要非debug调试版。
输出: release版本的包、CHANGELOG.md。
禁止: 烧写出厂设备时只能获取发行版的包,严禁使用临时编译出来或者其他版本的包。
二、CHANGELOG格式
1、CHANGELOG.md
# 版本说明 * 版本:3.0.0.118-alpha * 发布时间:2021-4-20 * 发布人:张三 * 配合服务端版本:1.1.11.0 * 配合Web版本:1.1.13.5 * 依赖库: * boost 1.76.0 * qt 5.12.0 * openssl 1.1.1k * curl 7.76.1 # 更新内容 ## 新增 1. aaaaa 2. bbbbb 3. ccccc ## 修复 1. aaaaa 2. bbbbb 3. ccccc ## 优化 1. aaaaa 2. bbbbb 3. ccccc # 测试要点 1. aaaaa 2. bbbbb 3. ccccc
# 版本说明 * 版本:3.0.0 * 发布时间:2021-4-20 * 发布人:张三 * 配合服务端版本:1.1.11.0 * 配合Web版本:1.1.13.5 * 依赖库: * boost 1.76.0 * qt 5.12.0 * openssl 1.1.1k * curl 7.76.1 # 更新内容 ## 新增 1. aaaaa 2. bbbbb 3. ccccc ## 修复 1. aaaaa 2. bbbbb 3. ccccc ## 优化 1. aaaaa 2. bbbbb 3. ccccc
2、CHANGELOG.html
文档编码使用ANSI
,不然中文字符在web上会显示乱码
<html> <h1>主线稳定版本</h1> <h3>1.0.3.678(2023-02-16 20:19)</h3> <ul> <li>【修复】aaaaa</li> <li>【优化】bbbbb</li> </ul> <h3>1.0.2.345(2023-01-28 09:45)</h3> <ul> <li>【修复】aaaaa</li> <li>【优化】bbbbb</li> </ul> <h3>1.0.1.100(2023-01-21 14:34)</h3> <ul> <li>【新增】aaaaa</li> <li>【修复】bbbbb</li> <li>【优化】ccccc</li> </ul> </html>