实战丨中国银行业软件测试框架的思考与实践

发布时间:2024-01-28 17:22:27   来源:开云体育官网入口    阅读:1 次

  本文基于银行业软件测试面临的困难和挑战,提出银行业软件测试框架,并探讨基于银行业软件测试框架的发展思路和实践路线。

  行业现状:在互联网金融发展新形势下,金融软件一方面要关注金融安全性、政策约束性、系统稳定性和操作易用性等内容,以满足多种利益相关方的价值诉求;另一方面也要应对新战略、新理念、新技术的外在变化,以保持持续的生命力和竞争力。在此背景下,测试工作怎么样应对机遇和挑战,完成转变发展方式与经济转型,是新时代银行业软件测试面临的新命题。

  改革开发的四十年,是我国金融业快速地发展的四十年,也是银行科技规模化扩张的四十年。时至今日,规模化原始积累的内部矛盾日益凸显,银行科技面临的外部环境也发生了变化。

  首先,在银行软件测试内部,我们面临着测试设计不全、自动化水平不高、过程成果可追溯性不强等问题,测试实施和管理成本不断加大。怎么样才能解决这样一些问题,关系着银行业软件测试能否持续发展。

  其次,金融软件作为新时代金融业务发展和风险防控的主要载体,能否进一步提升金融软件系统的安全性、稳健性,实现金融业务在合规、安全的环境下快速创新,关系着我国金融安全和稳定发展的大局。

  再次,在“互联网+”的战略驱动下,软件对客户的真实需求的响应速度慢慢的变快,敏捷、DevOps等新理念非常关注,其理论和实践体系渐近完善,软件质量保证工作从传统的功能性测试上升到全面的产品风险防控,产品视角的UAT测试显得更为重要。

  最后,金融科技促使业务渠道从柜面转至互联网,获客方式从人工销售升级为智能销售,金融科技正在颠覆传统的业务布局和运营模式。这些新技术怎么样做测试验证,是不是能够加以利用,将测试做得更好,是银行业软件测试需要研究的新课题。

  内外部环境变化的同时,软件工程及软件测试的理论发展为银行业软件测试发展指明了方向,行业实践成果为银行业软件测试的转型升级提供了借鉴。一方面,软件研发模式的实践应用正在经历从传统研发管理阶段到敏捷开发阶段,再到“双模IT”阶段的过程。中国工商银行2017年成立网络金融部标志着工行进入了“双模IT”阶段。中国银行2017年建立了敏捷研发体系,实现不同研发模式的相互切换。招商银行借力CMMI四级认证建立了适应招行特点、支持双模的持续交付流程。另一方面,软件测试基础理论逐渐完备,ISTQB、TMMi、ISO29119等国际通用的软件测试标准逐步得到各行业的认可,多家银行也正在积极学习,自我总结,推进测试过程的改进工作。

  为推动银行业软件测试的规范化、持续化发展,工商银行充分总结自身软件测试发展历史和实践经验,形成了具有中国特色的银行业软件测试框,几经修订后形成中国人民银行、银行同业、第三方机构和服务商共同认可的指导性框架。该框架在设计时遵循了三个原则:全面性原则,即内容要全,能够涵盖各种测试职责、研发模式和测试等级;灵活性原则,即框架可以依据各家银行真实的情况进行裁剪使用;持续发展原则,即框架要结合实际发展和需求对内容做持续更新。

  整体上,中国银行业软件测试框架(如图1所示)将测试工作整体划分为目标、组织、规范、过程、风险、质量、知识、工具等八个绩效域。八个绩效域相对独立又互为依存,形成了软件测试的整体思考框架。

  ①目标域,描述软件测试机构的目标管理框架,是基于组织的使命和核心职责定义的。实践过程中,目标域指导组织内部组织架构的划分和协作模式的建立,并为风险管理和质量管理提供基准参考,驱动过程改进。

  ②组织域,定义软件测试相关的机构、角色,各自的职责及协作关系。实践过程中,组织体系和角色职责的划分对测试流程是否顺畅起着决定性影响,也间接影响着各项目标的实现情况。

  ③规范域,定义测试组织在测试管理活动和实施活动中约束全体成员行为的相关制度和办法。实践过程中,要做好关键工作活动的规范化管理,以制度规范的方式明确定义活动干系人的职责分工和协作方式,要持续更新制度规范以匹配价值目标的需要。

  ④过程域,定义软件测试的工作内容和基础流程,描述所有测试工作项及相互之间的关联关系。实践过程中,应根据研发模式定义各项测试活动和工作流程,通过风险管理和质量管理对各项工作内容和进展做评估,确保各项工作与价值目标的一致性。对关键工作项的实施过程进行规范性要求,逐步实现此类工作的标准化、工艺化,进而通过平台建设实现信息化和自动化。

  ⑤风险域,定义所有的软件产品风险和项目管理风险。实践过程中,软件测试过程就是全面的风险管理过程,应在整体目标策略指导下识别并验证软件的潜在风险。可借助风险知识库和管理平台指导风险管理工作的有效开展。

  ⑥质量域,定义软件测试过程所必需的、体系化的质量管理模式。实践过程中,质量域包含多个质控点,质控点应始终与目标相一致,并通过工具平台实现关键工作流程的硬控制和绩效数据的自动采集、计算,驱动过程改进,进而完成相应的目标和制度更新。

  ⑦知识域,定义开展测试工作所需掌握的知识和具备的技能,以及与知识技能提升相关的一系列机制保障。实践过程中,应将知识与相应的测试过程建立紧密联系,明确关键岗位和任务应具备的知识技能;必要时可将重要的方法升级为制度规范,提高约束力;通过知识平台建设推进知识的积淀和传承,并在测试过程中发挥重要作用。

  ⑧工具域,定义开展测试工作所使用的平台和工具,以及平台工具全生命周期管理的相关机制。实践过程中,工具平台应始终以满足测试工作需要为第一原则,辅助推动测试过程的规范化和自动化建设。

  中国银行业软件测试框架有四个应用方向,从行业层面可以逐步开展银行业软件测试标准体系的建设,建立银行业软件测试认证评估机制,促进行业整体水平的提升。从单个银行或测试机构层面,可裁剪为适合自身要的过程治理指导框架,也可以建立测试能力评估及过程改进模型,指导测试组织的过程改进和持续发展。

  当前工行的实践大多分布在在过程治理指导框架的应用方面。工行依据自己需要,裁剪并形成《标准化的测试过程体系框架》,该框架以过程域为核心,即标准的测试过程;将目标域、风险域、质量域转变为三个管理策略,即目标驱动,风险导向和度量检测;将组织域、规范域、知识域、工具域转变为四个基础保障,即组织模式、制度规范、资产库和工具建设。截至目前,我们在标准的测试过程、风险导向、资产库、工具建设方面做了深入实践。

  标准的测试过程主要包含测试过程标准流程和流程下的最佳实践。标准流程定义了所有测试工作项及相互之间的关联关系,强调各项工作可管理、可复用、可追溯,实现过程可控、结果可信。特别是将主线流程进行分段管理,详细定义每个工作项的操作的流程和输出成果,并对输出成果进行标准化、资产化管理,以标准化提升质量,以资产库提升效率(如图2所示)。

  以设计测试案例为例,详细定义了案例设计的视角、抓手、步骤、过程及结果信息,基本实现了测试案例设计环节的工艺化实施,输出的案例能更方便地转换为自动化案例快速执行。而这样的一个过程也是MBT(模型驱动测试)思想的直接应用,兼容瀑布、敏捷、DevOps等多种工作模式。

  在风险管理方面,我们遵照国际管理,将风险分为产品风险和项目风险。实际在做的工作中,将产品风险与标准测试流程的阶段和工作项相融合,项目风险主要关注测试管理类活动,产品风险主要关注测试实施类活动,两者相互融合、相互促进。如此一来,测试过程也就是全面的、全生命周期的风险管理过程(如图3所示)。

  在资产库方面,为了进一步澄清业务内容和软件产品的测试目标,采用业务架构建模思想,建立银行业务描述的元模型,并制订了统一的银行业务描述规范。借助资产库平台提供的标签、关系定义等功能,能够建立银行业务的知识图谱,满足多用户、多视角的不同检索需求,并在软件研发测试过程中进行复用和更新。

  在工具建设方面,我们专注测试信息化和自动化的提升,从测试管理、测试分析、测试执行、测试支撑、资产管理、投产发布六个领域实现对“标准化的测试过程体系”全面支撑。将常用的、稳定的工作流程通过信息化工具进行固化,实现工作快速处理,达到提高测试效率,严控测试质量的目标。

  2018年10月份,《中国银行业软件测试框架》在2018年中国银行业软件测试成果交流会上得到了与会单位的一致赞许。尽管该框架从逻辑上较为完整并在一些范围内进行了检验,但仍要进一步在更大范围内做验证并持续完成,才能真正成为有推广价值的行业实践指导框架。期待有更多的银行、第三方机构和服务商参与启动,为中心银行业软件测试的体系建立、标准建设贡献力量。返回搜狐,查看更加多