不灭的焱

革命尚未成功,同志仍须努力下载JDK17

作者:Albert.Wen  添加时间:2023-11-01 16:37:06  修改时间:2024-04-15 12:55:23  分类:团队/项目管理  编辑

一、版本发布流程

1、增加/变更功能流程

(1)需求确认

涉及人员范围: 产品经理、原型设计师(需要的话)、研发工程师(服务端、终端、硬件、结构)、测试工程师。
动作:

  • 产品经理召集所有涉及人员进行需求宣讲,完成最终功能需求确认,同时确认release版本号
  • 原型设计师根据最终需求设计原型图(需要的话)。
  • 产品经理确认原型图(需要的话)。
  • 产品经理组织研发、测试进行沟通协调周期预估、评估影响范围以及提取风险点。

输出: 最终功能需求文档(尽量具体,最好有业务流程图之类的)、原型图(需要的话)、研发和测试周期预估表、风险点报告、release版本号

(2)产品开发

涉及人员范围: 研发工程师。
动作:

  • 根据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。

(3)alpha测试

涉及人员范围: 测试工程师、产品经理、研发工程师。
动作:

  • 根据需求文档编写测试用例(前置条件、操作步骤、期望结果)。此步可以和第(2)点同步进行。
  • 编写相关自动化测试脚本进行挂机测试。此步可以和第(2)点同步进行。
  • 从ftp服务器获取研发工程师所指定的包进行测试,过程中发现问题,有条件时保留现场,让研发人员进行分析,有本地日志记录时,及时抓取日志,并确定问题出现时间范围。所发现的问题需要同样告知产品经理。
  • 最后整理测试报告,并和产品经理沟通确认每个问题的严重等级:P0、P1、P2、P3,并把缺陷问题指给具体的某个研发工程师(不确定时指给研发经理)。
  • 研发工程师根据严重等级依次解决处理缺陷。
  • 所有缺陷自测没问题,在最新的分支提交上打alpha版本的tag,输出对应的包上传到ftp服务器,告知测试工程师获取测试。
  • 在beta测试前,至少需要进行3轮的alpha

输出: 测试用例、测试报告、缺陷问题链接、alpha版本的包。

(4)问题修复

涉及人员范围: 研发工程师、测试工程师。
动作:

  • 对测试所指派的缺陷问题,根据严重等级依次处理。
  • 所有缺陷自测没问题,在最新的分支提交上打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版本的包。

(5)beta测试

涉及人员范围: 产品经理、研发工程师、测试工程师、其他人员。
动作:

  • 此测试面向的是非专业的测试人员,所以主要进行的是发散性的测试。
  • 收集过程中的缺陷以及体验问题,产品经理组织研发、测试工程师进行沟通,分析缺陷和体验的严重程度,以及是否在当前版本进行修改,或是遗留到下个版本。
  • 对于必改的,研发工程师进行修复,并重复alpha测试流程。
  • beta测试一般1到2轮。

输出: 测试报告、缺陷问题链接、beta版本的包、CHANGELOG.md。

(6)版本发布

涉及人员范围: 研发工程师、测试工程师、产品经理。
动作:

  • 当beta测试以及相关已知缺陷都已修复后,经产品经理、测试经理、研发经理确认,即可打发行版的包(原则上由测试进行发包)。
  • 把开发分支,例如:develop/3.0.0,合入到master主分支(同时删除开发分支),并在合入后的最新提交上打release版本的tag(进行冻结),输出对应的包上传到ftp服务器,提供给工厂烧写到设备中。注:
    • tag名 = release版本号,例如:3.0.0
    • 包名 = 项目名_(选填) + tag名,例如:JH_3.0.0

输出: release版本的包、CHANGELOG.md。
禁止: 烧写出厂设备时只能获取发行版的包,严禁使用临时编译出来或者其他版本的包。

2、问题修复流程

(1)问题确认

涉及人员范围: 产品经理、研发工程师、测试工程师。
动作:

  • 产品经理组织研发工程师、测试工程师进行缺陷分析,确认其严重等级:P0、P1、P2、P3。确认哪些缺陷需要在此次版本修改,同时确认release版本号
  • 产品经理组织研发、测试进行沟通协调周期预估、评估影响范围以及提取风险点。

输出: 需要修复的缺陷清单、风险点报告、release版本号、缺陷问题链接。

(2)问题修复

涉及人员范围: 研发工程师。
动作:

  • 根据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。

(3)alpha测试

涉及人员范围: 测试工程师、研发工程师、产品经理。
动作:

  • 针对缺陷问题,编写测试用例(如果之前没有的话)。此步可以和第(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版本的包、测试报告。

(4)版本发布

涉及人员范围: 研发工程师、测试工程师、产品经理。
动作:

  • 当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

(1)alpha/beta版本

# 版本说明
* 版本: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

(2)release版本

# 版本说明
* 版本: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>