版本发布流程

2023-10-27

一、版本发布流程

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>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

版本发布流程 的相关文章

  • Elasticsearch基本概念及CRUD常用操作

    Elasticsearch基本概念及CRUD常用操作 一 介绍 二 REST 风格 三 索引CRUD 3 1 创建索引 3 2 查询索引 3 3 删除索引 四 文档CRUD 4 1 添加文档 4 1 1 普通添加 随机ID 4 1 2 普通
  • Mybatis学习笔记-Mabatis缓存

    Mybatis学习笔记 Mybatis缓存 缓存就是内存中的数据 常常来自对数据库查询结果的保存 使用缓存 我们可以避免频繁的与数据库进行交互 进而提高响应速度 MyBatis提供了对缓存的支持 分为一级缓存和二级缓存 可以通过一下图解来理
  • 解决github访问不了的方法

    1 打开网站http tool chinaz com dns 在A类型的查询中输入 github com 找到最快访问的ip地址 并复制下来 2 修改系统文件的hosts文件 进入C Windows System32 drivers etc
  • 董事聘任书

    EX 10 38 4 future s1a3 ex1038 htm DIRECTOR OFFER LETTER Exhibit 10 38 The Future Education Group Inc Room 501 Gaohelanfe

随机推荐

  • 前端实习面试题(自己当笔记用)

    一 CSS 01 Flex布局 display flex 在父元素设置 子元素受弹性盒影响 默认排成一行 如果超出一行 按比例压缩 容器属性 1 flex direction属性 取值 row 默认 row reverse column c
  • pycharm导入未安装的第三方库,无错误提示,急需

    pycharm导入未安装的第三方库 无错误提示 急需 如下图所示 第三方库pandas未安装 但是pycharm没有错误 如下图所示 第三方库pandas未安装 但是pycharm没有错误 pandas 并未i安装 pandas下面不是应该
  • Python基础第二话:列表+元组+字典+集合,学基础还得是这....

    Python基础知识第二话 Python基础知识第一话 这一章的知识紧接上一章 零基础的小伙伴可以从上 一章学起来 当然 你也可以收藏起来慢慢学习 学习是不可操之过急的啦 列表 Python学习交流Q群 906715085 print 创建
  • Gradle 详解

    原文地址 深入理解Android 一 Gradle详解 InfoQ 备用地址 Gradle史上最详细解析 AndroidM 博客园 以下内容为复制 粘贴 建议看原文 编者按 随着移动设备硬件能力的提升 Android 系统开放的特质开始显现
  • vue三种方式实现父子间通信

    当前有子组件Student和父组件App 如何让Student发送自己的学生名 App接收并显示 有三种方法 父传子 props
  • mysql 存储过程如何声明多个变量赋值_mysql存储过程:定义变量,赋值,判断,输出...

    1 定义变量 赋值 判断 输出 DROP PROCEDURE IF EXISTS proc first 如果proc first存在就删除 create procedure proc first 创建存储过程 begin 定义变量 DECL
  • Sql_Server中如何判断表中某列是否存在

    判断表AA中是否存在AA ID这一列 如果不存在 则新增 IF NOT EXISTS SELECT 1 FROM syscolumns INNER JOIN sysobjects ON sysobjects id syscolumns id
  • C++环形缓冲区

    环形缓冲区 ring buffer 也称作循环缓冲区 cyclic buffer 圆形队列 circular queue 圆形缓冲区 circular buffer 环形缓冲区并不是指物理意义上的一个首尾相连成 环 的缓冲区 而是逻辑意义上
  • 一文教你搞懂Go中栈操作

    LInux 进程在内存布局 多任务操作系统中的每个进程都在自己的内存沙盒中运行 在 32 位模式下 它总是 4GB 内存地址空间 内存分配是分配虚拟内存给进程 当进程真正访问某一虚拟内存地址时 操作系统通过触发缺页中断 在物理内存上分配一段
  • 开源进展

    作为一个友好的 功能丰富的区块链中间件平台 WeBASE一直致力于降低区块链开发者的研发门槛 提高区块链开发效率 如今 WeBASE v1 5 4来了 此次更新新增区块链应用实训课程案例集 以及管理台操作指引与设计说明 助力社区开发者更快捷
  • 详谈一下:Java中的基本类型变量(8种)与引用类型变量的区别

    对于Java语言中的基本类型 不知道各位老铁是否还能全能说出来 Java语言中的8种基本类型 byte short int long float double char bollen 上面8种Java语言中的基本类型 所对应的变量 就是基本
  • 全网最细,接口自动化测试-数据库操作与日志模块,一篇打通...

    目录 导读 前言 一 Python编程入门到精通 二 接口自动化项目实战 三 Web自动化项目实战 四 App自动化项目实战 五 一线大厂简历 六 测试开发DevOps体系 七 常用自动化测试工具 八 JMeter性能测试 九 总结 尾部小
  • NEC红外协议编码,38K红外遥控编码,红外遥控发射接收电路选型设计

    NEC为红外遥控最常用的编码 红外载波频率为38KHz 其协议小巧简单 非常适合家电设备的控制 其他的还有 Phillips RCA 的RC 5和RC 6 但那只是IR协议的少数 本篇博文参照国外博客或论坛资料并汇总 原链接可能需要翻墙 N
  • 微信小程序与服务器对称加解密,细说CryptoJs使用(微信小程序加密解密)

    前言 CryptoJs是google推出的一款前段解密类库 功能强大 包含很多的前段解密算法 一 google下载地址 二次开发版本 google原版地址 二 常用方法Testing websockets var key BOTWAVEE
  • 开源地震处理软件Seismic Unix(SU)安装

    Seismic Unix SU 是著名的开源地震处理软件 安装包可从以下链接下载 cwp su all 44R18 tar 1 解压 首先在 home usrname 路径下建一个安装文件夹 usrname代表自己的用户名 自己命名 比如c
  • MySQL中 数据库 和 表 的基操

    一 数据库 的操作 1 显示 数据库 2 创建 数据库 3 使用 数据库 4 删除 数据库 二 表 的操作 1 查看表结构 2 创建 表 3 删除 表 4 查看数据库中的表 三 常用的数据类型 一 数据库 的操作 1 显示 数据库 show
  • html css js 完整案例,html+css+js实例

    实例简介 用html css js做的一个简单小网页 可以作为初学者的参考资料 实例截图 核心代码 travel travel css css images 0 PNG 100 jpg 101 jpg 102 jpg 103 jpg 104
  • java语言的运算符

    目录 小白的疑惑 大白话运算符概念 运算符概念 运算符分类 特别注意 代码定天下 二元运算符 关系运算符代码 逻辑运算符 位运算符 拓展运算符 三目运算符 小白的疑惑 很多没接触编程的小伙伴都会顿感疑惑 啥是运算符 大白话运算符概念 小学算
  • VSCode 下载缓慢或者下载失败解决方案

    最近发现在VSCode官网上下载vscode十分缓慢 甚至经常断网或者是直接导致下载失败 我们可以使用国内镜像 让下载飞起来 附图 从官网上下载网速极其缓慢 我们将链接复制下来 黑框 https az764295 vo msecnd net
  • 版本发布流程

    文章目录 一 版本发布流程 1 增加 变更功能流程 1 需求确认 2 产品开发 3 alpha测试 4 问题修复 5 beta测试 6 版本发布 2 问题修复流程 1 问题确认 2 问题修复 3 alpha测试 4 版本发布 二 CHANG