实战Practice丨商业银行云测试服务模式探索

实战Practice丨商业银行云测试服务模式探索

实战Practice丨商业银行云测试服务模式探索

欢迎金融科技工作者积极投稿!

各抒己见!

投稿邮箱: newmedia@fcmag.com.cn

——金融电子化

征稿启事

本文节选自《金融电子化》2018年5月刊



作者:中国建设银行北京开发中心

    张爱华?李冬晓?韩久学

编者按

本文从传统测试服务存在的问题出发,总结云测试服务模式需具备的服务能力,同时通过云测试体系架构及交互流程两大方面详细描述整个云测试模式。

行业背景:

云计算与生俱来的快速部署、按需使用、按量收费、灵活伸缩、高弹性等技术优势,奠定了商业银行向金融科技(FinTech)转型的技术基石。有机遇就有挑战,银行服务群体逐渐从大客转变到全群体,服务难度增大、客户体验要求变高,对银行IT应用系统的质量提出了更高、更专业的要求。



当前问题:

作为把控系统质量至关重要的测试体系,仍以劳动密集型传统测试为主,存在测试准备周期长、测试执行成本高、测试资源利用率低等痛点问题,无法满足金融科技时代对于测试的高标准要求。

应对措施:

商业银行测试团队在该形式下砥砺前行,从长期积累的众多工艺方法中,优中取优,创新性地提出了基于云计算平台的测试服务模式。



传统测试模式存在的问题

传统的测试模式存在如下四方面的问题。



1.测试准备周期长,人力成本高。企业级项目的测试准备时间占测试周期的40%,准备内容包括:方案、案例、脚本、数据、环境。每块内容需人工准备,人力成本高。

2.测试执行成本高。测试执行成本高体现在两个方面:一是基础设施购置成本高,所需基础设施需要购买,包括服务器、网络设备、存储设备、系统软件、测试工具等,软硬件投入巨大;二是手工执行成本高,测试人员需要执行大量的案例来保障软件的稳定性和可靠性。

3.资源利用率低。据统计测试环境资源满负荷高峰使用时段仅占整个环境资源的20%,资源闲置造成大量浪费。

4.重复工作多。传统测试在环境准备、测试执行、报告撰写等方面都存在不同程度的重复投入。

云测试服务能力

云测试服务有效解决了传统测试模式存在的问题,需要具备的服务能力体现在5个方面。

1.敏捷测试能力。敏捷测试是指在短时间内自动执行大量重复性测试任务的能力。根据预先定义的测试类型规则,实现单元测试、接口测试、UI测试、性能测试的自动执行。

2.测试项目管理能力。测试项目管理提供专业测试管理能力,包括计划制订、进度管理、质量评审、缺陷状态管理及追踪、以及资产管理等功能。

3.测试工具、平台服务能力。测试工具、平台提供整套测试工具链服务,包括方案、案例、脚本、机器、监控、报告、接口测试工具、UI测试工具、性能测试工具等。

4.测试集成服务能力。测试集成服务提供服务集成能力,根据测试类型信息等输入信息,生成测试模板,该服务实例化模版信息,为用户实现模板定制化测试服务。

5.测试环境快速搭建、弹性伸缩能力。测试环境的快速搭建和弹性伸缩通过调用虚拟资源池和预制的云镜像机制实现,不仅指数级缩短了测试准备时间,提高了测试效率,同时实现了资源利用的最大化。

云测试服务体系架构

云测试服务体系架构设计满足5个测试服务能力

,体系架构如图1所示。架构共分为3层:基础设施即服务层(IaaS)、平台即服务层(PaaS)、软件即服务层(SaaS)。本节详细介绍各层功能及组成要素。

实战Practice丨商业银行云测试服务模式探索

图1  云测试服务模式体系架构

1.基础设施即服务层(IaaS)。IaaS层提供了云测试服务所需的基础环境,由物理资源,虚拟资源、云资源调度管理三个功能模块组成。物理资源模块提供计算、网络、存储、安全所需的物理资源;虚拟资源模块使用VMWare、KVM等虚拟化技术实现物理资源虚拟化,为上层云资源调度提供高效、灵活的资源管理能力;云资源调度管理模块提供了虚拟资源管理及资源动态分配能力,通过使用OpenStack等云管系统实现。

租户申请资源时,通过云管系统提供的API或者UI指定虚拟机配置、操作系统规格参数申请所需的虚拟资源,申请成功后,租户即可通过远程桌面或者SSH等访问使用。测试所需的各类环境资源,如压力负载机、压力控制器、MOCK、应用服务器和数据库服务器等均通过IaaS层获取。

2.平台即服务平台层(PaaS)。PaaS层是云测试服务的核心层,提供软件测试全生命周期所需的整套工具链。包括测试环境服务、通用测试工具服务、安全测试工具服务、监控管理服务、应用编排服务、通用API服务六大功能模块。

(1)

测试环境管理服务模块提供机器查看、新增、重启、停止、删除、自动分配等功能,以及机器所需软件版本自动部署服务。

(2)

通用测试工具服务模块提供方案、案例等提交件的管理服务;提供缺陷创建、状态维护、缺陷进度跟踪服务;提供脚本创建、编辑服务;提供报告模板定制及自动生成服务;提供测试场景创建、编辑、执行功能;提供单元测试工具、接口测试工具、界面测试工具、压力测试等测试执行工具引擎服务;以及提供MOCK挡板配置服务。

(3)

安全测试服务模块提供DOS攻击等渗透测试所需的专业测试工具服务。

(4)

监控管理服务模块提供测试环境资源服务器资源状态监督、预警,以及测试日志实时收集展示功能。

(5)

应用编排服务模块提供PaaS层各工具服务实例化创建、更新、回收操作。

(6)

通用API服务提供测试环境、通用测试工具、安全测试、监控管理服务API接口,这些接口基于RESTful协议封装设计。SaaS服务或租户可调用API平台发送请求,获取服务实例。

3.软件即服务层(SaaS)。SaaS层通过互联网为租户提供了套餐式测试服务。套餐服务包括测试专家咨询服务、测试项目实施定制服务、测试项目管理服务、测试环境服务四类。

(1)

测试专家咨询服务由资深金融系统测试团队专家组成,提供金融类和非金融类系统专家咨询服务,咨询内容包括项目风险评估、测试指标设计、测试方案设计、测试案例设计。通过咨询服务有效地解决了租户测试专业性不足、测试人力不足的问题。

(2)

测试项目实施定制服务提供APP检测、性能检测、功能检测、安全检测的专业测试类型服务,这些测试服务通过调用PaaS层通用API服务快速实现服务实例化,大幅缩短租户测试周期。例如租户申请性能检测服务后,该服务为租户提供含有脚本管理、测试场景管理、测试环境管理、监控管理服务、Mock等服务的可视化界面,租户无需在为设计方案案例、搭建测试环境、启动监控服务、编写挡板而费时费力,仅需完成相关配置即可使用。

(3)

测试项目管理服务提供任务管理、质量管理、资产管理、配置管理四大功能。其中任务管理包括新建任务、新建测试任务计划、新建测试任务场景、租户所属任务列表查看、任务进度跟踪、定制服务编排功能、环境列表查看、方案/案例管理查看的功能、测试场景列表查看及执行的功能。质量管理提供上线前和上线后的质量管理功能。上线前的质量管理提供方案、案例、脚本、场景的规范标准、设计标准及评审标准;上线后的质量管理为租户提供系统生产运行数据分析。资产管理,提供专业的金融类/非金融类测试方法知识库、标准案例库、标准脚本库、标准测试指标库及模板库。配置管理服务,提供测试服务过程中问题追踪管理、以及服务权限管理等功能。

(4)

测试环境服务提供测试环境列表查看、环境新增、修改、删除、重启的功能,以及环境手动分配、环境自动分配策略维护的功能。

云测试服务交互流程介绍

租户可通过互联网访问云测试服务,使用流程以2图示意。该图分为两个部分,云测试服务使用流程,及传统服务模式流程。本节详细介绍云测试服务使用流程,并通过与传统服务模式的对比展示云测试服务模式的优势。

实战Practice丨商业银行云测试服务模式探索

图 2  云测试服务模式使用流程示意

软件测试全生命周期可以划分为四个阶段

启动阶段、准备阶段、实施阶段、收尾阶段。图2示意按照这四个阶段描述测试活动。

1.启动阶段。租户身份验证通过后,选择专家咨询服务,专家团队为租户设计专业的测试方案、案例及环境配置说明。租户依据测试方案,进入测试准备阶段。

2.准备阶段。租户使用测试项目管理服务、测试环境服务、测试项目实施定制服务为进行测试实施工作做准备,具体工作流程为:租户通过项目管理完成任务创建、计划制订,同时上传方案、案例;租户通过测试环境服务自动申请环境并完成版本部署工作;租户根据测试方案选择定制服务,如果选择的定制服务>=2,则按照先功能后性能测试的流程设置测试执行顺序;租户依次在定制服务页面创建测试脚本、场景;整个过程中涉及的提交件由质量管理组件自动进行规范和合规性审查。

3.实施阶段。租户进入项目管理服务中的测试场景界面,启动测试场景执行操作,云测试服务根据测试场景依次执行功能测试场景、性能测试场景,场景启动时由测试环境服务自动分配压力机。执行过程中的服务器监控和日志收集通过调用监控管理服务实现。整个执行过程中,监控管理服务监测压力机资源,若发现压力机资源瓶颈后弹性扩容提供更多的压力机资源支撑测试压力。

4.收尾阶段。每一轮测试执行完毕后,测试报告管理服务自动生成测试报告。据统计,传统的测试流程中,测试准备阶段平均耗时3~4周时间准备环境、脚本、数据;测试执行阶段每人每天手工执行功能测试案例约30~50个,压力测试案例约4~5个,可用性等非功能测试案例约3~5个;测试收尾阶段测试报告约耗时1周时间。以2016年建行新一代核心系统功能测试为统计单位,全年手工共执行案例约200万个,需投入5万人天。即相当于137个人全年无休投入工作,测试人力投入和时间成本高昂。传统测试模式中手工重复操作占主导地位,导致了测试准备周期长,测试执行成本高,测试资源利用率低,专业化程度低,无法高效地支撑金融科技。采用云测试服务模式后,测试资产集中沉淀,测试管理专业正规,测试工具统一调度,测试环境按需分配即时可得,保质保量的同时显著提高测试效率:测试准备、测试执行阶段耗时从人周缩短到人天,测试收尾从人天缩短到了小时。

结论

云测试服务模式在复杂的背景下突破创新,抓住机遇,打破传统的测试方法,提供了全方位、高效、便捷、高质量的测试服务模式,不仅实现了测试能力的输出,同时为强大的云市场应用提供有效的质量保障。可以说,测试即服务有效支撑了云市场战略发展目标,必将推动云平台在金融行业的全面落地。

实战Practice丨商业银行云测试服务模式探索




《金融电子化》新媒体部

主任 / 邝源   编辑 / 潘婧