缺陷下降到30%!申万宏源证券如何通过持续测试实现效率50%提升?

2023-11-14 18:40:58 浏览数 (1)

一、持续测试的背景

在金融科技数字化转型的浪潮下,申万宏源证券积极响应党和国家的号召,勇于创新,积极探索,力争引领金融科技数字化转型的新浪潮。同时,申万宏源云原生架构通过五年的建设日益稳定和成熟,自研类、中台类项目越来越多,测试团队在保证自研类项目测试时遇到哪些问题?

首先是研发和测试交互成本比较高,整体效率比较低;没有公司级的研发测试流程规范,整体流程混乱;测试资产没有办法闭环,整个研发测试活动中资源浪费比较严重。

上述问题带来的结果就是产品质量不过关,线上问题有点多。

二、持续测试建设过程

伴随着云原生架构落地,为了应对快速的产品迭代需求,测试团队的测试活动以敏态测试为主。但是测试活动的进展比较依赖于开发团队。

2022 年申万宏源证券全面引入 DevOps 研发运维一体化平台,实现了敏捷开发、持续交付以及应用运维的无缝集成。同时,基于接口自动化平台、性能测试平台、安全测试平台等高效测试体系的引进又实践落地了我们的测试分层体系。

最后基于 DevOps 理念和测试分层体系,我们搭建了持续测试体系,将各类测试活动融入到了研发测试的各个阶段,我们的测试活动向需求侧以及运维侧移动,形成了覆盖软件生命全周期的持续测试闭环。

2.1

DevOps 平台

DevOps 平台为公司业务部门、项目经理、研发人员、测试人员、运维人员等多角色提供的一站式工作平台,实现了软件的 CI/CD/CO 的全生命周期的管理。

DevOps 一体化平台的建设实现了流程、制度、工具的相融合,把制度规范固定在了平台内,实现了统一和规范化的管理。

业务中台研发自助团队也是整个公司层面首次使用 DevOps 平台的团队,探索建设了 DevOps 敏态研发体系,也是持续测试体系的基石,同时给整个公司层面推广和建设 DevOps 研发运维一体化平台提供了非常重要的实践落地经验。

2.2

测试分层体系

持续测试分层体系最下层是单元测试,从代码层面来保证产品的质量,也是整个测试活动的第一个阶段。

第二层是 API 接口测试,因为我们的实践项目是后端项目,所以测试活动基本上以接口测试为主,常规的冒烟测试、集成测试、回归测试等都是以接口自动化的形式开展。

第三层是 UI 测试,虽然我们是后端项目,但是我们日常的测试活动中也会从前端层面去测试相关的功能以及回归线上重要的功能点,从调用方的层面来保证我们测试的完备性。

第四层就是非功能测试,包括性能测试、安全测试、故障注入、精准测试等等,这些测试类型都是按需开展。

2.3

初步实践成果

这里是初步实践的成果。第一张截图是 DevOps 平台,我们将研发、测试、运维活动通过 DevOps 平台统一管理;集成交付规范了版本提交的流程;接口自动化平台和性能测试平台的引进,使测试活动从功能测试向自动化方向过渡。

三、持续测试体系介绍

3.1

持续测试体系架构

持续测试体系总共分三层,第一层是基础能力层,其次是核心能力层及价值层。我们拆分看一下。

3.2

持续测试体系的基础能力层

基础能力层包括项目管理、测试管理、持续集成、持续反馈。持续测试体系在 DevOps 敏态研发的基础上,补充了持续反馈的能力,通过搭建我们的度量平台来实现。

上图是度量系统的实践效果图。持续反馈构成了持续测试闭环的重要阶段,是对所有研发测试阶段的流程、效率及质量的一个反馈,可以快速帮助闭环产品的缺陷,提高研发测试的效率。

3.3

持续测试体系的核心能力层

持续测试体系的核心就是通过 DevOps 流水线将 DevOps 平台与接口自动化平台、云原生平台、性能测试平台、数据自动构造平台等多个研发测试工具平台打通,然后各工具平台的能力都以插件的形式集成到流水线中。

首先 DevOps 平台和容器云平台的打通实现了版本的自动部署;接口自动化平台提供了低代码的接口自动化编排的能力,测试人员可以快速的将我们的功能用例转化为接口自动化脚本,同时模拟复杂场景的全流程接口自动化测试。这些接口自动化脚本又可以通过流水线来统一调度执行。

性能测试平台除了提供常规的脚本管理、发压管理以及监控告警之外,还提供了很多问题定位工具,也可以赋能性能测试人员的性能调优能力。

数据自动构造平台规范了测试数据的管理,提供了很多造数脚本可以满足常规的各类型测试活动的造数需求。

在原有的质量管控基础上,搭建了一套从研发-测试-生产的完整的准入准出体系,使我们的质量管控不再是一纸空文,同时也解决了整个准入准出过程中需要人工复核的痛点,大大降低了测试管理的成本,也实现了高质量的准入准出。

3.4

持续测试体系的价值层

持续测试体系的价值层是根据持续测试的理念搭建的。将测试左右移、持续自动化、持续回归、持续反馈等高效的测试活动和方法实践到整个 DevOps 流水线中。

测试左移是指在研发阶段,测试同学就开始进行冒烟用例的编写,冒烟用例的执行结果又作为版本准出准入的条件之一。

持续自动化是指几乎所有的功能用例都可以转化为接口自动化脚本,各类型的接口自动化脚本又可以通过 DevOps 流水线进行统一调动执行。

持续回归是指环境部署成功之后,流水线就会自动调用各类型的接口自动化回归脚本的执行,同时执行的结果作为制品晋级的门禁之一。

持续反馈是指度量系统监听整个研发测试阶段,根据梳理和落地的各类研发测试活动的指标值,自动监控和告警研发测试过程中的一些不合规的情况,可以保证我们研发测试过程的合规性。

各类测试理念和测试方法通过持续测试体系落地到了我们的研发测试过程中,保证了产品质量的同时,还可以保证研发测试活动的合规性。

3.5

具体实践

图一是版本实现自动部署的效果图。

图二是冒烟测试的质量门禁图,冒烟测试必须 100% 通过,产品经理才可以提交版本到测试环境。

图三是版本准出的质量门禁,所有版本需要流转到生产环境,必须满足我们准出的质量门禁。图四是接口自动化不同阶段的用例集,这些用例集可以通过 DevOps 流水线自动调用执行。

3.6

收益

第一、持续测试体系保证了需求得到快速的响应。实践项目的迭代周期从原有的2-3周1个版本降低为每周1-2个版本,最快可以实现每天一个版本。

第二、测试效率也得到了极大的提升。从几个方面,通过测试左移,绝大部分的缺陷都可以在研发阶段被闭环掉。

通过引进造数平台,测试前的准备工作几乎可以忽略不计,同时回归测试基本上可以通过自动化执行,测试人员只需要做一些新功能的复核即可。综合上面,整个测试效率提升了大概有50%,测试人员的成本降低了大概有30%。

第三、持续测试体系通过跟容器云平台的打通,实现了环境维护的自动化,研发、测试、生产的运维成本降低了非常多。

第四、持续测试体系也更加保证产品的质量。通过搭建非常完备的准入准出体系,制品的每次流转都是有非常严格的质量门禁,所以说我们整体的产品质量更高。

综合算下来,我们整体的缺陷下降到原有的30%,漏测率几乎可以忽略不计,大概只有 0.1% 左右。

四、未来展望

最后来看一下持续测试体系的未来展望。

首先,持续测试体系在业务中台团队实践落地也在其他中台类项目做了试运行,也取得了比较良好的效果,后续在公司层面推广,对整个公司测试效率的提升、产品质量的提升都会有比较大的影响。

第二,持续测试体系推动了整个公司层面测试团队测试理念的转变,测试活动由传统的功能测试向研发赋能方向转变,测试团队和研发团队一起来共筑质量的高墙。

同时申万宏源有限公司作为行业首家通过持续测试体系三级评估的企业,后续也会和整个行业一起去实践探索我们的持续测试理念。

第三,我们的测试团队也会继续探索各类型先进的测试技术和测试理念,然后让测试活动更自动化,更智能化。

作者简介

卞凤杰,申万宏源证券质量控制部资深测试专家。

(本文根据演讲者在 GOPS 全球运维大会 2023 · 上海站演讲整理而成,如有图文不妥,请以视频为准。更多精彩,请关注 DevOps 时代公众号。)

0 人点赞