质量保障体系

质量保障的核心目标是质量 & 效率并重,对付互联网产品来说诠释如下:

质量

oppo云PHP源码从0到N百度云的精益质量保障 GraphQL

不仅仅是功能可用性层面,须要关注用户体验。

不仅仅是上线前的质量担保,须要延伸至把关上线中、线上的质量。

不仅仅只勾留在好坏的感性模糊认识,须要将质量观点量化、可视化。

不仅仅光靠抽样个例,须要大数据统计做强有力的支撑。

不仅仅只局限自身产品的质量,也须要关心竞品。

效率

加快产品迭代,唯快不破。

提高问题暴露,定位以及办理速率,快中求稳。

对产品建立质量标准,将其度量化并形成稳定的、可衡量的产品质量benchmark,对付个人云存储产品可以列出数据完全性、安全性、传输速率、在线消费体验等最核心的质量维度。
线下以此作为发版标准,驱动产品质量迭代越来越靠近目标;线上以此作为监控范围,对线上质量问题主动防御,加快应对。

“以质量为中央,以数据为驱动”为宗旨贯穿全体流程,将各种测试工具和方法融入进来,构筑一套全流程质量保障体系,如下图所示:

关注InfoQ[ID:infoqchina]理解更多技能领域干货内容。

测试技能

线下集成持续化、测试做事化,以运用质量(QPS、SLA、性能)、业务指标、过程质量(代码覆盖率,千行 bug 率)一系列发版标准为目标,将自动化测试、性能、单测、非常等工具集成入构建—支配—quickcheck—slowcheck—release 的流程中,快速创造问题并办理,迭代质量。
线下须要更多精力关注在非常和性能测试中,这些每每是线上问题多发区。

上线过程中灰度掌握,把产品发布过程划分为多个级别,每个级别限定一定的流量和用户范围,并在每个级别对产品进行支配和验证的迭代过程。
一方面逐步放量,小心验证,降落上线带来的风险;另一方面开展用户测试,让用户参与产品测试,加强与用户互动。
让用户参与 beta 环境分为两种环境:被动命中(将同一特色的用户逼迫划分至小流量环境中)和主动约请(约请粉丝或有偿用户)。
对做事器来说架构能够支持逐步放开流量,对客户端发版来说有一个平台支持哪些版本哪些用户能升级到beta版本,并且在小流量阶段要密切关注监控和用户反馈,将问题及时扼杀在萌牙阶段,不带到全量阶段。

线上监控 & 定位,从根本拓扑(网络、单机、数据库等底层做事)、做事稳定性(接口成功率、5XX、4XX非预期返回码的占比等做事器可用性层面)和业务质量(上传、下载的成功率等用户功能层面的易用性)三个核心要素延展开全方位细粒度的监控覆盖,并从质量标准、质量防线和质量闭环三个维度进行质量培植:首先对产品建立一套完善的产品质量标准体系,并将其度量化,固定成 benchmark。
牢牢环绕质量数据,组建从用户(舆情热点)、端(产品体验)、做事器(稳定性)到根本网络(SLA)的层层实时防护网,末了通过上线管理—报警中央—智能定位—故障通报的质量闭环环节落地,不断迭代优化,能够快到线上问题快速预警、定位及办理。

专项质量保障

(1)多副本分布式存储:旁路测试 & 线上数据检讨,以数据完全 & 安全为义务

考虑灾备冗余、本钱成分,云存储都会利用多个机房,跨机房的传输比较单机房的数据流动本身即增大了延迟,不同机房网络属性、机器性能等差异更对做事质量的保障提出了寻衅。
单一的机器性能测试已经不知足需求,须要引入旁路测试:复制线上的支配拓扑,进行等比例缩放,仿真线上的数据,在测试环境里重放,不雅观察繁芜支配和网络环境下做事的稳定性,辅佐一定的非常流量,评估系统的容错性以及灾害发生时预案是否能生效等。
为更进一步保障数据的安全,对线上逐日新增的数据较验各个副本的同等性及完全性。

(2)多机房 & P2P 流量架构:流量 diff 系统 & 实网系统 & 众测测速,传输速率体验

下载由源站IDC、CDN和P2P三部分承担,用户端、网络端、做事器云真个每一个环节都会影响速率。
做事真个流量调度是根据用户地点、运营商网络、要求入口、文件所在机房、资源热度等多重属性对用户分配多个可带优先级的下载域名,让客户端充分并发及容错。
多重维度的组合注定了调度策略的繁芜性以及验证的难度,流量 diff 系统应运而生:在线下布局两套流量系统,一套线上代码环境,一套测试代码环境。
通过回放线下真实流量,diff 前后调度是否符合预期,是否带来了非预期的变革。

P2P公司测试与用户网络差异大,大规模用户节点的互连测试也受资源所限,只能借助线上真实用户的环境帮忙,即实网系统。
将 SDK 包封装成独立的运用程序下发至众测或是粉丝用户本地进行下载,验证联通率以及联通速率。

对付运营商、第三方CDN、P2P这类非自身做事,云存储对他们的做事质量可感知以及可操控能力甚微,须要把控线上用户的传输质量须要约请全国众测用户为监控节点,定期探测将地域性、运营商性属性、本地接入网络属性、做事器连接信息并上报做事器,以做全国用户的大数据剖析。
从运营商、地域、域名、文件大小等多个维度展现网络做事质量,量化了速率大小、失落败率质量数据,同时补充了域名联通性、第三方CDN、骨干网络这类第三方做事监控的空缺,为文件传输做事线上问题的监控、定位、办理和做事优化供应全面的数据支撑。

百度云QA发展史

首先,以百度云为例回顾一下产品从0到N一起护航过程:

(1)产品从无到有阶段,QA进入“积本夯木,完善线下测试”重心阶段。
12年底的增设机房和机器的迁移,多机房网络延时大,传输质量差都会加剧做事的稳定性和性能降落的风险,随即推出的一系列大型运营推广活动,对线下测试带来不小的寻衅。
针对此探索出来的多机房测试方案以及旁路测试、运营活动测试方案很好地保障了质量,也对后续其他产品起到很好的借鉴意义。

(2)产品进入功能迸发式增涨阶段,QA进入“TestinProduction”重心阶段。
此时上线风险把控变得尤为关键,代码的变更是否影响用户的利用,新功能推出时用户的接管度如何?我们在做事器实行分级发布的落地,同时这一思路推广至真个发版,支持了很多1.0产品的发布,较快的网络到用户反馈并回馈到需求中迭代,同时也将上线中的问题收敛到小流量阶段,全量回滚数为0。

(3)产品做事日趋便利强大之后,QA转移“TestOPs”重心阶段。
此时用户进入迸发式增涨阶段,“稳定、速率、安全、本钱”成为关注重点。
要让线上质量看得见,以质量度量的办法促进做事优化,我们开启了“云图”操持。

该操持经历了四个阶段:

1.0阶段:利用自动化 Case 定期对线上环境运行的办法进行监控。
但经由一段韶光的运行,创造两大弊端。
其一,单一 Case 对付线上不同的机房,不同的运营商,不同的文件等等维度的爆炸式组合的覆盖面仅仅是九牛一毫;其二,Case 的稳定性掩护本钱大,并不能帮忙创造线上问题,须要探索新的监控模式。

2.0阶段:从线上核心功能数据安全性和数据传输速率入手,利用全量用户真实的端做智能节点做核心质量监控。

3.0阶段:2014年5月网盘有次故障,经由一段韶光才得以规复,缘故原由是 DB 机房和 PCS 做事机房某一个链路涌现丢包严重,导致 PHP-CGI 资源耗尽而谢绝做事。
解释承载线上几亿用户的产品在自身的模块以及依赖的第三方做事越来越多的情形下,单一的核心质量监控已经知足不了需求,须要从根本拓扑、做事稳定性和业务质量三个核心要素延展开全方位、细粒度的监控覆盖。

4.0阶段:从质量标准、质量防线和质量闭环三个维度进行质量培植。
首先对产品建立一套完善的产品质量标准体系,并将其度量化,固定成 benchmark。
牢牢环绕质量数据,组建从用户(舆情热点)、端(产品体验)、做事器(稳定性)到根本网络(SLA)的实时防线,末了通过“上线管理—报警中央—智能定位—故障通报”的质量闭环环节落地,不断迭代优化。

浅谈产品从0到N的质量保障之路

回顾网盘QA伴随着百度云产品的发展之路,完善质量保障体系的征程中多数是问题驱动的,以踩坑、填坑、防止再次入坑的模式前行。
分级发布的触发机遇也是由于线下测试的不完备导致问题在线上爆发影响用户,速率监控也是应对日益暴涨的用户关于数据传输的体验报怨。
除了基本的做事稳定性监控之外开始加速、做网络等底层。
视频卡顿的业务监控同样也是由于几次网盘做事基本不可用的重大故障修复速率未及时跟上所催生。

以百度云三年的履历来看,一个成熟的产品都是经历“目标顾客—小范围实验—反馈修正—产品迭代—得到核心认知—高速增长”的正向良性循环中,从0到1、再从1到N不断发展壮大的。
至关主要的质量保障一环除了线下持续集成能力加快迭代,上线分级发布能力降落风险以及线上业务监控防御能力三类根本的工程能力之外,也须要不断相对调整重心,提早做好准备,跟上产品的节奏。

(1)产品从无到有创立期间,以最快的办法、以最少的精力验证市场需求为目标。
质量的重点则是担保核心功能的精确性的条件下,与所有角色达成共识,精简并确定发版标准,招募第一批体验用户,将 MVP(第一个最小化可行化产品)尽早地将产品抵达用户,去接管市场验证,网络有需求的顾客最在意的是什么品质的做事,与此同时核心监控应同主要运营指标统计一起上线,密切关注数据变革。

(2)产品在从1进入N的发展期间,新功能进入爆发期,技能上须要支持约请用户来体验新功能,同时产品在此阶段会借助一些运营活动造势,利用传播的力量将产品遍及到更多的用户,引发用户更多的利用产品。
使应对可能蜂拥而至的流量做事能正常运转成为质量保障的重点。

(3)当产品到达N,积累到一定量的用户规模后,线上做事的稳定性成为质量的重中之重。
建立一套自下而上的系统级、运用级、业务级和用户体验级监控,打造线下持续集成、上线管理、线上监控、用户反馈的质量闭环,事先及时预警创造故障,事后供应翔实的数据用于快速追查问题。

刘雯雯,2009年北京理工大学打算机学院硕士毕业,2010年加入百度。
现任百度云QA团队卖力人,见证了百度云从0到1亿再到3亿用户的发展。

版权归属InfoQ,禁止商业用场抄袭转载

荐文

自荐

『 InfoQ原创作者招募第一期 』

如果你自傲是技能人才,有领域专长,有从业履历,有职业态度,有不雅观点灼见,来InfoQ原创专家作者团,写你感兴趣的文章,分享你独到的不雅观点,给有共鸣的人看……

怎么加入?

联系微信[muyu4444]

添加请注明原创作者