当前位置: 首页 > 科技观察

做ToB软件质量保障的这两年

时间:2023-03-14 22:19:52 科技观察

本人这两年一直在做ToB软件质量保证,所经历和感受的业务特点和经验,在一定程度上还是具有代表性的。希望通过这篇文章,能够对过去进行总结,与已经进入这个业务领域和将要进入的同学产生共鸣。服务自营美甲客户的这两年更像是一场战斗,唯有入局的胜者,才能在这个竞争激烈的市场中生存。ProprietaryTalk的深度用户已经将ProprietaryTalk作为日常工作的一部分,就像我们使用钉钉一样,它是一个生产力工具;不管是多么小的经验问题,或者是小概率的偶发问题,在大规模的日常活动下都是极其困难的。容易放大和强化。即使协同办公的业务需求各不相同,也会因为客户所在行业的特点而有很大差异。由此产生的定制化需求将随着不同行业客户的增加呈指数级增长,这将对产品架构的适配以及产品开发和交付服务环节的资源投入带来巨大的挑战。虽然服务这些不同行业的顶级客户很难,但一旦我们被认可,口碑就会在这些行业迅速传播,带动客户的增长。结合与ToC类产品的对比,在我看来,ToB类业务特别明显的特点如下:质量保障难经过2年的建设,专有钉钉已经成为国内最大的政务协同办公平台产品。这份答卷让我很自豪,组织也认可了,但与此同时,焦虑和压力也在不断积累,因为这门生意太难做。1、客户对质量的容忍度很低。钉钉自有钉钉包含在钉钉产品矩阵中,承担的责任是服务好政府客户和行业领先的大型企业客户。这些客户最大的特点是对数字化有深刻的理解和应用,而且不是新手客户。我们需要表现出比他们更专业,比他们以前用过的产品更好的体验,这样他们才能接受我们,认可我们,把我们当成数字化变革的同路人。本来是做公司内部产品的,项目周期紧的时候,第一个想到的方案就是保主业,但是做专有钉子并不能固化这个意识,因为VIP客户的作用是存在的。他们是决策者,但他们也是个人。不同的人有不同的产品使用路径和产品核心功能,但他们有一个共同点,那就是对质量的容忍度极低。客户认为他们已经为产品付款了,高质量应该是标准。其结果是“主营业务”的定义变得模糊。如何在有限的项目周期内实现完整的测试?另一个特点是,当出现问题时,可能会有人提出质疑。这显然是你系统运行的问题。指标监测不到位。然而,传统的公有云系统指标监控解决方案通常无法在私有云环境中运行。排查问题非常困难,积累口碑也极其困难。2、安全生产难做专卖钉。在专有的云环境中,资源、数据、产品,都属于客户。做好安全生产,一要严守用户信息安全,二要严格控制药液消耗。资源成本。专有云网络基础设施复杂,目前还没有成熟的全链路问题排查工具,不同客户环境的云基础和中间件千差万别,解决方案复用度低。组织协调难,安全生产涉及生产研究、交付、一线运维、二线运维、三方ISV,而后四者通常由不同的公司组织在不同的项目中承担。能力参差不齐,责任难分清。3、测试技术融入研发过程的紧迫性高。专有美甲产品要满足70-80个业务需求,在极其有限的版本周期内严格遵守质量准入控制,压力极大。在坚持质量原则的基础上,质量团队需要在研发自测阶段提供研发效率高、覆盖面广的测试能力,在项目前期消除质量风险。开放生态背景下,大规模的ISV输出会集成到自有钉钉产品中,需要质量团队做质量保证。将ISV纳入质量保证体系还有很长的路要走。4、云原生适配难。私有云已经发展了很多年,市场上也出现了很多竞品。客户看重专钉的专业性,但如果想用阿里云飞天基地取代昂贵的云基地,可能会知难而退,发展云原生是出路之一。当前云原生产品缺乏标准化对测试来说是一场灾难。努力完成测试后,由于客户现场部署架构不同,使用的云原生产品规格不同,导致bug频发,一边打脸一边无奈。在非标准条件下,测试结论无法重复使用,甚至显得毫无意义。目前缺乏成熟的安全生产和质量保障的云原生产品,线上运维不畅,稳定性保障能力不足。聪明女人难做无米之炊。5、检测工作专业性强、难度大。除了要攻克专有云的技术壁垒,测试建立在其之上的功能、性能和安全生产能力外,还需要针对IM、音视频、文档等核心业务进行专项业务测试.等待。一个稍微有效的方法。上述困难有的是在构建专有产品的第一天就面临的,比如专有云的技术壁垒,有的是在业务发展过程中逐渐出现的,比如云原生适配困难。应对这些困难的策略和方法也不是一蹴而就的。在克服旧问题和迎接新问题的反复中,自有美甲品质团队也沉淀出一套适应当前ToB业务的品质保障体系。系统命名为“定坤”。1、数据化自有美甲产品自诞生以来,一直致力于推动政企客户的数字化变革。高品质、高稳定性、极佳的体验是这款产品必备的特性。从建设之初,保障体系就与产品本身一样。在数字化驱动下,所有可定义的过程和结果都尽可能结构化,并以此为基础进行处理、分析、决策和驱动。数字化驱动质量风险防控。质量/过程风险数据的结构化,需要标准化的研发流程和缺陷流规则进行匹配,使离散数据能够被规则分析,具有决策和驱动能力。ProprietaryNail的研发过程最大限度地发挥了集团产品Aone的能力,规范了需求管理、版本管理、缺陷管理,可以作为Aone的样板工程。数字化推动研发和测试能效提升。专卖钉客户对数据极其敏感,数据安全等级极高。引流回放等的获取存在天然障碍,如何获取尽可能多的脱敏数据并将其用于质量保证策略和解决方案,是一个急需但又必须慎重对待的课题。线上客户数据获取困难,但线下每个功能用例的执行流都包含价值,基于jvm-sandbox获取流。可以挖掘sql执行过程中的性能隐患、缓存使用等;它还可以沉淀业务呼叫链接。在此基础上,结合故障等级定义、监控覆盖范围、计划覆盖范围,形成产品安全生产能力视图和工作台,直观、高效地开展安全生产工作。下图是其中一个流量,存在重复缓存调用的性能风险。数字化推动产品体验提升。专有美甲产品以客户为用户体验的前沿。集团提供相对成熟丰富的移动端专项评测能力。在此基础上,我们改进了整体调度、自动触发执行、自动生成。竞品报告等能力,利用竞品分析数据推动客户体验的提升。专有钉子在PC端有更广阔的应用前景。科技创新端是当前国家大力发展的方向,但集团缺乏相应的专项评估能力。我们采用的是自建模式,现在已经具备了端到端的稳定性和性能PC端专项评测能力。2.风险防控是基调由于客户容忍度低,交付周期极短,无法通过长期灰度或出现问题后改进来提高产品稳定性,而必须在交付前进行充分的测试和防控工作。高可用测试防控稳定性风险阿里云Apsarabase相对成熟,但云原生不一样。商用才刚刚起步,还没有磨炼出来。交付前必须进行高可用性测试。这是阿里云ADP团队的广告。他们已经有了比较成熟的中间件高可用测试平台。业务团队只需要梳理出基于业务的测试场景即可。开展故障演练,防控安全生产能力不足带来的风险。理想状态是在每个版本交付前完善增量业务的故障级别定义,同时梳理增量业务的全链路并进行故障分析。演练促进安全生产能力提升,包括监控、故障降级/恢复方案、强弱依赖治理等。专有云上缺少免演练平台支持(有钱的可以参考AHAS),我们使用专有的chaosblade解决方案实现能力,搭建平台积累演练场景,实现常态化高效执行。产能规划机器资源风险防控APC上的产能规划完全是理想化的美好,现实却是残酷的。刚开始做容量规划的时候太简单了,把“有线性扩展”的能力当成云上机器的标准能力。但现实是满脸的,实际测试完全不具备线性扩展能力,导致在实验室环境下测试的容量需求,经过计算与实际情况不符,真正的性能压力必须在每个专用云环境中完成。测量、成本和可行性都受到挑战。虽然目前使用各种算法来让估计尽可能接近,但仍然无法降低实际压测的资源消耗。项目研发过程质量风险管理以质量和风险数据为基础,结合标准化的研发、交付、服务流程,制定了全生命周期的软件质量子体系,覆盖版本研发阶段的全生命周期、交付阶段、在线使用阶段。进出境标准和质量有两个载体。当前版本研发阶段的质量评分和标准已经比较成熟。质量分用于事后总结,避免后续版本出现问题,而标准则代表是否能进入集成回归,能否交付。要达到标准并获得高质量的分数,有前人总结的方法论。结合这些方法论,结合质量评分数据的现状,“适时智能提供解决方案,规避风险”,目前正在建设中。质量风险管理能力的目标。3.研发效率已支持2年。我们一直在为业务奔波,但只要有差距,提高研发效率就必须提上日程,因为我们坚信这是提升幸福感的途径之一。自测工作台,提高自测性能要做好自测开发工作,首先要与PM共同开发,获得固定合适的自测时间。我们提供开发倡议所需的功能自动化和测试用例,提供专有云下服务链路调试、版本前后链路对比、测试数据工厂、服务MOCK、基于流量数据的性能隐患识别、初步性能问题筛选等增值能力。“越早发现bug,修复成本越低”是千古不变的真理。以后想的是,即使自考时间被挤出,也可以在考前充分测试自己。分层自动化提高测试效率自动化从未像现在这样需要。测试团队需要,研发团队需要,交付团队更需要。根本上是由业务特点和所处阶段决定的。互联网产品运动迭代周期,军工级产品质量要求。通过自动化完成的内容越多,就会有越多的人力出来覆盖那些原本人力和技术覆盖不到的部分。对于自动化测试,我们信奉分层的概念,针对不同的层应该采用合适的自动化方法。专有的云服务端低代码自动化平台,具备支持LWP、HSF、HTTP接口测试的能力,也可以支持服务端SDK的自动化测试。之所以叫“low-code”,是因为这个平台从一开始(在亿达出现之前)就一直秉承着“low-code”的理念,让所有想做界面自动化的同学都能得到开始,不管编码能力如何。目前,它提供了两种用例生成方式:简单配置实现和流量自动生成。下图为配置页面:客户端不仅使用UI自动化进行端到端的功能覆盖,还支持对JSAPI和端到端SDK的自动化测试。UI自动化还需要考虑一个代码多端适配,即一套代码可以在不同终端上稳定运行。终端越多,自动化的价值就越显着,节省的人力投入也就越可观。自动化不仅仅体现在功能测试上,在性能测试和客户端体验专项测试中,都优先考虑自动化。一站式性能测试平台,实现从执行、结果分析、瓶颈定位、基线控制的闭环自动化。大部分客户体验专项测试可自动触发执行,自动生成竞品对比分析报告。在产品版本质量保证过程中,自动化也无处不在。自动生成质量日报、自动生成转账申请、自动生成版本质量报告、每天定时自动播报风险……质量标准提升组织协同效率钉钉希望携手合作伙伴参与到数字化变革的浪潮中。随着生态的开放,钉钉提供底层能力,让ISV自由享受,实现梦想。梦想的实现不能不切实际,需要有真正的协调机制和协议来保障,而质量是保障之一。数以千计的ISV生产的应用,大量的SDK和API接入专有钉钉的开放平台。为了保护自身,更好的协助ISV提供优质的产品,测试团队制定了ISV产品的质量标准。同时,我们会逐步将成熟的测试能力提供给ISV,让质量保证更简单、更公平。结语现有的自有美甲产品质量保证体系必然需要应对更深层次的挑战,以持续确保自有美甲以军工级品质助力客户,永远打响“定坤”体系之名——应得的回报。