从测试到发布的分类
持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第6天,点击查看活动详情
测试阶段
测试推荐:
在左边的图为传统测试金字塔:即越底层的测试粒度越细,就需要越多的数量去覆盖所有场景,越顶层的测试越能用少量的case覆盖大多数场景。
但是有一个软件开发中的常识:越早发现的缺陷解决成本越低 因为85%的缺陷是在开发阶段引入的,而如果要在上线之后修复他们,花费的成本可能是一开始就解决他们的数百倍,所以我们还是要尽可能早的发现bug,因此就需要进行充分的单元测试。
日常开发的应用简化为该模型:
由客户端将请求发送到网关,再由网关请求到后端服务器
在后端的服务中,由于不同版本需要在测试中有一个虚拟的环境概念(即用特点的设备通过某些设置,来请求到对应的后端服务器,从而达到测试对应后端服务器,从客户端到服务端的一整套体系称为环境)
在实际的工作中,我们一般至少需要三套环境: 功能环境是用于开发和测试新开发的功能的 集成环境是为了把不同的功能合并在一起测试 回归环境是为了验证新的功能对老功能没有影响 具体要根据你开发的应用采用的架构,这里只是一个最简化的模型
发布阶段
举一个例子:
- 当页面打不开时,使用chrome的开发者工具(F12)可以看到一个请求的返回状态是:net:: ERR_CONNECTION_REFUSED
- 使用curl检查接口发现api.juejin.cn解析到了 127.0.0.1
- 由此定位到是由于host文件绑定了域名解析到本地(绑定了一个错误的地址)
因此在定位问题中,一个请求就像一个链条,顺着链条一节一节的去推理和定位问题。
-
发布过程要做的事
-
各种发布方式
-
蛮力发布
-
金丝雀发布
-
滚动发布
-
蓝绿发布
-
红黑发布
-
实际情况
- 实际工作中,我们的发布使用的是滚动发布,发布的负责人需要关注滚动的粒度和时间,以及具体执行的进度因为这种方式对用户的体验最平滑,同时公司也有强大的流量控制能力,能够平滑的切换流星能够支持滚动
- 但是仍然有一些场景需要使用蓝绿发布
- 可能有些公司因为发布需要在用户低峰期进行,所以在那些公司发布的时候,往往都是在夜深人静的时候,这也就是程序员经常要晚上加班的很大一个原因
-

浙公网安备 33010602011771号