吴燕:基于“数据和程序双轮驱动”的质量保证体系研究与实践

学术   2024-12-25 11:49   北京  

交通银行测试中心

总经理    吴燕


背景概述

中央金融工作会议指出,要加快金融强国建设,推进金融高质量发展,坚持服务实体经济,大力做好科技金融、绿色金融、普惠金融、养老金融和数字金融“五篇大文章”,着力防范化解金融风险。各家银行纷纷加大金融科技投入,加快数字金融的建设速度,数字化转型升级进入全面提速阶段,大数据、区块链、人工智能等新兴技术加快应用,产品更迭瞬息万变。


然而,由于存量业务品种数量庞大、业务场景复杂多变、系统依赖关系纷纭芜杂、需求和技术文档过时或缺失、人员知识经验和能力不足等问题,银行的测试人员难以全面了解业务场景规则、技术架构、系统逻辑规则等信息,仅依靠单一的基于需求功能的测试,难以进行精准、全面的变更影响分析和测试覆盖,金融产品“测不准”和“测不全”已成为当前制约金融高质量发展的一大“瓶颈”,是导致金融科技风险发生的重要因素之一。


因此,建设完善金融产品质量保障体系,切实保障产品质量,为金融高质量发展护航,成为当前亟需解决的重要课题。


交通银行质量保证体系的研究实践

针对上述发展过程中的问题,交通银行根据自身的测试实践,研究构建了“基于数据和程序双轮驱动”的质量保证体系(以下简称“双轮驱动”体系),有效破解了依靠单一基于需求功能的测试时,难以保证精准、全面测试覆盖的问题,突破了金融产品“测不准”和“测不全”的“瓶颈”(如图1所示)。

图1  “双轮驱动”的质量保证体系


“双轮驱动”体系创新采用“参数化+自动化”机制,融合多项技术手段,整合传统的数据驱动测试和程序驱动测试的方法,以数据为关键核心,在业务层面,深度关联客户群类和业务场景,在产品层面,深度覆盖程序代码,建立起了更全面、更深入的质量保证“防火墙”。以确保向市场提供高质量和安全可靠的金融服务产品,有效支持保障科技金融、绿色金融、养老金融领域复杂多样的业务场景;有效支持保障各类客户,特别是小微企业、民营企业及普罗大众的普惠金融需求,切实推动实体经济高质量发展。


1.数据驱动测试

在交行“双轮驱动”体系中,数据驱动测试(Data-Driven Testing,DDT)是指依赖真实的存量数据集来生成覆盖真实业务场景的参数化测试用例,并提供执行测试用例所需的测试数据。通过对各类存量数据的分类组合,可有效覆盖生产上真实发生的业务范围。与传统的数据驱动测试方法(利用外部输入数据实现测试步骤的自动化执行并提升测试脚本可维护性)相比,交行的数据驱动测试具备以下创新特点。


第一,深度的业务关联。交行数据驱动测试不仅使用数据支持实现自动化,更重要的是通过数据深入挖掘业务逻辑关系,将真实业务数据与业务场景紧密关联起来,用于精准定位业务测试范围。该方法从数据而不是需求文档入手,识别业务特征、客户特征及其枚举值,以业务特征和客户特征为基础生成等价类,每个等价类代表了一组具有相同特性的数据,对应于特定的业务场景,可以精准构造测试用例对业务场景进行覆盖;同时,依据是否存在真实业务数据筛选、剔除冗余的等价类,避免无效测试(如图2所示)。其中,业务特征是指描述业务相关信息的业务术语,例如:存款账户类型、贷款品种所属类型、汇款方式等。客户特征是指描述客户相关信息的业务术语,例如:客户资产级别(AUM)、客户来源、客户身份信息、客户归属信息等。

图2  特征识别与等价类生成


第二,灵活的参数化应用。强调动态的参数化案例的设计和应用,在案例中以参数形式标注业务特征和客户特征,通过参数引用已识别的有效等价类,根据等价类的分类组合情况动态地生成测试案例集。通过这一机制不仅提高了测试案例的复用性,增强了测试过程的灵活性和适应性,同时也使得测试能够更加精准地覆盖到真实发生的业务场景的和相关客户群类。


第三,全面的测试覆盖。得益于数据等价类和参数化应用,创新的数据驱动测试不但能够精准地识别系统中真实存在的业务场景及其业务规则和条件组合,还能够确保每个重要的业务规则和条件组合都能得到系统地验证,做到不遗漏不冗余。同时,从多个维度细分客户群类,提取各类客户群类的存量数据进行全量遍历测试,确保对不同客户群体的不同需求覆盖,包括一些边缘情况或异常情况,进一步增强测试案例的广度和深度。


例如:在某分行核心下移实施过程中,我们运用这一测试方法,通过对业务数据识别出了170个业务特征、181个客户特征,组合去冗后生成等价类1718个,提取存量客户数据55万条进行了遍历覆盖,实现了对业务场景、客户群体、数据种类的全面测试覆盖,不仅提升了测试的完整性和可靠性,也为最终用户提供了更高的软件质量和更好的用户体验。


第四,严密的数据安全保护。交行的数据驱动测试以真实的存量数据分析为基础,为了保障数据安全,我们在特征识别和等价类数据提取过程中,引入多种变形算法对敏感字段数据进行脱敏处理,实施了严密的安全保护措施,有效确保了数据信息的安全。


2.程序驱动测试

为了进一步把测试深入到产品层面,深度覆盖产品的程序代码,同步验证相关应用程序行为的正确性,加强测试的完整性和全面性,交行的“双轮驱动”体系整合了传统的程序驱动测试(Program-Driven Testing,PDT)方法,并结合新的技术测试手段加以扩充,从数据和应用程序代码出发,实现对数据与程序行为的整合验证。这与传统的程序驱动测试方法(使用自动化脚本执行预设案例用以提高测试效率)显著不同。


第一,参数化案例的自动化执行。融合“参数化+自动化”的机制。将数据驱动测试生成的等价类和参数化案例作为输入,自动将所有等价类对应的分支展开为测试案例集;自动提取等价类相关存量客户数据,替换测试脚本中需要输入给UI界面或者服务调用接口的数据,实现对应用程序的行为驱动,对数据驱动测试中识别的业务场景规则、数据组及客户存量数据的快速遍历和正确性验证。


第二,精准的代码覆盖。利用精准测试工具,融合监听、插桩、代码染色等精准技术。基于数据驱动测试提供的业务场景,在参数化案例的执行过程中,同步对代码执行路径进行跟踪分析,确保每个业务场景背后的代码逻辑都被充分测试覆盖,及时识别未被执行的边缘代码或异常逻辑分支,完善测试案例或剔除冗余代码。例如:在海外个人网银转账功能的测试过程中,我们通过实施精准测试策略,及时发现了未覆盖的错误处理代码分支,进一步补充案例进行强化测试,有效提升了系统的健壮性。


第三,真实的行为模拟。融合流量回放技术,根据数据驱动测试生成的等价类,抓取和回放各个业务场景和客户的网络流量或输入输出日志,完整地模拟和复现客户真实的、动态的行为,对系统的稳定性、正确性和健壮性进行全面的测试验证,而不仅是对等价类对应的业务场景进行相互孤立的测试。这种针对真实用户行为的模拟测试覆盖,进一步增强了“双轮驱动”体系的可靠性,尤其是在缺乏详尽需求和技术文档的情况下,为全量回归测试、底层架构改造(如信创)和系统整体迁移等,提供了更加有效的质量保证。


3.管理措施

为了确保“双轮驱动”质量保证体系切实发挥效能,交通银行在具体实践中建立了配套的管理保障措施。一是平台建设。建立起了具有测试管理、数据服务、自动化测试、流量回放等功能的一体化测试平台,有效支持数据驱动的识别、筛选、运用、保护机制和程序驱动的自动执行、精准覆盖、流量回放。二是环境数据保障。根据我行不同业务系统配置4套测试环境的个性化数据对象,针对各测试环境数据对象构建等价类数据提取SQL语句模板,由数据服务平台进行批量化的自动取数,并存放在数据池供测试使用。三是测试过程质量改进。以TMMi5框架为基准,以质量专题会议、工作专班为抓手,建立“质量问题树”管理机制,跟踪分析测试相关生产问题,强化质量监督与控制机制,形成对质量风险的管理闭环。


通过建立和完善上述管理措施,为“双轮驱动”的质量保证体系切实发挥作用提供了有效的支撑和保障。


实践成效

交通银行通过建立上述基于“数据和程序双轮驱动”的质量保证体系,在单一的基于需求功能的测试基础上,进一步丰富了测试手段:通过数据等价类、案例参数化和自动化等手段,深入验证各种真实业务场景和输入条件下系统的响应和处理逻辑,增强了对真实业务场景、用户行为和程序行为的探索能力,极大地提升了测试的广度和深度。特别是在面对复杂的业务流程、海量的客户数据和庞大的代码库时,可以确保精准、全面的测试覆盖;同时也使得测试过程更加高效和系统化,全面提升企业级的质量保证能力。


目前,“双轮驱动”质量保证体系已成功应用于我行零售核心下移等重点项目中。以零售核心下移项目为例,分析涉及全量客户,梳理建立等价类2458个,开发实现了配套的自动化脚本并运用于组织级回归测试,实施流量回放测试1595万笔交易,有效提升了测试覆盖率;生产问题与去年同期相比下降了18.6%,有效提高了产品质量,为我行业务系统的稳定运行提供了坚实保障。


未来展望

未来,交通银行将持续建设和完善“双轮驱动”的质量保证体系,挖掘数据要素潜力,积极运用新质生产力手段提升智慧化测试过程,强化质量保证环节的精准护航,进一步提升对信息科技风险的识别、预警和解决的能力,切实保障金融高质量发展,助力写好金融“五篇大文章”,为用户精心打造普惠、易用、好用的金融服务产品。


(此文刊发于《金融电子化》2024年11月上半月刊)


推荐阅读(点击图片查看精彩内容)










新媒体中心

主任 / 邝源

编辑 / 姚亮宇  傅甜甜  张珺  邰思琪

金融电子化
面向金融界科技人员、业务人员,在金融信息化建设中,为领导决策提供参考,为科技人员和业务人员提供交流的园地以及了解科技应用的窗口,为读者提供金融信息化发展最前沿的各类知识和信息。
 最新文章