硬核干货——《中小企业 AI 实战指南》免费下载! 了解详情
写点什么

有赞业务中台测试团队介绍

  • 2020-03-15
  • 本文字数:2536 字

    阅读完需:约 8 分钟

有赞业务中台测试团队介绍

一、团队概况

有赞帮助每一位重视产品和服务的商家成功,目前旗下拥有:有赞微商城、有赞零售、有赞美业、有赞小程序等 SaaS 软件产品,适用全行业多场景,帮商家网上开店、网上营销、管理客户、获取订单。


有赞业务中台测试团队按照职责划分为六条线:交易组、营销组、用户赋能组、商品大数据组、基保工具组和稳定性组,各组职能如下:



接下来给大家介绍一下中台测试团队的质量保障体系以及我们在测试效率提升上做的事情。

二、中台质量保障体系

在定义里面测试是对软件规格说明、软件设计和编码的最后复审。但软件质量不是测出来的,而是贯穿整个软件开发生命周期,需要各方配合,测试环节的目的只是在产品交付之前尽可能多的发现问题,测试是一个找错的过程,但无法保证经过测试的代码一定正确,无法证明程序无错。为了保证尽可能地交付高质量软件,我们会要求测试人员介入软件整个生命周期的各个关键节点,如下图所示:


2.1 需求阶段

做正确的事比正确地做事更重要,问题发现越晚,修复的成本就越高,在需求阶段测试左移,开发测试产品一起参与需求评审,测试参与技术评审,提前发现设计问题、可测性问题,当然这会需要开发和测试有比较强的需求分析能力和测试分析能力。

2.2 开发阶段

我们会提供冒烟测试用例,并要求开发在提测之前完成执行,有两个目的,一是减少提测的轮数,提测打回的次数越多,资源浪费就越多;二是很多开发不是不想测而是不知道测什么,冒烟测试阶段测试会给开发用例,可以帮助开发梳理要自测的用例。在冒烟测试执行过程中,开发可以跟测试确定一个合理的冒烟用例数。另外关于冒烟质量的评价,我们有提测打回的机制,3 次打回需求可以不测。


开发阶段,我们对于核心应用的静态代码扫描以及单测也有一定的要求。



上图是 Martin Fowler 博客里面截的测试金字塔,越是上层的测试,就会耗费越多的精力、时间和成本。假设我们在验收阶段发现了问题,这个时候修复代码会导致之前测过的功能很可能需要重新测试一遍,项目延期的风险很高,而且 bugfix 有引入新 bug 的风险。所以我们希望在单测或者静态代码扫描阶段可以尽可能发现问题,降低成本。

2.3 测试阶段

中台需要提供各种能力到上层,目前我们整体的用例量 10000+,如此庞大的用例量无法通过单纯的功能测试进行很好地质量保障,搭建完善的自动化保障体系非常重要。



除了要求各应用的单测覆盖率和有效性以外,我们会花费较多精力在不同维度的集成测试上,如上图所示,其中展现层的业务编排通过集成测试和拨测系统进行保障,这里面还有外部调用的情况,比如电商、零售,所以我们的集成测试还会包含电商零售的 P1P2 场景。在 UI 层,业务稳定的线,会做一部分 UI 自动化,覆盖核心场景。


在这个环节,部分业务线会根据项目情况做专项测试,包括:异常测试、性能测试、安全测试和兼容性测试。另外在中台测试组每月或每季度会成立专项测试小组专门执行对应的专项测试。

2.4 发布阶段

在发布阶段,我们提供了快车发布流程、SOA 合并发布流程和 iron 公交车发布流程,各线根据业务实际情况会做微调,尽量精简并适合各自业务特点的发布流程把控。这样做的好处显而易见,上车的功能会经过测试的二次 check,跟分开单独发相比,质量更有保障,原先多次测试介入合并成一次,更能节约测试资源。


此外根据项目情况,可以选择灰度发布,灰度发布会在生产环境稳定集群之外,额外部署一个小规模的灰度集群,并通过流量控制,引入部分流量到灰度集群,进行正式生产发布前的灰度验证。流量控制可支持百分比、店铺 ID 等,如果灰度发布验证有问题,则流量重新切回稳定集群即可。


针对应用的不同情况,还可以接入流量回放平台,采集线上请求到预发环境执行,然后对比线上和预发响应,如果响应结果不一致则判断可能是预发部署的代码分支有 bug,加速回归速度。

2.5 上线阶段

在这一环节,主要通过线上业务监控和拨测系统进行质量防护,线上拨测的用例是场景化的,即使使用量非常少的业务场景也能发现问题,但不足的点在于无法发现一些特殊店铺才会触发的问题以及一些偶现问题,需要业务监控进行补充。针对前端核心场景,也会有部分的 UI 自动化运行。

三、中台测试效率提升

为了提升大家的测试效率,我们开发了很多工具。部分也在测试博客内做了详细的介绍,篇幅有限,简单介绍几个。

3.1 测试平台

测试平台包含数据工厂(https://tech.youzan.com/dmm-develop/)、用例平台、mock工厂、云测平台、测试报告等。大家可以点击到具体的文章查阅详细设计思路。


3.2 混沌工程

微服务化后,快速迭代的门槛越来越低,但是对复杂系统稳定性的考验却在成倍增长,在复杂的分布式服务体系中,故障发生的随机性和不可预测性都大大增加了。混沌工程可以提高系统弹性,通过设计和执行一系列实验,帮助我们提前发现系统中潜在的问题,除了常规故障注入,也可以探究更多其他的非故障类的场景。关于混沌工程的介绍可以看《混沌工程 - 软件系统高可用、弹性化的必由之路》

3.3 持续交付

为了让项目更有质量地交付,我们深度参与并设计了持续交付流程,实现底层调度逻辑,将质量保障策略融入整个 pipeline,让产品交付的质量得到更好的保障。


3.4 公交车系统

公交车系统的作用是为了让整个发布测试流程更有效率,同时通过将多人变更合并发布,节约测试轮次。另外公交车系统与持续交付系统也做了一些融合,比如开发自测的需求可以在发车时及时关注到自动化测试结果。


3.5 线上拨测系统

在介绍质量保障体系时提到过上线后的节点,我们主要通过线上业务监控和拨测系统进行质量防护,关于拨测系统的详细介绍可以见《有赞线上拨测系统实践(一)》

3.6 性能测试平台

性能测试平台目前分成单接口压测和全链路压测两块,除了让压测过程更加简单便捷以外,还提供了自动生成压测结果图表的功能,方便大家生成压测报告。

3.7 度量平台

我们提供了数据度量平台,通过分析项目过程、质量数据以及上线以后的各类数据表现,判断出不同纬度的质量情况以及软件开发生命周期中出现的问题,方便及时调整优化,这部分数据比较敏感,暂时不给截图了。

3.8 覆盖率与精准

我们目前用的覆盖率工具是 JaCoCo ,在之前的博客里面,也跟大家介绍过我们针对 JaCoCo 做的改造,使它支持计算增量代码覆盖率。另外结合调用链,我们做了精准测试工具,可以通过代码改动,精确评估影响范围。


2020-03-15 20:201803

评论

发布
暂无评论
发现更多内容

兆骑科创创新创业高层次人才引进,以赛引才,线上直播路演

兆骑科创凤阁

教你从创建数据表到实现最基础增删改查的实现全过程,小白也能轻松学会【带附件】

CRMEB

一个 SAP 开发工程师在 SAP 德国总部出差的见闻系列 1:出差 ≠ 公费旅游

汪子熙

SAP abap 8月月更 开发工程师 思爱普

开源一夏 | 在 STM32L051 上使用 RT-Thread (五、无线温湿度传感器 之 完结篇)(附源码)

矜辰所致

开源 RT-Thread 8月月更 STM32L051

时序数据无处不在

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

【消息通知】用公众号模板消息怎么样?

小鑫同学

8月月更

【全干】从零搞定微信SDK授权

小鑫同学

8月月更

开源一夏 | 单片机系统中实用的按键驱动(STM32、51都适用)

矜辰所致

开源 8月月更 按键驱动

95后阿里P7晒出工资单:狠补了这个,真香...

退休的汤姆

Java、 面经 社招 秋招 阿里、

腾讯 X 广东省计算机学会,推动数据库产学研发展

科技热闻

兆骑科创高层次人才引进服务平台,双创服务,投融资对接

兆骑科创凤阁

【Vite】配置HTTPS&自签名证书

小鑫同学

8月月更

京东8年资深架构师为你解析:Kafka源码解析实战。为你解忧

Java编程日记

Java 编程 程序员 架构师 面经

望繁信科技受邀参加中国智慧财务国际峰会

望繁信科技

有了这 14 个技巧,让你玩转 Spring MVC

TimeFriends

8月月更

基于STM32F103设计的智能门锁(支持多种开锁解锁方式)

DS小龙哥

8月月更

强烈推荐一款超好用的开源电商系统!!!

CRMEB

秋招大厂字节上午 10:00 面试,10:09 就出来了 ,问的实在是太...

退休的汤姆

Java、 面经 社招 Java工程师 秋招

惊艳!阿里巴巴最新发布Java系统架构师+开发应用面试突击宝典

Java编程日记

Java 编程 程序员 面试 架构师

Go-Excelize API源码阅读(十五)——SetSheetViewOptions

Regan Yue

Go 开源 源码 8月日更 8月月更

SAP 电商云 Spartacus UI 里的 ASM 模块启用的前置条件

汪子熙

angular SAP SAP UI5 Spartacus 8月月更

大数据训练营1期 毕业总结

张大彪

抽象工厂模式在项目开发中的应用,这个例子绝了

知识浅谈

工厂模式 8月月更

带你体验一次类型编程实践

小鑫同学

8月月更

小程序|炎炎夏日、清爽一夏、头像大换装

小鑫同学

8月月更

阿里大佬耗时一年整理的Java面试常考题,GitHub点赞33K+

Java面试那些事儿

Java 编程 程序员 面试 架构师

上手体验TailwindCSS

小鑫同学

8月月更

flex 布局(弹性布局 / 弹性盒子)一直没学明白,看完这篇文章我彻底懂了

CRMEB

数据,不能只讲大道理

水滴

数据中台 数据规范 数据化转型

介绍16个让你的代码变漂亮的属性

小鑫同学

8月月更

阿里最新468页Spring Boot企业级项目开发实战手册好强啊,Github获星30000+

Java面试那些事儿

Java 编程 程序员 面试 架构师

有赞业务中台测试团队介绍_文化 & 方法_Winta_InfoQ精选文章