流量时代,工商银行如何稳步推进应用转型工程建设?

财富   2024-11-03 08:09   吉林  

点击上方蓝字关注我们吧!

  近年来,金融机构持续践行“科技驱动、价值创造”的发展理念,大力开展业务架构、应用架构和数据服务体系升级换代,稳步推进应用转型工程建设。转型工程建设涉及应用多、工期紧、系统架构复杂,在转型过程中需兼顾业务需求落地的客观现状。为提升质量保障体系支撑能力,确保重点转型任务顺利落地,中国工商银行软件开发中心不断革新测试方法和技术手段,大力推进基于流量的精准测试体系建设。利用线上流量大、场景全的特性弥补人工评估测试范围的局限性,推动新老系统全面自动化比对测试、流量自动化测试场景建设、流量案例精准推送,从而提升研发效能,支撑应用系统完成高质量转型工作。


一、转型过程中测试工作痛点愈痛

(一)测不完:随着大量应用架构转型的推进,数据库转型、单元化转型、各类软硬件升级对系统全面测试的影响力逐步加深。同时评估测试范围过于广泛,导致测试案例数量庞大,测试人员难以在有限时间内完成所有测试,致使测试数据和测试场景存在部分遗漏,对测试覆盖的全面性提出了全新的挑战。

(二)速度慢:自动化测试建设速度跟不上研发节奏,自动化案例前期录入和后期维护等环节存在人工操作干预,技术架构变化的越频繁,自动化测试调整的成本越高,其中维护成本、误报率、动态保鲜是三个重点问题。

(三)不够真:测试场景与生产场景存在差异,在逻辑复杂业务场景下,回归测试依赖人工评估的自动化脚本覆盖,人工构造测试数据失真,回归测试难度逐渐增大,急需提升全量测试的有效率以及案例覆盖精准度。

(四)依赖多:测试链路长,依赖上下游,银行系统业务场景复杂,一个应用系统往往依赖于多个上下游系统,在测试环境中,这些系统的稳定性和性能会直接影响到测试效果和进度。

(五)成本高:非功能性测试的需求越来越多,成本居高不下,其中一个主要的原因是相关交易、报文的准备需要消耗大量的精力和时间。

二、基于流量的精准测试实践

(一)流量精准测试核心理念

流量录制回放是目前业界的一种主流测试方法,主要是通过记录和回放系统在生产环境中的流量,达到在测试环境中进行接口测试、性能测试、压力测试等操作,其核心价值在于能够模拟真实场景下的流量,帮助测试团队更好地发现系统潜在问题,了解系统的性能和瓶颈,同时提高团队测试效率,降低工作量和时间成本。在转型背景下,利用线上流量大、场景全面的特性,弥补人工评估测试范围的局限性,生成全面精准的测试案例,快速高效地完成自动化测试案例建设维护和保鲜,模拟真实还原的测试场景,形成独立无损的测试环境,提供触手可达的非功能性测试服务,进而降低业务快速迭代带来的风险。

在流量精准测试体系方面,不断提升相关应用探索和实践能力;在自动化方面,形成全面比对和自动化测试脚本生成能力;在测试资产方面,提供全量业务场景、精准测试范围和动态的案例增补能力;在非功能性测试方面,提升性能、混沌、安全等测试场景的自动化造数能力;在低成本联调方面,提升开发联调契约和沙箱测试环境搭建速度和数据真实性。

(二)流量精准测试主要应用

1.流量>全面比对

转型过程中,新老系统功能比对是目前涉及比对测试最多的场景,其中最大的挑战是数据库国产化,主要是验证新老系统执行相同交易结果是否一致。通过生产流量在新老系统的回放比对,实现数据库国产化过程中的场景全覆盖自动化回归测试,主要分为测试回放结果和生产结果比对、测试环境双路回放后比对两部分。

1 流量测试全面比对示意图

使用流程步骤如下:

流量筛选:生产环境录制回流流量数量庞大,每次进行全量回放,不仅会消耗大量服务器资源,也对回放结果分析有较大影响。需要根据测试人员的需求,支持按接口、流量类型、时间、自定义等规则进行流量筛选,只回放筛选完的流量。

流量合并:针对多个并发、存在链路关系的录制任务(同一应用下不同集群),录制完成后可通过录制任务合并,整合成一个录制任务流量,为链路级流量回放和MOCK提供支撑。针对千万级流量,支持秒级合并。

流量替换:流量回放前支持对流量参数进行替换,包括按替换规则精准替换和复杂替换。

流量回放:支持先对流量进行筛选,按应用、服务、流量起止时间、速率(可倍速)等维度配置回放任务;回放节点据录制报文的时间节点进行回放,真实模拟生产交易场景。

流量MOCK:包括数据库MOCK,单服务下游子调用MOCK,按照链路、流量类别、指定流量等方式精准MOCK。

流量比对:支持多维度比对,包括生产报文比对、链路级参数比对、双库比对、数据库比对等。除了基本的完全匹配模式之外,还提供更多个性化比对规则以及智能降噪能力。

收益体现:在数据库转型应用实践过程中,通过上述单路比对、双路比对、链路比对等能力,推动转型应用回放技术成功率达100%,业务比对平均成功率达95%,已累计录制回放流量1.5亿条次,避免60余个生产问题漏出,在转型过程中发挥了重要作用。

图2 链路比对示意图


2.流量+案例>自动化测试

通过流量打标的方式进行特征分析,自动生成业务场景的组合模型,形成测试案例,自动生成测试脚本;同时支持案例执行回放,进行自动化报文、链路比对,完成接口案例的自动化测试执行。


图3 流量案例自动化整体流程示意图

使用流程步骤如下:

1.规则管理能力(规则库)

选择应用接口参数的不同字段(比如业务种类、卡种、币种等,自动同步接口信息或解析流量),自动识别字段的特征值及含义接口同步+数据库同步),根据字段名称+对应字典项,形成规则。

无法自动同步的接口字段信息的情况,支持人工维护。

2.流量打标能力(流量库)

通过遍历已录制的生产/测试流量,将上述规则组合标记到每一条流量中,形成流量上的业务规则标签。

处理逻辑:根据规则字段,进行打标,格式为:“入参/出参:参数名称=参数值”。

3.流量管理能力(流量库)

展示完成打标的流量列表信息,展示流量唯一标识号、标签等信息,支持流量发起回放、案例生成、报文查看、查看链路等操作。

4.案例生成能力(案例库)

选择一笔或者多笔流量,根据标签规则自动生成案例名称。其中,替换配置(替换规则、MOCK、SESSION)、回放配置(地址、速率、开始时间、比对规则)、前置数据脚本等信息为可选项,可后续统一维护。

5.案例管理能力(案例库)

针对已有案例,支持流量编排、案例执行(展示执行进度)、结果查看(复杂比对、链路比对)和分析(响应分析、结果导出)。

对于相同应用下海量案例信息,可支持案例范围圈定和定时自动化执行。

收益体现:流量案例脚本转化工作量相比于自动化脚本编写效率提升约50%。

3.流量+特征规则>测试资产

基于流量中真实的数据和业务特征要素进行清洗,组合产生不同的业务场景,避免流量数据的遗漏。同时,借助精准测试中覆盖率工具的度量,进行场景的精简与补全,最终形成业务覆盖充分的测试案例。

图4 测试资产组合生成示意图

使用步骤:

针对上下游应用间版本信息不透明、存量自动化场景不完备的问题,动态获取调用链路和业务组合场景的变更情况,如果发现新的调用链路或业务组合场景,则针对该情况的流量进行自动推荐并邮件推送提醒,测试人员可根据测试需求生成测试案例。

对于存量流量,从基本信息、覆盖率情况、稳定性、历史失败原因等维度形成流量画像,动态识别应用核心、高频资产库,定期对不符合指标要求的流量案例设置退出机制。

4.流量+程序链路>精准测试

通过生产流量案例回放至测试环境,获取生产动态接口级调用链和接口内部方法级动态调用链;通过静态代码分析,获得方法和具体代码关联关系;基于代码链路分析结果,建立业务流量和代码调用链路的关联关系,再基于变更方法影响的代码调用链路,就可以分析出变更影响链路对应的全部业务流量,从而实现基于代码链路影响的测试用例推荐。

图5 精准测试代码关联示意图


5.流量>非功能性测试基础

通过流量膨胀、加速和转化的编排能力,赋能非功能性的仿真测试,覆盖混合场景的压测,降低混沌工程对性能测试的流量的依赖,新增流量式IAST漏洞安全检测的能力。

图6 非功能性测试示意图


6.流量>联测契约

聚焦架构转型下分行联测、研发环境联调等痛点,通过实现将生产流量转换为预期返回结果能力,形成分行、客户高保真沙盒测试场景,用流量快速补齐联测契约挡板,实现研发联测小环境。

图7 联测契约示意图


三、未来展望
伴随着人工智能技术的深度应用,金融机构将紧跟技术测试领域发展趋势,对标业界最新实践,不断完善质量保障体系。在持续提升质量保障能力的同时,推动智能降噪、智能替换、智能分析、智能打标、智能推荐等能力建设,积极探索智能化技术在测试领域的创新应用,推动测试模式变革,全面保障研发质量。(工行软件开发中心 杭州产品部)



来源:CAICT金融科技

责编:郭 旭  设计:李佰玲

主编:李婉娜

关注现代商业银行,看更多原创独家资讯!


你在看吗?点一下试试!

现代商业银行杂志
宏观视角微观剖析 金融逻辑并不复杂
 最新文章