视角
Viewpoint
上海浦东发展银行信息科技部副总经理 张国栋
近年来,伴随云计算、大数据、人工智能等新技术的快速发展,金融与科技的融合程度不断加深,为银行业转型升级、提高全要素生产效率带来了新的机遇,各家银行纷纷开展数字化转型,银行信息化建设的架构、模式、流程等均发生了重大变革。测试工作作为质量保障的重要环节,如何保证产品研发效率更高、用户体验更佳、系统运行更稳定,成为商业银行急需解决的重要课题,并对新时期测试工作提出了全新挑战。
孤注一掷一是测试迭代速度越来越快。市场要求金融服务响应更迅捷,银行信息系统新功能和新产品上线交付的速度由原来的每季度、每月一次,发展到现今的每周一次,甚至一周多次,交付效率的加快要求软件测试
用户验收测试在银行数字化转型中的创新实践
上海浦东发展银行信息科技部副总经理 张国栋
的速度也需要同步提升。
二是测试复杂程度不断加深。随着银行业务规模和种类的不断拓展,加之大数据、云计算、人工智能等新技术的广泛应用,银行业信息系统范围、架构规模、交易链路复杂性等都在不断提高,而可能产生缺陷的因素也越来越多,测试需要覆盖的场景和功能点越来越复杂。
三是测试质量要求持续提高。当前,监管部门对银行系统安全稳定运行的要求愈发严格,用户对银行产品体验的要求更高,银行间同质化产品竞争也不断加剧,类似变化促使测试工作逐步从最初的功能可用性验证扩展到兼容性、用户界面、用户体验、操作合理性等多个方面。
为应对上述变化,浦发银行从2018年起历经3年多的时间,由测试部门的专业测试人员牵头,组建了承
接全行大部分业务系统的用户验收测试团队,并围绕“创新自主化、流程平台化、管理可视化”的工作思路开启
了一系列创新实践,通过机制优化、数据驱动、技术赋能,致力于为银行数字化转型提质、增效、赋能。
一、锚定测试难点,推进业务、开发、测试深度融合
对于商业银行而言,用户验收测试是当前最重要的测试类型之一,主要指站在用户或银行一线员工的
角度,检验银行系统是否可在功能、兼容、用户体验等方面满足预定需求,其对于提升产品质量、满足客户需求、保障系统功能性和稳定性等均起着至关重要的作用。然而,以往的用户验收测试通常由业务人员承担,经常存在工作投入量大、测试资源匮乏、测试方法不专业等问题,
豆瓣酱炒豆腐VIEWPOINT
一些重大项目往往因验收测试进展缓慢而影响了上线交付的时间,且很多缺陷到上线投产后才被发现,甚至严重影响了用户的使用体验。尤其在数字金融时代,随着新兴技术在开放、互联、竞争、合规、风控等领域大量应用,以往在用户验收测试工作中存在的问题隐患也更加凸显。
举例来说,传统的用户验收测试通常是在项目研发周期的后半段开展,一方面测试人员介入较晚、缺少主动权,只能被动接受既成的业务需求和软件版本;另一方面也需要耗费较多的时间理解需求和准备案例,影响软件交付效率。对此,浦发银行组建了由业务、开发、测试人员组成的融合团队,以“目标一致、利益共享、责任共担”为核心原则,积极提升需求沟通和研发效率。同时,通过开展测试左移,将测试活动从传统的代码开发完成后左移至需求、设计和代码实现阶段。例如,在需求阶段,测试人员将提前开展测试计划、测试设计、测试案例编写等工作,从而显著提升了测试交付效率。在代码实现阶段,通过在每次提版后即开展自动化回归测试,可及时发现因代码变化导致存量功能产生问题的风险,进而提高用户验收测试的质量。
从实践成效来看,浦发银行通过建立融合团队和开展测试左移,不仅在需求和设计阶段即能够提早发现和预防缺陷,还可帮助测试人员加速从“被动响应”向“主动预防”转变,进一步减少了风险隐患。同时,业务、研发、测试之间的沟通协作也更加顺畅,通过增进测试人员对需求和业务场景的理解,同样有利于加强测试的广度和深度,提升测试质量。此外,由于很多工作都已被前置,不仅有利于缩短测试阶段所需的时间,还可显著提升新功能的上线效率。
鲜奶二、强化工具自主研发,促进测试质效提升
在人手有限的情况下,测试部门要全面承接用户验收测试工作离不开工具的有效支撑。为此,浦发银行不断加强测试工具的自主研发,以促进用户验收测试的质效提升。
1.自研测试案例生成工具,提升案例设计规范和生成效率
测试案例的分析设计是软件测试工作过程中最重要的环节之一,如何确保测试案例设计的有效性,通过技术手段降低测试案例准备的人力投入,是提升测试效能和质量的关键因素之一。为此,浦发银行积极开展测试案例自动化生成工具的研发工作,综合运用基于思维导图模型的业务规则等价类分析、基于操作流程图的测试需求梳理、基于微服务架构的全类型测试案例自动生成引擎等手段,将测试分析建模快速转换为测试案例,实现了测试案例自动化生成,最终大幅提升了从收到需求到生成案例这一过程的执行效率。实践中,上述测试案例自动生成技术已应用于250多个业务系统,相较传统案例
生成方式,新建系统案例准备效率提升约28%、存量系统效率提升约51%,并实现了测试案例的可积累性、可重用性、易检索性、易维护性与规范性。
2.建设测试数据自动化工厂,解决测试造数痛点
传统模式下,测试工作中一直存在造数过程复杂、人工操作工作量大、效率低下等问题,严重牵扯了开发、测试和业务人员的精力,以至于影响研发效率。对此,浦发银行专门打造了测试数据自动化工厂。与传统使用SQL语句,只能在单个系统、有限场景中造数不同,测试数据自动化工厂可通过模拟用户业务操作来产生测试数据,并基于交易串接的方式实现多场景、多系统间的测试数据自动化生成。例如,对新开公司客户号、个人客户信息建立等复杂场景的测试数据,原本手工造数每条需要5~15分钟,而通过平台造数只需10~30秒,造数复杂度和人工操作难度大幅度降低,最终使测试效率得到极大提升。
三、打造测试中台,构建持续测试流水线
为推动测试与开发深度融合,浦发银行在数字化转型过程中将质量和效率要求内嵌到敏捷研发的工作流程
视角
Viewpoint
图1 浦发银行测试中台系统架构
决策
统计
视图
报告
苍白
入口
登录
功能
应用
资源集市
真机云
环境
能力分析
管理
监控
运维
测试
支持
需求和支持
资产库
管理
度量
生成
测试域
扫描
工程
渗透
比对
覆盖
体验域
设计
总线
服务网关
框架
调用
编排
组装
执行煲排骨汤
生成
测试
测试
模拟
调优
机器人
识别
工程
分析
据
前
台
源
美国轰炸日本
后
试
能
力
中,创新打造了高度契合自身研发体系的测试中台系统
(如图1所示),其具体功能如下:
一是实现测试服务能力的标准化、服务化与开放化。
测试中台通过将源代码扫描、性能、安全、接口测试、
UI测试、测试环境构建、测试数据生成等各类测试能力
以API方式提供对外接口,使其可作为共享服务供外部应
用调用,实现了对各类测试工具和平台的能力整合。
二是构建持续测试流水线,将测试服务能力内嵌到
多个场景。测试中台通过将功能、性能、安全、源代码
扫描等多种测试能力通过流水线的方式串接在一起,构
建形成了持续测试流水线,既能够在日常回归测试过程
中独立运行,也能够被DevOps流水线所调用,从而具
越俎代庖备了多种场景下的测试服务能力。同时,基于持续测试
流水线还可将测试服务能力前移到日常开发过程当中,
进而尽早开展各类测试,整体提升开发质量。
三是打造测试工具共性的需求功能。测试中台通过
搭建各类测试工具所需的共性功能,如测试数据工厂、
测试报告生成、安全权限控制、日志记录、度量数据采
集等,有效避免了不同测试工具的重复建设,并可显著
减少因外部需求导致的测试工具本身的频繁调整,更好
放屁特别臭什么原因
地快速响应和实现个性化需求。
四、推进数据驱动,建立全方位测试管理度量
体系
为做好用户验收测试管理,商业银行需要建立以数
据驱动为核心的测试管理体系,并开展细致、有效、及
VIEWPOINT
时的度量分析。然而,由于测试管理数据往往被存放在多个测试工具中,易导致数据孤岛多、数据类型多、数据体量大、数据源多样化、数据质量低、数据不直观等诸多问题。对此,浦发银行在做好架构规划的前提下,从前、中、后台分别开展了数据能力建设,并打造可快速定制的测试数据服务能力,实现了各类测试数据“可采集、可分析、可使用、可度量”,最终形成了对测试数据的闭环管理。
一是在数据后台方面,建设了测试数据分析与服务平台。该平台基于大数据技术,可实现面向多来源、多类型测试数据的集中采集、清洗、存储,从而有效整合各类系统的底层数据,打通数据孤岛,为上层应用提供稳定高效的数据存储和分布式计算资源。
二是在数据中台方面,实现了基于后台底层数据的处理、分析功能。为减轻上层应用的计算负担,浦发银行开发运行了1000余个面向各类测试过程数据的实时和批量处理调度任务,同时将数据处理能力集中到测试中台,运用大数据、人工智能、机器学习等技术构建了多种数据加工算法模型,并搭建了各类数据服务的标准化服务接口供各类应用场景调用。
三是在数据前台方面,开展了各类数据应用场景和可视化建设。浦发银行通过打造质量画像,从代码问题、测试缺陷、生产事件等多个维度量化了各项指标和数字化标签。同时,构建用户体验舆情分析系统,及时采集、处理和响应由应用市场、客服、用户访谈等渠道反馈的用户体验舆情信息。此外,浦发银行还基于组织管理视角构建了可视化分析平台,支持从测试服务水平、系统质量、项目进度、预算执行、行员管理、外包资源、测试资产等多个视角和维度,对测试工作的“人、财、物”进行全方位、可视化分析和展示,做到测试工作“心中有数”。
五、创新测试方法,提高测试质量
1.实施基于风险的测试,推动测试策略从“发现缺陷”向“预防缺陷”演进
通常情况下,由于测试时间有限,用户验收测试不可能穷尽每个版本的每个功能、每条业务路径,因此,如何在测试资源有限的情况下,尽可能降低系统质量风险、避免历史问题重复发生、使测试投入有更高的回报,已成为当前测试质量管控工作的主要挑战之一。对此,浦发银行致力于将以往基于经
验的、以发现缺陷为目的的测试,改进为基于资产复用的、以风险防控为目的的测试;同时,通过建立风险资产库,设立基于风险的测试基线,将风险融入测试全生命周期当中,覆盖需求分析、测试设计、测试实施和版本投产等关键活动,最终实现了时间、成本和范围三要素的高效平衡。
2.开展探索式测试,发现常规测试以外的缺陷问题
在常规测试模式下,软件测试的需求、设计和流程都要求按照预先设计的文档和脚本来开展,但一成不变的测试方法却往往会使系统逐渐产生“免疫力”,乃至越来越难以发现系统的潜藏缺陷。对此,浦发银行另辟蹊径,开展了探索式测试,力求使测试人员能够在常规测试以外发现更多缺陷。例如,针对手机银行、公司网银等十多个重要客户服务类系统,浦发银行通过及时收集、判断测试情报,优化测试决策和设计,并立即将其应用于测试执行,排除了多个涉及用户真实体验的风险隐患,在有效提高软件质量的同时,切实降低了项目实施风险。
银行业数字化建设方兴未艾,浦发银行测试部门通过主动承接用户验收测试,使业务部门有更多精力聚焦于业务创新等核心职能,同时通过测试手段创新,极大提升了测试效率,加快了研发上线的迭代速度,并促使因功能缺陷导致的生产事件数量明显下降,高效支撑了全行数字化转型。后续,浦发银行还将继续积极探索在管理能力、服务水平、用户体验等方面的持续提升路径,不断推动业务向高质量转型发展,为将浦发银行全面建设成为具有国际竞争力的一流股份制商业银行注入更多创新活力。