服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

【第2922期】对于质量保障,前端职能该做些什么?

日期: 来源:前端早读课收集编辑:严选技术

前言

各公司各项目的流程怎么做才比较有意思。今日前端早读课文章由 @严选技术分享,公号:严选技术产品团队授权。

正文从这开始~~

对于前端项目交付的质量,各团队往往会建设众多的交付标准,希望以此来约束项目的开发,从而保障最终的交付物质量。

1. 背景

对于前端项目交付的质量,各团队往往会建设众多的交付标准,希望以此来约束项目的开发,从而保障最终的交付物质量。

【第2889期】技术人如何做好业务?

严选也不例外,于先前制定了前端项目验收标准,但在实行期间,遇到以下问题:

  • 前端团队构成复杂且业务线众多,并且存在较多的项目外包,人员质量参差不齐。

  • 指标化的交付标准靠规范无法进一步的提升,且指标的维持需要依靠于人为把握,无法严格控制到位。

为保障前端项目验收标准在业务中的落地,从而保证前端项目的在线质量,计划从以下两个手段出发:

  • 工具化:提供各类检测工具,用于交付物的检测(如性能检测工具、错误检测工具、容灾检测工具等)。

  • 流程化:穿插到前端的核心研发流程中,实现通过、告警、阻断三种策略,进行自动化验收。

2. 分析

重新审视整个前端的项目周期,前端团队内一般会建设以下的质量保障体系:

1、需求评审

  • 需求前准备,获取需求链接,需求稿等信息

  • 项目负责人必须参会,明确需求范围和需求内容

2、技术方案阶段

  • 依据《前端技术方案模板》输出前端技术方案

3、项目开发阶段

  • 前端体系知识库

  • 本地开发工程体系

4、项目提测、测试阶段

  • review 机制

5、项目发布

  • 线上环境监控

可以看到主要的交付物质量保障是在本地开发工程体系和 review 机制中,而 review 机制是相对脆弱、不可靠的,我们追求使用流程 / 工具化的方式来替代掉这部分,新的质量保障体系如下:

1、需求评审

  • 需求前准备,获取需求链接,需求稿等信息

  • 项目负责人必须参会,明确需求范围和需求内容

2、技术方案阶段

  • 依据《前端技术方案模板》输出前端技术方案

3、项目开发阶段

  • 前端体系知识库

  • 本地开发工程体系 -> 前端自动化测试工具 -> 关联提测卡点

4、项目提测、测试阶段

  • 前端技术方案 -> 关联提测卡点

  • 前端自动化测试工具

5、项目发布

  • 前端自动化测试工具 -> 关联发布卡点

  • 前端自动化测试工具 - 巡检

  • 线上环境监控

因此体系的重点在于前端自动化测试工具和 devOps 流程关联这两个事项上。

【第2669期】前端开发中的流程自动化与提效实践

2.1 前端自动化测试工具

有句话说的好,要想改进它,必须度量它。因此测试工具的核心就是将相关的检查项指标化,由具体的数值来判定交付物是否合格。

根据测试的内容不同,这里可以分为两类:

  • 针对工程代码的静态检查:围绕的是代码本身的静态测试

  • 针对部署产物的检查:围绕的是部署后的页面内容测试

2.1.1 针对工程代码的静态检查

一般前端工程中都会使用 eslint、commitlint、commentslint 等工具进行检查,这类的工具一般规则都比较统一,常常内置在工程中。而对于业务性质的代码检查,这部分就不够适用了,比如严选 B 端工程中 sharkrForm 的覆盖率检查,是基于静态代码的检查,可以结合项目本身打包时的 AST 期间,扩展相关插件完成。

2.1.2 针对部署产物的检查

代码只是交付物的中间产物,最终的交付物往往都是页面,因此对于页面的检查是非常必要的。

对于业务逻辑功能本身,我们全权依托并相信 QA 同学,但对于页面本身的质量,前端自动化测试工具可以做不限于以下内容的检查:

  • 性能测试

  • 错误检测

  • 容灾(白屏)检测

对于页面的访问测试,通过 puppeteer 工具可以非常方便的来完成,其中不同的用户身份访问页面,这部分的能力建设值得关注。

2.1.3 性能测试

性能这个事项之前文章有过介绍,感兴趣的同学可以了解下《如何从零开始做性能优化》,性能检测的核心还是在于指标化和量化,这里采用 FMP 的最大值和均值来作为考核项。

2.1.4 错误检测

大家往往聚焦在页面内容展示的检查,往往会忽略 console 中的错误,而这类错误有些时候是不可容忍的。

错误可以简单的分为 2 个大类:语法错误和资源错误,语法错误我们可以通过代码注入监听,对于资源错误则可以采用 puppeteer 的 response 监听就可完成。

【第2755期】 一个检测 JS 内存泄漏的神器 - MemLab

2.1.5 容灾(白屏)检测

在大流量情况下,服务出现限流或者异常时,前端页面展示白屏是不能接受的,因此前端自动化检测工具集成了自动化的容灾能力测试。

功能的核心可以简单的归纳为以下三个点:

  • 自动化获取页面内的请求列表;

  • 创建每个请求异常(拦截 / 异常响应码)的测试访问用例

  • 检测每个用例后页面是否白屏

2.2 devOps 流程关联

建设完工具能力之后,就应该关联到 devOps 流程中,在提测和发布两大卡点中,实现通过、告警、阻断三种策略,进行自动化验收。

2.2.1 提测卡点

对于工程代码的静态检查,我们可以在 CI 阶段进行工具测试,同时上报检查结果,并在项目全流程管理平台中,在项目的提测卡点关联此检查项,对于未通过工具检查的项目拒绝提测。

2.2.2 发布卡点

对于部署产物的检查,我们需要找到制品部署完成后的节点(注意:这里不是指 git 中 pipeline 完成的时间点)。

通常在我们的 devOps 中,会有以下两个规则:

  • 测试制品部署测试环境时,是自动的;

  • 在部署线上制品到线上环境前,会将线上制品部署到测试环境进行回归验证,验证完成后通过手动的方式进行线上发布;

我们可以在规则二中,在线上制品部署测试环境时,进行部署产物的自动化检查,在线上发布时进行卡点,对于未通过工具检查的项目拒绝线上发布。

ps:发布卡点往往比较靠后,在测试制品在测试环境部署后,虽然不能进行测试环境的发布卡点(因为是自动完成),但也可以执行部署产物的自动化检查,通过告警的方式,让对应开发提前感知,并进行相关问题的修复。

3. 总结

以上,我们可以将部分人工的操作以工具化、流程化的方式来替换,聚焦在工具能力的建设,从而形成一套更高效的项目验收流程。

3.1 严选中的最佳实践

在严选业务中,对于常规业务的验收均能采用上述流程,对于有差异的页面搭建体系中的页面发布流程也提供了解决方案。

3.1.1 特殊场景兼容

3.1.1.1 页面搭建体系中的页面搭建

页面由平台搭建生成,由运营 / BU / 产品等角色搭建,无完整的 devOps 流程,这类页面则是通过自动巡检的方式,由定时任务触发,对最新创建的页面执行自动化检查,并将结果直接同步搭建业务大群,方便对应业务快速发现问题并解决。

3.1.1.2 页面搭建体系中的页面开发

对于页面搭建体系中的页面开发流程,底层沿用页面搭建发布流程,不同于一般流程,线上的发布也是自动的,不同的点在于并不会直接对当前产物进行投放,而是通过投放平台,因此可以在投放平台添加投放卡点进行拦截验证。

3.1.2 新的验收标准

有了一套更高效的项目验收流程后,对于外包类的项目,我们可以建设更指标化的验收标准,通过对每个项目自动打分的方式,用来评判更好地评判项目的交付物质量,从而对这次外包项目进行奖惩。

可参考的验收标准如下(采用扣分制,默认 100 分):

1、需求评审

  • 项目负责人必须到场【考核,签到情况检查】

2、技术方案阶段

  • 项目技术方案输出【考核,方案内容自动检查】

3、项目开发阶段

  • 代码规范(eslint、commitlint、commentslint 等)

  • 页面交互【可申请额外加分】

4、项目提测、测试阶段

  • 冒烟通过率【考核】

  • 提测时间【考核,自动化测试工具已关联卡点,可放大此项】

5、项目发布

  • 上线时间【考核,自动化测试工具已关联卡点,可放大此项】

4. 说在最后

对于项目外包,我们不能简单的将项目完全托付给外包团队,项目交付物的质量仍然是团队应该重点关注的内容,最终的质量应该是由团队进行负责。

当然,对于和外包团队边界处理中,更建议团队前期去建设更自动更完善的验收标准,提升最终交付物的质量,以减少不必要的精力和资源消耗。

5. 参考资料
  • puppeteer doc:https://pptr.dev/api/puppeteer.puppeteernode

  • 如何做前端异常监控:https://www.zhihu.com/question/29953354

  • 聊聊前端监控 —— 错误监控篇:https://juejin.cn/post/6867773840768909326

  • Eslint + Prettier + Husky + Commitlint+ Lint-staged 规范前端工程代码规范:https://juejin.cn/post/7038143752036155428

关于本文
作者:@严选技术
原文:https://mp.weixin.qq.com/s/jUZ0JODm4m49sY8tDZPGCg

这期前端早读课
对你有帮助,帮” 赞 “一下,
期待下一期,帮” 在看” 一下 。

相关阅读

  • 库尔勒市第二水源地建设项目(一期)年底试运营

  • 石榴云/新疆日报讯(记者 杜建辉 通讯员 陈新报道)4月20日,记者从中铁十四局集团有限公司第四工程有限公司了解到,库尔勒市第二水源地建设项目(一期)主体建筑已全部完工,目前正在进
  • 智能建造打造昌平“第一高楼”

  • 近日,北京保利未来科技城项目A5主楼全面封顶,标志着项目进入建设“加速跑”的冲刺阶段。据介绍,该项目不仅是昌平区“第一高楼”,而且涵盖商务楼、办公楼、裙房,其外部呈“天空之
  • 刘世庆主持召开书记专题会

  • 4月20日,吕梁市人大常委会副主任、孝义市委书记刘世庆主持召开书记专题会议,研究汾青2万吨原酒酿造基地项目有关事宜。市委副书记、市长郭清智出席。会上,高阳农业园区等部门及
  • 年内竣工!副中心“森林书苑”天花板亮灯了

  • 北京城市副中心三大建筑之一,被誉为“森林书苑”的图书馆项目,目前已为3000平方米大空间天花吊顶安装上了灯带和灯筒。银杏叶般的吊顶叶片,搭配上白色的灯光,非常有艺术气息。
  • 密码项目进入快速增长期丨本周预告类项目

  • 数说安全CSRadar平台最近七天(4.15-4.21)跟踪到387个网络安全预告类项目,同比上一期减少7个。图1,本周期内每天预告类项目数量最近七天预告和需求公示占比增加。图2,本周期内预告
  • 安全牛课堂丨网络安全项目的奖金激励方案设计

  • 项目奖金激励方案1、目的以项目管理方法激励公司员工聚焦项目,引导和调动项目成员的工作积极性,达到员工和公司共同成长的目的。2、范围适用于参与项目的销售人员、研发人员、
  • 龙湖全国天街广告创意鉴赏

  • 关注「地产全案」公众号,每天收看全国顶尖创意作品案例~特别鸣谢:龙湖全国系列天街 各类海报参考大全 4月节日 | 愚人节 清明节 谷雨 地球日 读书日阶段参考 |

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四
  • 美国对华2000亿关税清单,到底影响有多大?

  • 1 今天A股大跌,上证最大跌幅超过2%。直接导火索是美国证实计划对华2000亿美元产品加征25%关税。 听起来,2000亿美元数目巨大,我们来算笔账。 2000亿美元,按现在人民币汇率

最新文章

  • 【经济Ke】不止宝马MINI!这条新闻更值得关注

  • 本栏目由侠客岛与《中国经济周刊》联合出品这是经济Ke的第94篇文章眼下,2023上海车展正火。除了意外上热搜的宝马MINI新闻,外媒还惊呼:中国车迎来高光时刻!比如《纽约时报》说,以
  • 北大法宝国际影响力再攀新高峰

  • ⊙ 本文长约4000字,阅读需时10分钟 导语被誉为“世界大学之母”的University of Bologna (意大利博洛尼亚大学)正式引入“北大法宝”数据库,成为了北大法宝众多著名境外用户之
  • 基于Vue3 的可视化编辑器Everright-formEditor开源

  • 前言把技术转换成产品的能力,真好。本文由 @刘海峰投稿分享。正文从这开始~~编辑器介绍先来个图,有个初步的认识抱歉,原谅图有点模糊哈github: https://github.com/Liberty-liu/E
  • 【第2922期】对于质量保障,前端职能该做些什么?

  • 前言各公司各项目的流程怎么做才比较有意思。今日前端早读课文章由 @严选技术分享,公号:严选技术产品团队授权。正文从这开始~~对于前端项目交付的质量,各团队往往会建设众多的交