OceaBase开发者大会落地上海!4月20日共同探索数据库前沿趋势!报名戳 了解详情
写点什么

B2B 跨境支付平台 XTransfer 的质量保障体系建设之路:测试的左移与右移是关键

  • 2023-02-07
    北京
  • 本文字数:3087 字

    阅读完需:约 10 分钟

B2B跨境支付平台XTransfer的质量保障体系建设之路:测试的左移与右移是关键

质量保障体系的建设是个复杂、长期的过程,基于业务发展阶段、团队规模和业务形态,每家公司都有不同的思考和实践。


近年来,跨境电商新业态的高速发展使得跨境支付赛道备受关注。一般来说,在交易模式上跨境电商分为 B2B 和 B2C。相较于 B2C,B2B 模式交易流程更复杂,其背后的质量保障体系建设就显得尤为关键。


近期,InfoQ 采访了 XTransfer(上海夺畅网络技术有限公司)技术总监马吉武,请他与我们分享了 XTransfer 的质量保障理念,以及他对于质量保障体系建设的思考和实践经验。


XTransfer 创立于 2017 年,聚焦于 B2B 跨境支付,为从事 B2B 出口的中小微企业提供跨境支付及风控服务。XTransfer 对于质量保障体系的建设从 2018 年初第一款外贸收款产品问世便已开始。在业务发展初期,质量保障体系的工作主要体现在功能可用性测试层面;随着业务的发展和团队的精进,逐渐扩展为测试的左移与右移。发展至今,质量保障已不再停留在“功能性测试”这样一个工程化流程的单一环节,而是拓展到“大质量”的范畴,即协同工程化上下游的多个环节共同确保产品交付的稳定可靠。


关系到中小微外贸企业的资金安全,B2B 跨境支付产品对于质量有着极高的要求,这给 XTransfer 的质量体系建设带来了不少挑战。“具体而言,主要体现在三个方面:首先在业务层面,绝不允许有任何一笔交易出现资金问题;其次,B2B 跨境支付交易链路更长,相应的产品质量保障链路也更长,这给质量保障工作增加了难度;最后,XTransfer 业务发展迅速,产品也在快速迭代优化,这也需要质量保障体系随之迭代优化。”马吉武介绍道。


质量保障理念


XTransfer 质量保障理念的核心体现在质量设计和质量实践两个方面。


据马吉武介绍,在业务早期发展阶段,主要是产品驱动、研发和测试互相配合。不同的测试方法是验证和保障交付质量的手段,而不是构建质量体系的基石。测试的努力带来的更多是一些“安全感”,而非安全保障。


因此,要做到高质量的交付,就需要回到质量的本质,好的产品依赖于其底层设计。简单来说,XTransfer 的质量设计核心思路是“好的质量是设计出来的,而非测试出来的”。保障质量需要尽可能地“设计先行”,在前期充分讨论需求,严格把关设计,把质量问题在源头解决。与之相对应的则是,不同于早期阶段的完成测试动作,团队需要从交付质量保障转入质量共建。



测试的左移与右移是 XTransfer 质量保障团队目前正在探索的质量保障路径的关键,也是 XTransfer 质量保障理念的落地尝试。测试的左移与右移指的是,让质量保障尽早地发生在整个 SDLC(产品开发生命周期),同时确保稳定性得到持续保障。


在需求阶段,测试左移的目标着力于验证需求质量,包括方案验证、功能验证、支撑性验证等,由此分析需求的完整性,及时发现设计中可能存在的问题。“XTransfer 质量保障团队有明确的需求评审规范,测试会在项目需求阶段介入,避免等到实际测试阶段时才发现问题,导致修复成本过高,无法高效提交项目。”


在开发阶段,XTransfer 质量保障团队需要充分了解开发的代码框架,从而更好地评估改动范围和需要回归的内容。同时,质量保障团队可通过提供自动化测试脚本的方式,让开发团队在前期加强自测,避免在后续收到提测包时仍然有基础问题存在。此外,质量保障团队与开发团队会在共同的规范下有序推进开发工作,这也是测试左移的关键一步。“目前 XTransfer 质量保障团队已经确立了开发质量规范,制定动作、明确责任人。其核心目标是将问题在初始阶段解决,避免在产品提交后重复工作。”


在运营阶段,XTransfer 质量保障团队会持续监控产品在生产环境下的运营体验,确保产品在实际环境、场景下,其功能和体验都能符合用户预期,而这也是测试右移的关键步骤。此时,质量保障团队会通过埋点数据、生产监控、用户反馈等措施,与运维团队一起完善监控体系,发现系统可能存在的漏洞并及时修正。例如,对用户名、访问时间、资源地址进行监测,判断是否符合规范和要求;对访问频率过高或者其他异常情况进行监控,若符合警告规则,系统可通过邮件等方式通知相关人员,并帮助其快速定位问题。

质量数字化管理


对 XTransfer 来说,质量数字化管理的本质是将需求质量、过程质量、交付质量通过数字化指标抽象出来,并以此为依据完成质量保障。例如,通过大量元数据的收集和管理,团队可快速发现问题、定位问题,这其中涉及到数字化指标包括如过程质量中的 demo 次数、转测次数等;交付质量中的 UT 覆盖情况、自动化覆盖情况、缺陷情况等。


其中,需求质量主要指的是在包括原型图、PRD 文档、交互设计、技术方案、测试用例等基础上,质量保障团队从不同于产品、研发的角度理解需求设计,同时根据已有的数字化指标提出建议并协同产品、研发团队进行修正。在项目启动阶段,质量保障团队就参与到整个设计过程中,充分汲取产品、研发等不同岗位角色的需求,降低后续产品的过程风险和交付风险。


“对于过程质量和交付质量而言,一方面是通过测试的左移右移确保整个产品从研发到交付全过程保持质量可控;另一方面则是构建一系列标准化门禁,如研发架构侧资损防控标准化设计检查清单、验收清单,以及 QA 侧的 Sign off 条件、严格上线验收清单,包括账务比对清单、用户交互验收清单等。不能达到设计预期的产品将无法完成交付。”

大质量模型

XTransfer 大质量模型指的是“持续”的质量保障能力,可以从“质量金字塔模型”和“一切皆代码”层面理解。


其中,质量金字塔模型在不同公司均有实践,这套理论模型在 XTransfer 质量保障体系中同样有所应用,包括从 UT、API、UI 到 E2E 都是不可或缺的部分,但是在 XTranser 更为坚持的观点在于,一切理论的背后都是代码,对于质量的保障实际上最终要落到代码层面。

 


快速的高质量交付,意味着持续的全回归测试,“智能化测试”在其中扮演了重要角色,能够实现精准和高效。精准,是通过代码去度量影响范围;高效,则是通过代码如 UT/E2E 等来实现快速测试。


为持续提升测试精准度和效率,XTransfer 质量保障团队会把测试专项能力向服务化能力转型,建立自动化为主的测试能力,减少手工测试和手工操作。目前,测试自动化主要包括自动化环境创建与部署、生成测试数据、执行自动化测试,生成测试结果与日志;此外,也会对测试相关结果进行自动化监控与分析,自动生成测试报告,便于进行测试定位失败原因与快速修复。



质量文化


质量文化在 XTransfer 被抽象为质量规范、质量度量和技术延展。随着业务更加成熟、规模不断增长,质量文化需要不断强调、落地和迭代,这就需要制定一些规范来保证落地效果。这里的规范不是强制要求大家一定要做什么,而是为了大家在不同的工作阶段都有据可依,知可为、知不可为。质量规范体现在产品需求阶段,有针对性地构建 PRD 规范、技术方案规范,在后续的开发、测试、上线等阶段构建开发规范、提测规范、发布规范、运营规范等。


同时,在不断提高产品质量的过程中,如何评估质量的效率也颇为重要,XTransfer 质量保障团队将其抽象为质量度量,包括需求度量、开发度量、交付度量、运营度量、故障演练度量等维度,确保大家在关注质量的过程中,也要同步关注效率。


“建立质量文化,还需要关注对质量技术的研究,这是确保质量保障体系在团队最终落地,并提高质量效率的基础能力。”在 XTransfer,团队关注新的质量保障理论和技术层面的探索,质量不仅是后台支持保障,也是前沿技术的落地场景。


例如,随着业务快速发展,传统的自动化测试已经不能满足快速变化的业务需求,自动化前置是 XTransfer 目前研究的重要课题。“为了持续提升研发交付效能,XTransfer 质量保障团队将进一步加强人工智能技术在测试领域的应用,其本质是结合 AI 算法和测试数据对测试多环节进行针对性的优化,达到对业务需求更强的适应性和响应能力。”

2023-02-07 16:267732
用户头像
蔡芳芳 InfoQ主编

发布了 780 篇内容, 共 493.2 次阅读, 收获喜欢 2748 次。

关注

评论 1 条评论

发布
用户头像
快速的高质量交付,意味着持续的全回归测试,“智能化测试”在其中扮演了重要角色,能够实现精准和高效。精准,是通过代码去度量影响范围;高效,则是通过代码如 UT/E2E 等来实现快速测试。
2023-04-10 17:11 · 广东
回复
没有更多了
发现更多内容

最受欢迎的5个React动画库

编程江湖

React

Springboot & RabbitMQ 延时队列的使用

编程江湖

大数据 消息中间件

六个数字化意识和习惯

明道云

web技术分享| AudioContext 实现音频可视化

anyRTC开发者

Web 音视频 WebRTC 音频可视化 AudioContext

常用项目部署方案和区别

进击的梦清

DevOps 运维 项目 部署与维护

初识JVM的内存结构

Ayue、

技术专题合集

运维监控场景下,如何从OpenTSDB迁移到TDengine

TDengine

数据库 tdengine

前端开发面试题分享,看一下是不是你需要的

@零度

大前端 面试题

推开“微前端”的门

百度Geek说

微服务 大前端

Hutool中那些常用的工具类和方法

编程江湖

JAVA开发 java工具包

Spark SQL之RDD转换DataFrame的方法

@零度

大数据 RDD DataFrame spark SQL

周边生态|RoP 重磅发布 0.2.0 版本: 架构全新升级,消息准确性达 100%

Apache Pulsar

Java 开源 架构 云原生 Apache Pulsar

dart系列之:还在为编码解码而烦恼吗?用dart试试

程序那些事

flutter dart flutter 面向切面 aop 程序那些事 12月日更

Java开发之如何连接Redis

@零度

redis JAVA开发

极光笔记|百亿级KV存储在极光的运维实践之路

极光JIGUANG

恒源云(GPUSHARE)_分享一个技巧!CV训练时容易忽视的数据标签问题

恒源云

深度学习 算法 CV

12 月亚马逊云科技培训与认证课程,精彩不容错过!

亚马逊云科技 (Amazon Web Services)

架构师 培训 认证

工具 | PG 集群复制管理工具 repmgr

RadonDB

数据库 postgresql RadonDB

☕【并发技术系列】「多线程并发编程」技术体系和并发模型的基础探究(夯实基础)

洛神灬殇

Java 并发编程 多线程 多进程 12月日更

Rust 元宇宙 11 —— Websocket

Miracle

rust websocket 元宇宙

JDK 动态代理与 CGLIB 动态代理,它俩真的不一样

华为云开发者联盟

jdk 动态代理 spring aop JDK 动态代理 CGLIB 动态代理

【12月11日】真香现场,带你玩转 EKS!

亚马逊云科技 (Amazon Web Services)

人工智能 Meetup EKS

【云小课】CDN第5课 CDN入门之—我的网站可以用CDN加速吗?

华为云开发者联盟

网站 CDN 网络 CDN加速 华为云CDN

带你了解Typescript的14个基础语法

华为云开发者联盟

typescript 数组 开发 js 语法

如何在Flutter应用程序中创建不同的渐变 【Flutter专题14】

坚果

flutter 28天写作 12月日更

Linux一学就会之Centos8用户管理

学神来啦

Linux centos 运维 linux云计算

Go语言学习查缺补漏ing Day1

恒生LIGHT云社区

编程语言 Go 语言

Rust 元宇宙 从零开始构建

Miracle

rust 元宇宙

模块五作业

危险游戏

架构实战营

大咖联袂发布!《慧技术·惠金融——2022金融科技趋势研究报告》开放下载

恒生LIGHT云社区

金融科技 行业趋势 行业大会

MySQL探秘(二):SQL语句执行过程详解

程序员历小冰

MySQL 28天写作 12月日更

B2B跨境支付平台XTransfer的质量保障体系建设之路:测试的左移与右移是关键_语言 & 开发_蔡芳芳_InfoQ精选文章