云信对外提供 PaaS 服务,产品涵盖 IM、音视频、直播点播、互动直播、白板、短信等,覆盖用户 10 亿 +,覆盖国家 196 个,覆盖地区 567 个。
ToB 和 ToC 业务差异
ToB 和 ToC 产品存在较大差异,ToB 产品面临的挑战主要有:常态化紧急、质量要求苛刻、定制化挑战。
质量挑战
2020 年前云信团队面临的具体问题主要有以下四点:
1. 质量流程标准不完善
-
质量流程标准不完善且无卡点
-
缺乏执行监督和结果度量
-
质效改进无着力点
2. 线上质量感知能力弱
-
严重依赖用户反馈
-
定位问题手段有限,排查效率低
3. 测试完备度和效率不高
-
e2e 测试为主,分层测试有限
-
功能为主,专项测试不系统手工测试为主,执行效率低
4. 团队抗风险能力差
-
业务和测试知识碎片化,新人上手难
-
产研人员变更时,质量隐患高
为了解决以上问题,需要持续建设适合云信业务的质量保障体系,下面就来介绍云信 PaaS 服务质量保障体系。
云信 PaaS 服务质量保障体系
为了更好提升产品质量、提高组织效能,云信团队在质量体系建设上不断探索。质量体系建设的目标是:制定质量流程标准,量化审计执行效果,引导监督改进,持续提升研发效能。
整个质量体系架构如图,质量体系建设包括:测试基建、业务支撑、质量效能度量与可视化。
质量体系如何建设以解决前面四个问题?可以归纳为 4 个字,也是我们质量保障体系建设的重点:立-建-拓-赋。
立-确立标准
针对第一个问题”质量流程标准不完善“,解决措施:确立质量标准和流程规范,量化指标项,可视化平台进行追踪。
1. 确定研发流程阶段,规范工具平台,规范各流程环节质量活动。
黄色字体是云信近年来去破和立的重点质量活动:
-
开发阶段,规范设计模板和提交规范;
-
代码阶段,规范 Code Review,并进行违规晾晒,核心功能模块推进 UT 落地;
-
提测阶段,抓冒烟和基线开发自测;
-
测试阶段:重视基线验收、三板斧一体化等稳定性验收;
-
发布阶段:重视业务指标监控、用户反馈闭环、故障应急响应机制。
2. 针对核心质量活动设立标准,做好阶段审核。
有了流程规范,还需要对核心质量活动设立标准,云信设立的质量红线和对应审核阶段如图所示:
质量红线执行的监督审核,最好是能够对接类似 Overmind 的效能平台,保障执行效果。
Overmind 是集团自研的项目管理平台,可以管理需求、任务、缺陷、环境等,使得开发和测试过程透明化,能够方便地设置提测和发布卡点,防守线下和线上的质量底线。云信业务对接 Overmind 相对比较晚,当前在继续推进各业务的适配工作和卡点建设工作。
3. 对质量和效能进行度量,推进管理和改进。
有了流程标准、质量标准,还需要有度量。没法度量就没法管理和改进。
云信的质量效能度量和平台可视化建设,是自 2019 年跟集团其他部门开始共建的。当前设立的指标项,核心的是:线上事故、线上 Bug 数、QA 漏测率、冒烟通过率、改进措施逾期率、版本交付周期、版本交付延期率、工单平均响应时长和处理时长。
建-建设系统
针对第二个问题“线上质量感知能力弱”,解决措施:建立线上问题感知和监控系统,快速发现和分析问题建设线上问题感知和监控系统,快速发现和分析问题。
“感知分析”有 3 个方面:1-实时质量洞察,2-SDK 端,3-业务全链路。
-
实时质量洞察,也是基于数据平台建设的,类似全链路的分析,支持实时跟进单例通话质量和全局质量指标趋势。比如,单例用户的通话重保时,跟进用户上下行质量和服务节点质量,发现异常,及时反馈给客户或者及时调度到更优质的服务节。
-
SDK 端的感知分析,是基于 APM 模块,对端侧崩溃、资源性能等问题上报 Marvel 平台,平台进行崩溃堆栈解析等,自动提 Jira 单并发送 POPO 报警通知。
-
业务全链路的感知分析,是基于数据平台建设,对 SDK 和服务器数据上报、服务器日志进行分析,通过预警决策引擎,识别问题和风险,进行 POPO 报警通知。如果已有根因诊断模型的,会自动生成诊断报告。当前建成的效果可以看下:预警规则配置-预警清单-预警详情-自动诊断报告。
预警和诊断方案:
线上感知分析建设:
附上干货资料可查看领取或✉LTT936
拓-拓展测试
针对第三个问题“测试完备度和效率不高”,解决措施:拓展测试类型,根据线上问题补充遗漏的测试点或验证点,提升自动化覆盖率并推进测试服务化。
云信在客户端和服务器端的测试类型覆盖如图,黄色字体是近年来核心拓展的类型:客户端的 SDK 接口、专项基线测试;服务器稳定性测试类型,“三板斧一体化”验收和故障演练。
先来看客户端的类型拓展和自动化,主要有以下几个方向:
-
非音视频 SDK 和组件—基于 Hawk 平台自动化方案。
-
音视频 SDK 和引擎—实验室基建&自研 Hermes 自动化方案。
1. 非音视频-基于 Hawk 平台自动化方案:
-
接入业务线 26 个。
-
平台用例总数 8.22 万。
-
端平台支持:移动、桌面、Web、Flutter、Electron、Unity 等类型 SDK。
-
端自动化能力支持:API 接口自动化、API 组合场景自动化、UI 自动化、CI 接入、e2e 故障演练、端性能测试
2. 音视频-实验室基建&自研 Hermes 自动化方案:
-
云信音视频实验室自 2019 年开始打造,耗资 110+ 万;3 个专业音视频实验室,支撑音视频专项评测大类 12 项;为产品竞争力打造和音视频测试提效提供了基础。
-
音视频 SDK 自研 Hermes 测试框架,支持:音视频 SDK API 测试用例自动生成、跨平台适配以及执行能力;音频、视频和网络客观指标断言能力;网络模型模拟能力。
-
实验室基建结合 Hermes 自动化框架,解决了音视频全链路自动化测试的问题。
3. 客户端自动化阶段性主要成果(截止 2023 H1)
再来看服务器的类型拓展和自动化,主要有以下两个方向:
-
测试自动化-框架优化&覆盖率可视化建设。
-
测试类型拓展-“三板斧一体化”验收和故障演练。
云信服务器测试面临的问题主要是:协议类型多(Http、Netty、Socket、WebSocket、Sip),各业务测试框架不统一,且上手难度大;测试覆盖率统计不统一,跟踪难;测试类型单一,协议接口、端到端功能和性能为主,稳定性手段少。
所以我们最大程度统一了测试框架,使用 Cucumber 基于自然语言编写测试用例,提升易懂度;依托严选天玑和云信 QA 平台,支持单测和协议测试覆盖率可视化;“可灰度可降级可回滚”三板斧+“监控巡检报警”一体化,纳入开发设计和测试验收;核心业务故障演练场景常态化,故障预案平台化管理。这些措施持续保障服务器交付稳定的版本。
辅-赋能团队
针对第四个问题“团队抗风险能力差”,解决措施:团队业务知识和测试技术沉淀,工具平台建设,赋能测试和开发团队。主要涉及:测试文档库建设、测试专题培训、测试工具平台建设。
各业务的 QA 同学,都要求持续输出业务和测试文档,以确保在新人培养,组内交叉互备上,都有系统的学习资料帮助其他同事快速上手。
开展专项测试系统培训课程,由专业领域的开发和 QA 开设线下课程,对研发同学进行系统培训,并考察培训效果,使得专项测试更广泛用于提升产品竞争性和稳定性。例如:
-
面向 QA:音频专项测试系列课程。
-
面向开发+QA:性能测试和故障演练微课程。
测试工具平台建设,前面已经有介绍过:Hawk 自动化测试平台-解决非音视频客户端自动化测试;Hermes 自动化测试框架-解决音视频客户端自动化测试;基于 Cucumber 的服务器自动化测试框架-解决多协议服务器自动化测试。
质量体系落地实践
以上是云信两年多来,质量体系建设重点和落地。整个落地实践过程中有一些经验小结:
自上而下
-
得到 CTO 和相关团队 Leader 支持
-
管理好预期
-
绩效考核拉齐
自下而上
-
暴露问题(及时、客观、带方案)
-
总结反馈(有数据、有依据、有对比)
打造标杆
-
试行
-
标杆
-
推广
质量体系建设成果
下面看下云信质量体系建设的成果吧,截止 2023 H1,尚有很多不足,但也些阶段性成果。
小结和规划
针对云信 PaaS 服务团队面临的主要四个质量问题及解决措施简单小结如下:
-
质量流程标准不完善==>确立质量标准和流程规范,量化指标项,可视化平台进行追踪。
-
线上质量感知能力弱==>建立线上问题感知和监控系统,快速发现和分析问题。
-
测试完备度和效率不高==>拓展测试类型,根据线上问题补充遗漏的测试点或验证点,提升自动化覆盖率并推进测试服务化。
-
团队抗风险能力差==>团队业务质量和测试技术沉淀,工具平台建设,赋能测试和开发团队。
质量保障体系建设是一个不断完善的过程:标准->执行->度量->改进。
对于未来的规划,首要目标:服务稳定+高效交付。主要关注:
-
故障预防、快速发现和止血能力建设。
-
测试服务化建设与测试左移。
-
团队质量文化建设。
附上干货资料可查看领取或✉LTT936
更多干货合集,等你来收获~👇