文丨中国光大银行金融科技部 蒋晓君 曲文博 田渊文
摘 要:面向数字化转型趋势,光大银行深入剖析非功能测试实施工作面临的痛点、难点问题,以建立良好的常态化非功能测试机制为目标,积极探索实施策略和测试流程的优化方案,通过多维度积累技术资产,规划落地非功能测试工具体系,为后续建设夯实了技术基础,并明确了未来研究方向。
关键词:非功能测试;混沌工程;流程优化;工具建设
随着金融数字化转型的持续深入,金融服务的普及率和可获得性不断提升,而后台支撑系统的压力也随之迅速增大。尤其是伴随分布式和智能化技术的广泛应用,不仅应用系统架构和逻辑关联愈加复杂,各类潜在风险呈指数级增加,版本迭代节奏也越来越快。复杂趋势下,非功能测试作为业务系统投产前的关键验收环节,受到了业界高度关注。光大银行基于前期积累的测试资产和经验,积极探索非功能测试常态化机制建设,赋能银行业务高质量发展。
一、非功能测试实施痛点剖析
近年来,伴随各类新技术的快速成熟和使用,非功能测试领域面临的一系列新的矛盾和痛点问题亟待解决。
一是测试启动时点滞后。非功能测试的准备和实施工作量通常较大,而按照传统软件生命周期推进,以需求变更触发的工作模式受前置环节影响,启动时点往往要相对滞后,从而易导致测试的整体完成时间延后。
二是风险识别深度下降。在分布式平台、全栈云等技术的加持下,银行通过对底层逻辑进行服务化封装,使得开发、运维的自动化程度不断提高,但各环节对风险识别的深度实质上却有所下降,因此需要更为精准、持续的测试来进行全面覆盖。
三是变更覆盖范围扩大。在新的技术架构下,应用系统在性能、可靠性、可维护性、可移植性等诸多领域均面临更加繁杂的风险点,甚至常规变更也可能引入非功能缺陷并造成严重影响。对此,传统仅针对重大变更进行非功能测试的验证策略已难以覆盖运行风险,急需进一步扩大支持范围。
四是固有矛盾难以化解。新趋势下,非功能测试不仅要全面验证各种非功能风险,实现对重大及常规需求变更的高度覆盖,还需要不断压缩测试实施周期,以满足业务敏捷迭代的需求。面对难度大、时间短等固有矛盾,仅依靠传统测试策略已愈发难以满足业务需求。
二、非功能测试常态化方案设计
根据测试实践经验,非功能测试痛点对重要性高、业务流量大、版本变更频繁的应用系统的影响尤其显著。对此,光大银行结合应用系统的快速安全投产要求,以建立良好的常态化非功能测试机制为目标,在测试流程与技术工具两方面展开了探索和建设。
1.非功能测试流程设计
在实施策略和流程方面,光大银行秉持“化被动为主动”的理念,探索设计常态化工作流程(如图1所示),重点强化了四个方面的内容,包括简化前期设计、扩展变更覆盖范围、改变测试触发机制、后置变更分析环节等。值得强调的是,这一流程的落地需配合低成本、高效能的实施策略,着力化解前期风险分析的工作量和局限性,并提供多维度的测试结果数据来支持结论分析。在此模式下,不仅可有效提升测试工作效率、化解各类风险问题,还将加速促进测试机制变革。
图1 非功能测试常态化工作流程
2.非功能测试工具建设
非功能测试需要关注多个不同领域的非功能特性,而银行业务系统架构又同时兼具复杂性与多样性的特点,从而决定了非功能测试常态化实施需要一系列技术工具的支持。对此,光大银行通过全面梳理各领域测试案例的实现原理,对标各工具平台功能特点,规划落地了非功能测试工具体系(如图2所示),为后续建设夯实了技术基础。
图2 非功能测试工具体系框架
三、光大银行非功能测试实践
面向银行全局性业务系统的持续优化,以及重大复杂系统持续建设等场景,光大银行充分发挥专业工具平台优势,深度优化算法适配测试需求,按“风险点×技术栈”二维覆盖构建自动化案例库,持续推行非功能测试常态化机制建设。
1.灵活配置快速响应,测试执行无人值守
在自动化实施方面,光大银行引入可视化拖拽技术和多维度配置策略,将原子化脚本组合为测试模型或故障演练场景,有效降低了自动化实施的技术门槛,提升了非功能测试覆盖度,并通过使用飞压平台设置常态化压测任务,实现了测试执行计划的按需配置。同时,根据测试实践经验自主设计算法,分析测试模型处于动态运算时的预期及实际处理能力、虚拟用户数、迭代间隔等多元化关联关系,光大银行实现了按预设测试模型和测试目标自动探索容量拐点,并设置退出机制以控制风险的能力。
例如,当部分测试交易处理能力或响应时间偏离预设模型要求,以及出现大量报错等现象时,非功能测试将可自动结束该场景,避免测试环境中产生大量垃圾数据或造成其他破坏性影响。此外,在可靠性、部分可维护性测试案例验证方面,光大银行依托混沌工程理论及工具平台,实现更为灵活的流程编排组合、故障模拟和演练防护,并设计标准化的演练流程与针对性的实施参数、达标判断和恢复机制,以自动化、可视化方式完整覆盖了从计划到还原的全部演练过程。
2.多维度积累资产,助力常态化实施
一般情况下,测试工具平台的通用能力很难对测试要求进行全面覆盖,而常态化开展非功能测试更是需要多维度推进资产积累。对此,光大银行结合业务维度持续沉淀测试脚本、测试模型等资产,并按需组合形成日间、夜间、特殊日等各类场景模型,建立测试脚本资产库,覆盖了80%以上的业务交易。
在架构和运行维度,光大银行对标不同类别系统的测试案例集,依托混沌平台建立演练经验库,模拟IaaS层、SaaS层、PaaS层的各类故障和异常,并针对不同技术产品建立自定义脚本库,实现对银行业务系统测试的全面覆盖。例如,面向不同的技术产品集群,光大银行可通过脚本自动识别其节点属性,并按照测试案例要求进行相应故障模拟操作,同时待观察期结束后再进行节点恢复。其间,关键信息通过参数配置提前输入,执行过程可无人工干预;对于安装目录、服务启停、批处理日志等,则可按照运维规范要求进行自动识别和检查,输出结果并进行达标判断。
在监测环境及各类参数配置方面,光大银行对标行内规范开展逐项分析,开发相应脚本集成至测试监控平台,实现了对测试集群的环境资源配置,以及对版本、应用和技术组件关键参数的读取和检查,全面覆盖主流操作系统、各类中间件和数据库。此外,上述能力均可在每一轮测试执行前自动拉起执行,确保测试有效性。
四、后续展望
常态化开展非功能测试的目标是不断消除测试等待和资源浪费,最终建立贯穿、融合在软件生命周期中的持续测试机制,充分降本增效,确保业务系统安全运行。未来,光大银行将继续加强对系统架构的深度研究,精准把握被测系统的薄弱环节,探索以系统特征为切入点进行不同类型的测试方案设计,如对于渠道类系统,根据业务核心目标,重点分析客户触达渠道,充分验证前后端响应速度、弹性扩展及异常流量熔断限流机制;对于数据中台类系统,在持续关注其处理效率的同时,进一步考虑如何度量数据容错性、一致性与可移植性;对于AI中台系统,结合数据规模、质量和差异度等维度合理设计测试数据集,并尝试针对测试结果的不确定性制定不同的风险级别。
此外,测试实施过程本身也是检验、发现问题的过程,各应用系统的测试基线数据和历史缺陷等都是极为重要的经验和资产。后续,光大银行将探索研究基于知识图谱技术构建非功能测试知识库,通过便捷的关联信息检索和关键信息提炼,更加精准地“勘测”出被测系统的风险点和薄弱环节,加速推动非功能测试向数据驱动、智能化方向发展。
参考文献:
[1] 拉斯• 迈尔斯. 混沌工程实战[M]. 黄威, 译. 北京: 人民邮电出版社,2020.
|