首页>银行业软件测试的思考及工行实践

行业动态

银行业软件测试的思考及工行实践

2017-02-16

  在经济步入新常态的背景下,利率市场化、人民币国际化、混业经营进程加速,金融市场环境愈加复杂,银行业对产品创新的需求更加迫切,依托科技创新深化产品创新、流程创新、管理创新,形成特色化、差异化、精细化的经营管理能力的需求越来越旺盛。与此同时,随着物联网、大数据、云计算等为代表的新兴技术的出现,新兴的金融业务、组织、机制、业态对银行业的传统优势领域形成一定压力,信息系统测试作为信息系统建设不可或缺的一环,承担着确保信息系统正确性、完整性、安全性和质量的重要责任。银行业软件测试如何能在保障银行业务系统质量的前提下,全面、均衡、持续地发展,是银行业测试组织需要思考和不断探索实践的课题。

  图片1.jpg

  一、银行业软件测试的发展历史

  银行业软件测试伴随银行业电子化进程同步发展并逐步走向成熟。工商银行从多年测试组织和实践经验出发,依据导向性、适用性、均衡性、持续性原则,提出金融测试成熟度模型(Finance-TestingMaturityModel,F-TMM)。在F-TMM中,测试组织的成熟度水平可划分为从低到高的四个不同的水平层级。不同的层级代表着测试的发展过程,也对应着测试组织的标准化体系建设过程。

  金融测试成熟度模型共包含相互衔接的四个成熟度水平,代表着金融测试组织从无到有、从混合到规范、从规范到成熟直至可不断自我完善、持续发展的过程。

  第一层级为混合阶段。二十世纪八十年代至九十年代初期,我国各金融机构引入国外大型机、小型机,银行账户系统由传统手工账务实现了电子化迁移改造。这一时期银行的软件测试为发展初期,处于混沌无规则状态,开发人员与业务人员进行交流后,根据自己的理解进行开发,自行完成测试,没有专职测试人员、测试管理工具和测试度量技术,测试工作完成凭工作经验完成。在这个阶段,测试流程和针对测试的风险管控、质量控制尚未形成统一规范,测试的任务分工较为混乱,测试知识和技术相对匮乏。

  第二层级为独立阶段。二十世纪九十年代末期至2000年,我国各大金融机构先后启动了数据集中工程,各商业银行均以集中的数据中心模式替代银行信息系统分散管理的模式,与此相适应的银行信息系统研发管理也采用了集中研发管理模式。这一时期,各银行开始出现兼职或者专职的测试人员,开始使用简单的测试技术方法,目标明确;测试工作有了较为明确的周期和阶段,开始应用简单的测试项目管理工具;业务对测试度量提出了初步的要求;测试数据仍以手工采集为主。在这个阶段,组织结构、制度体系和规范标准进一步完善,涵盖测试领域的各个环节。测试工作成为组织的主体活动,并有计划有执行地分阶段管理。

  第三层级为成熟阶段。2000年中期至今,随着国内经济的发展、金融业务的不断创新,产品间的关联关系日趋复杂、系统间的耦合度也越来越高,测试工作在软件研发中发挥的作用也越来越重要,测试工作逐步从研发工作中独立出来,各个商业银行纷纷成立测试中心,建立起专职从事测试工作的队伍。测试工作进入了统一的、独立的组织管理阶段。测试中心建立了全面的测试体系,测试是一个规范、可控的活动过程。测试中心充分利用独立阶段积累的丰富经验和知识方法,围绕核心职责和战略目标建立了全面的测试体系,建立了理论与实际、现状与未来的转换渠道,为组织的全面、均衡、持续发展奠定了基础。

  第四层级为卓越阶段。测试中心充分发挥测试体系化管理的优势,实现机构组织和管理过程的自我完善和持续优化。测试与上下游之间、测试各个方面间实现了融汇贯通,测试在理论与实际、现状与未来间实现了持续对比和转换。本阶段,体系建设在中心战略目标的设定、测试实际的指导中发挥着重要作用,组织的测试能力和成熟度代表着行业领先水平。目前,测试中心还未发展到这个阶段。

  二、工商银行软件测试实践

  F-TMM是基于金融测试组织的标准化体系建设而设计的,其核心价值是理论联系实际、现状衔接未来,为组织的全面、均衡、持续发展奠定基础,为组织的战略设定和组织实施提供指引,这是测试中心发展的终极目标。

  工商银行测试中心历经十年发展,在全行提出全面业务转型,勇闯“三关”(资产质量关、经营转型关、改革创新关),打造“4+1”(产品、场景、服务、渠道+融e联)模式的大环境下,提出了测试一体化管理的思维,力求从全行业务发展的视角出发,加强对业务风险的把控,提升产品质量口碑,培养一批熟悉境内外业务的专家型人才,助力全行业务发展。同时,为破解传统测试方法无法应对迅速增长业务需求的难题,提出了测试标准化和自动化思维,以突破发展瓶颈,逐步降低测试人员投入,使员工可以从事价值更高的工作,提升员工核心竞争力和成就感,即建设一体化、自动化、标准化的“三化”战略。

  “三化”战略的总体目标是建成全面完备的测试体系和视图,建立要素全面、层次清晰、机制健全、行动有效、改进持续的体系;建立测试工作推进的基线和衡量标准,实现各项任务的统一管理和灵活调度,实现不同阶段各责任主体默契配合,实现资源和成果高度共享;主体流程和业务测试实现全面的工具支撑,测试实施以自动化执行为主,员工工作集中在测试的分析设计;最终实现高水平的测试质量目标,强有力地控制生产事件,大幅度地提升响应力。

  1.测试一体化

  测试一体化的核心是测试工作进一步向前拓展,整合跨组织测试流程,强化测试生命周期的统一管理。在产品全生命周期过程中,测试一体化管理以需求分析为先导,以业务流程测试、验收及适应性测试为核心,以业务推广支持为助力,通过集结全行专业化测试力量,为全行业务改革发展和安全生产运营提供支撑。

  围绕一体化测试管理要求,立足业务改革发展,按照统一测试组织、统一测试流程、统一测试规划、统一测试标准、统一测试资源的五个统一的工作思路,厘清职责,梳理流程,为提升测试质量和效率奠定基础。

  (1)统一测试组织是改变以往按项目组织测试的模式,建立以业务系统为纽带、涵盖产品全生命周期的统一测试组织模式,建立端到端的产品质量控制体系,提升测试质量。改变前移模式,产创立项后测试中心全面参与需求讨论,参与需求受理意见反馈,改变按软需测试模式,和开发人员共同把控需求,减少需求变更数量。统一组织专项测试,共同制定特殊场景(如年终决算、性能、灾备、投产演练等)专项测试工作方案,合理安排专项测试资源调度,减少重复工作。产品经理组织全面参与业务需求,按业务系统主应用牵头负责原则,与开发中心建立常态工作对接,统一组织两阶段测试,确保业务系统测试的系统性和完整性。产品经理参与到项目《可行性评估》、《需求受理意见反馈》的制定环节中。产品经理全职化,牵头组建测试设计团队,组织设计团队参与需求工作,牵头验收标准的输出及评审,逐步实现测试设计与执行分离。通过全面参与需求,改变软需测试模式,按照产品线组织测试,减少对开发人员的干扰,提升测试质量;统一专项测试,减少重复工作。强化测试人员参与业务需求及项目研发设计方案评审工作,澄清业务需求,开展业务风险评估工作,输出验收标准。通过测试人员尽可能提前介入需求,加大参与需求和架构设计的力度,使得测试目的由保障产品质量转变为使产品更符合业务需求、更好地把控业务风险,并减少需求变更,从而提升测试工作的价值。

  (2)统一测试规划是实现环境、计划的统筹规划,全面参与流程测试确保流程测试阶段满足交付标准,协助开发不断调整开发节奏;规划全行一体化的测试管理平台,建立工具、方法共享机制。对测试环境进行优化整合,节省测试环境维护资源,通过打通测试环境,实现环境资源及测试数据的共用,减少测试环境、测试数据的重复准备;节省重复的测试环境资源投入,提高测试环境使用率,提高测试数据复用率;提高各阶段测试环境质量和稳定性。对业界成熟的测试阶段划分的方法和理论进行研究,建立更合理的测试阶段划分,不断促进开发改善研发节奏,确保流程测试阶段满足交付标准,促进开发节奏持续优化。

  (3)统一测试流程是统一项目流程、统一问题流程、统一版本流程,明晰权责,减少重复工作,提升测试效率。牵头制定流程测试与验收及适应性测试两个阶段共享测试计划、测试方案、测试案例,使两阶段的测试活动各有侧重,降低重复工作量。推进平台版本程序级管理,实现智能安装(解决测试环境版本冲突)和投产组包功能。改变向生产单位转发版本包的发布方式,直接面向生产制作并发布投产包,提高投产效率和质量。整合优化流程测试和适应性测试两阶段的问题处理流程;内部完善问题跟踪管理,提高问题处理效率。各产品线建立测试问题管理专岗,加强测试内部问题过滤及升级机制,加快问题解决效率,减少开发人员对重复问题的处理。组建测试服务支持团队,促进技术业务融合,减少环境问题。

  (4)统一测试标准是统一验收标准,从源头提升产品研发、验收测试与业务需求的符合度,推进案例标准化、可管理、可复用、高质量、可持续优化的资产库。组织产品经理及开发中心应用测试负责人制定统一的业务验收标准,改变目前依据软需开展测试的模式,从研发、流程整合测试到验收及适应性测试,有统一的业务验收标准作为测试依据,从源头上提升产品研发、验收测试与业务需求的符合度。通过标准化分析过程,建立可管理、可复用、高质量、持续优化的资产库,为版本风险识别和控制提供直接手段,同时在全流程业务测试中创造新价值。

  (5)统一测试资源是实现快速灵活的测试资源分配和调度模式,充分共享测试资源(如人员、案例、介质等),提升资源的使用效率。提升环境维护水平,使得环境可随需灵活调整。研发中心与测试中心共同完成各阶段测试案例编写,发挥相互借鉴和互补作用。

  在一体化测试工作中,强化全行安全测试工作统一组织和统一规范。在项目需求阶段,安全测试人员早介入,尽早发现需求、设计安全风险。在研发阶段,开展代码安全检查,采用以测代培的方式推动全集团的特殊安全测试工作,不断扩大沙盒应用安全测试范围,制定全行应用安全测试案例指引。加强安全测试工具研究,提出全集团代码安全扫描工具部署方案,启动输入场自动化测试工具研究,引入黑客外挂工具思路,自主研发安全测试工具。

  2.测试标准化

  测试标准化是在对测试对象和测试过程的各个活动进行抽象、总结的基础上,形成可推广的标准概念、术语、定义、组成和过程分解的集合,并逐步建立资产库,不断持续优化、引导员工行为的建设活动。测试标准化包括测试对象和测试过程标准化。

  (1)测试对象标准化是将测试的系统对象进行结构化分析和呈现,并定义统一的验收标准。具体测试对象包含业务产品、业务流程、业务规则、业务要素、测试案例、测试脚本、IT软件的转移过程和方法等。重点包括业务领域划分、产品业务流程和信息标准等业务内容规范和技术研发规范,这些内容形成业务白皮书建设任务。

  (2)测试过程标准化是将所有测试任务进行分类分析和结构化呈现,识别关键工作项和主体工作项,分析各工作项的资源配置、约束、依赖及逻辑关系,同时定义对测试对象的工作实施组织方式和流程的规范标准,以提升测试工作组织效率。重点包括项目集管理、项目管理等管理类工作规范,以及测试技术支持、测试实施等实施类工作规范,其中测试实施的分析、设计、执行属于测试案例标准化建设任务。

  测试标准化在测试一体化上的应用集中体现为验收标准,确保测试工作各种输入、输出符合标准要求。验收标准是在需求编制和分析过程中定义、检验软件产品是否满足业务需求的一系列衡量准则,起到驱动研发、指导测试的作用。根据测试内容不同可分为项目测试验收标准、变更测试验收标准、适应性测试验收标准、专项测试验收标准四个类别。

  验收标准、业务白皮书是从业务产品出发,通过标准化的分析方法厘清业务处理流程及规则,明确验收测试时需要关注的内容及事项。验收标准累积后形成业务产品的白皮书,而业务白皮书不但可以诠释业务产品的处理流程及规则,帮助业务人员理解、操作,还可为业务部室用于新的需求编写,生成相应的验收标准。验收标准输出的业务处理流程及规则将用于后续生成标准化的测试案例,用于验证业务需求实现的情况。

  同时,为了确保测试实施过程符合“三化”要求,还需建立适应测试一体化管理的质控标准,进行有针对性的质量控制。

  3.测试自动化

  测试自动化指通过科学、有效、合理地利用自动化工具,逐步增加测试自动化占比,提升测试自动化水平

  和生产力,达到提高测试效率、严控测试质量的目标。在不同业务系统、环境、测试活动过程中构建多层次、多纬度的自动化测试工具的分层管理体系,即“自动化工具的生态圈”。测试自动化的重点是将常用的、稳定的工作流程或频繁的单点执行内容通过信息化工具或自动化脚本进行固化,以工具处理的方式实现工作快速处理,实现特定工作的硬控制和自动化实施。

  测试自动化分为狭义和广义。狭义的测试自动化通常称为“自动化测试”,指通过编制脚本的方式实现具体测试内容的自动化执行;广义的测试自动化指所有通过工具辅助实施的测试工作内容,包括准备测试环境、实施程序的自动化安装和发布、管理测试进度等管理类工作的自动化。通过测试自动化工作逐步实现测试管理的高度信息化、环境运维和测试执行的高度自动化,为测试工作的全面实施、重点突破、难点攻关提供全方位的技术支撑。测试自动化发展的策略紧跟业界领先的测试工具研发企业的步伐,保持和业界测试工具的信息同步。由此,可以确定测试自动化发展的三个方向。

  方向一是健全机制和管理规范。建立自动化建设规划机制,进行长期的“滚动式”规划,明确自动化发展方向;提高员工对自动化的认识,激发员工自动化创新热情,促进生产力提升;建立工具全生命周期管理机制,解决工具共享问题;建立面向全行的、跨机构的自动化课题研发机制,建设与总行科技奖励体系接轨的管理机制。

  方向二是建设支撑测试一体化的测试平台。建设涵盖测试全生命周期、支撑测试一体化管理,集测试管理、案例分析、测试实施、版本发布、技术支撑和资产管理于一体的测试平台,提高测试管理水平,提升测试能力和测试效率。

  方向三是重点工具的突破、优化和推广。为适应测试一体化、测试标准化的要求,逐年优化完善现有的自动化工具,不断引入新工具,丰富中心重点工具范围,加大跨部室、跨机构的推广力度,发挥实际作用。

  “三化”工作既相互独立又有着各自独立的内涵,相互依存,提供了互补式支撑。一体化为标准化和自动化提供了输入,属于测试组织战略层面的内容;标准化是针对测试对象和测试过程规范化和标准化建设的主体,体现一体化和自动化之间的“中枢”作用;而自动化是一体化和标准化建设的具体实现,属于测试工作战术层面的内容。“三化”建设是推进测试组织向成熟组织落地的关键步骤,是建设测试体系、实现测试持续发展的有效途径。其中,组织、制度、规范标准、流程、风险、质控、知识和工具作为测试成熟度实施模型的重要度量框架和内容,其本质是一体化、标准化和自动化在测试成熟度模型的具体度量,为持续改进提供依据。

  目前“三化”工作已经实施了半年多,取得了良好的效果。通过测试一体化的管理,统筹测试各个阶段的测试工作,降低了重复工作量,提升了测试效率,助力不断调整研发、测试节奏,为进一步压缩产品研发周期,创造了有利的条件。通过标准化工作,在业务白皮书、验收标准、案例设计等工作中形成工商银行特色的较为成熟的规范方法论。在实践运用中,通过全面参与业务需求讨论,输出验收标准,减少了业务需求变更的数量,提升了产品质量和客户满意度。在自动化工作中,依照年初确定的目标,不断优化测试管理平台,提高测试管理信息化水平,为测试数据采集、过程控制、管理决策提供了支持,同时逐步提高了测试人工替代率水平和环境自动运维水平。

  面对互联网浪潮来袭,银行测试行业正在面临新的挑战,测试早已不是简单的代码扫描、发现缺陷,也不仅仅是对业务的保障和技术的支持,更重要的是已经成为银行业金融机构抵御风险、提高业务风险控制能力、强化业务流程的关键。在新形势下,我们要勇于面对新挑战,敢于变革,不忘初心,用智慧破解难题,实现银行测试的健康发展。

分享至微信 分享至微博

Connecting The World

每周精选

分布式架构在邮储银行的应用实践
中国人民银行:银行业实施分布式架构的思考
工商银行:打造集中与分布有机融合的IT架构
农业银行:IT架构支撑银行综合经营与融合创新
中国人民银行:数据中心分布式架构转型思考