技术应用丨打造精准测试平台,借力AI测试能力升级

技术应用丨打造精准测试平台,借力AI测试能力升级
2025年01月06日 11:47 金融电子化

文 / 兴业数字金融服务(上海)股份有限公司测试服务中心 池建平  孙梓洋  贺子宸  孙瑜  马忍

中央金融工作会议强调,要做好科技金融、绿色金融、普惠金融、养老金融和数字金融“五大文章”,以高质量的金融服务,推动社会经济发展。当下,银行数字化转型、金融科技创新发展已成为这个时代的新命题。兴业银行积极响应时代号召,主动投身这一浪潮。兴业数金公司作为兴业银行的金融科技单位,在推动金融科技创新、银行数字化转型方面起担当作为。抢抓数字革命机遇,利用移动互联、云计算、大数据、人工智能等新兴技术,深化集团融合发展,面向全社会提供普惠数字金融服务。其中在保障系统研发质量、优化测试工艺创新方面,兴业数金大力推行了精准测试,在技术探索、场景应用和AI智能集成等方面取得了良好的进展,并且在推广实践中,从浅入深、由点及面逐步提升各被测应用系统的测试质量和效率。

挑战和意义

1.银行软件系统的质量挑战

当前银行系统正处在微应用架构普遍应用、服务器分布式部署的浪潮中,同时信创改造也在更大力度落地,系统服务越来越原子化。这给单个服务系统带来了灵活上线、模块解耦、扩展性增强的便利性,但是也造成了系统应用拓扑复杂化,传统测试方法成本越来越高的问题。银行的业务需求因数字化转型变得越来越庞大,需要快速完成开发测试,但却存在不少流程长、数据链条跨越多个系统的业务,这给测试的实施带来了很大的挑战。银行产品既要快,又要好,如何提高测试策略的完整性,保障测试分析的充分性,又能在效率上平衡成本投入,成为横亘在测试人员面前的一个难题。由此,应运而生的精准测试成为了业界重点关注和积极实践的技术课题。

2.精准测试的意义

传统的黑盒测试过程中,比较依赖于测试人员的个人能力和经验判断,由于缺乏绝对客观准确的数据评估作为支撑,做出的测试计划和决策是相对主观的。在此情况下为了避免漏测,往往测试覆盖范围会不可避免地扩大,有很多冗余和重复测试内容。

而精准测试带着解决四个问题的思路出发,深入发现和理解“变更影响了什么”“测试什么”“测的怎么样”“怎样提升测试质量”。从而实现一个有客观数据、可量化评估、准确可分析的测试过程,将实际变更行的覆盖度提升到完全覆盖(如图1所示)。

图1  精准测试意义

和传统黑盒测试相比,精准测试由于可视化、智能化以及管理可信,带来的效率提升,可以在人力投入不增加的情况下,测试覆盖充分度从平均50%提升到90%,缺陷发现率提升20%~30%(如图2所示)。

图2  精准测试的效能提升

平台化 & AI 赋能方案及布局

1.技术探索,精准测试场景应用

兴业数金最早在2020年便开始了精准测试技术的研究和实践。鉴于公司以Java应用为主,早期研究项目优先选择开源的JaCoCo作为覆盖率检测工具。JaCoCo以其广泛的使用人群、丰富的覆盖率指标、高度的可配置性,以及支持离线&在线模式报告生成等特性,赢得项目组的青睐。此外,其背后强大的开源社区支持和较高可靠性也是选择JaCoCo的重要原因。

前期的调研过程中,项目组采用在线模式进行部署,利用字节码增强技术在被测试的应用程序中植入“探针”,以此来追踪和记录代码执行的情况。通过定期保存和整合这些探针收集的覆盖信息,团队得以获取详尽的代码覆盖率数据。基于这些数据,测试和开发人员合作进行覆盖率分析,识别异常代码或针对性补充测试场景,并设立测试准出标准。

在这一阶段,项目组主要致力于探索原生技术的核心原理,并验证其在项目中的可行性。通过运用原生技术方案提供的功能,如插桩、记录、代码拉取、代码比对和报告生成等,明确了开发与测试角色在各阶段的责任和工作内容,从而形成一套初步的实践方案。

2.自主打造,精准测试平台化

在前期技术实践中,开源工具的功能较为单一,项目组需要通过复杂的指令对于精准测试过程进行控制,报告展示信息也比较简略,静态页面只读无法进行操作和记录,这些问题都影响了精准测试的便利性,迫切需要更好的“便捷易用、全景可视、智能高效”平台化方案来提升解决。

(1)建设便捷易用型平台。依托于测试管理平台整合打造精准测试平台,使用和改造原生探针技术,更好地支持精准测试在平台落地,并且实现测试环境管理、精准看板、版本管理、报告管理、报告分析等多项功能在平台的整合。

首先搭建基础服务器部署框架,基于多中心研发情况,搭建三地分布的精准测试服务器,容量可扩展,通过前端的可视化界面统一纳管测试环境信息、代码仓库信息及测试执行信息,实现高效精准测试服务部署和数据分析。对接兴业数金的各套系统,进行原生探针技术的适配改造,支持了包括云原生、AIX、Linux、SpringBoot/SpringCloud等主流应用架构和环境下的精准测试。

其次平台研发了报告管理和分析功能,实现项目周期中的多次精准测试报告自动合并覆盖率等信息,并对前后报告代码变更情况进行提示。在报告详情分析页面,除了已有的覆盖率着色,还增加了代码相关的提交信息及分析结论等,便于进行变更分析和任务跟踪。通过逐行设置缺陷提交、案例关联或新增、行标记操作按钮,方便第一时间直接进行缺陷提报、案例同步入库,结论判定可以精确到行级别,提高覆盖率计算准确度。

(2)建设全景可视化平台。集成自动化测试平台、Devops流水线等中台能力,支持精准测试平台看板的全景可视化展示。

平台通过接入流水线的自动构建,记录制品编译的Commit ID,在生成精准测试报告时自动填入,严格保证了部署内容和测试内容的一致性。可以实现“分支合并提交—编译—部署—自动化测试—覆盖率生成”全流水线。将原有的自动化回归测试快速升级为自动化精准回归测试,高效找到回归未覆盖内容及重点差异,有的放矢进行查漏补缺。

在最终结果展示上,精准看板中还分别设置饼状图反馈最终测试覆盖率,设置折线图展现测试开始、流水线测试过程直到最终轮次阶段的覆盖率变化情况。并且设置可筛图表展示本期通过精准测试发现的缺陷数量、补充的案例数目,以此完整展示和评估整个测试在时间区间的变化和最终的测试质量。

(3)建设智能高效型平台。通过正向追溯和反向追溯技术的落地实现,分别在平台框架上建立起知识库及分析引擎,通过分析引擎对知识库数据做综合分析评估,实现智能筛选和推荐测试案例功能。

平台知识库通过静态代码扫描分析,以及动态流量数据的采集,获得包括代码的调用链、代码变更、用例执行、覆盖状态等信息。将信息数据做结构化存储,分别建立版本代码知识库、代码变更知识库、覆盖数据知识库、用例链路知识库,构成整个知识库的模块。其中用链路知识库中的数据内容做了可视化呈现,实现了用例采集示波器和用例知识图谱的功能,示波器可以直接看到用例实时执行过程中关联到的代码链路信息,知识图谱展现最终完整的自动化案例同代码函数之间的调用关系,辅助测试分析,监测测试质量。

平台分析引擎对于知识库中的代码变更知识库、用例链路知识库数据做聚合分析,提供出变更方法的差异情况、影响面情况及推荐案例,达到辅助测试人员进行风险研判,回归案例选取及测试覆盖完备性评估,达到高效快速回归测试的目的(如图3所示)。

图3  精准测试平台的架构

3.智能方案,AI大模型赋能精准测试

随着平台的逐步推广,接入精准测试的项目测试人员也逐渐变多,不同的测试人员在代码理解和分析水平上各有不同,这在一定程度上制约了精准测试的实施。

受到大模型表现的启发,兴业数金开始探索AI大模型在精准测试上的使用。通过调研,数金公司选择了当前国内主流模型,以当前行内的框架代码库做为训练库进行训练,逐步调参调优,按代码行生成注释语句,并以函数为维度对整段代码的业务功能进行全面完整的解释,这大大降低了测试人员精准测试分析门槛,提高了分析效率。

此外,在变更影响面分析模块,将基准代码版本和当前应用代码版本的差异情况传递给AI模型,排除增加注释、空行变更、参数名称修改等情况,智能分析有效变更、圈复杂度、逻辑语句,按照差异比对的模式进行高亮展示,重点提示需要关注的逻辑修改和可能存在的风险引入。

总的来说,AI大模型的引入,提高了测试人员自主进行代码逻辑分析的能力,降低了灰白盒测试执行的门槛。同时结合分析代码语义、代码提交合并时间、代码版本差异情况等数据,测试人员也能有效追踪代码变化动态,保障被测应用的代码和上线需求的一致性。

当前,兴业数金精准测试平台已经构建起了以知识库为基础,以分析引擎为核心,以平台能力为入口,以接入依赖服务为支撑的体系框架。探索出了以业务需求分析作为出发点,覆盖率作为度量、风险分析作为研判,回归案例库和精准推荐作为有效工具的精准测试方案(如图4所示)。

图4  精准测试的流程方案

建设成果

自平台化建设完成以来,精准测试平台逐步开展试点工作,成功支持了全行近百个系统的研发测试。这些系统包括核心银行类、渠道管理类、基础平台类及产品服务类等多个关键领域。在这期间平台生成累计上万份精准测试报告,分析代码方法数十万条。同时,借助精准测试平台提供的链路信息采集功能,测试团队成功构建了多个系统的用例链路知识库,发现测试未覆盖的场景上百处,并补充功能测试用例和自动化测试用例近千条;通过变更影响面分析模块和用例推荐模块的配合,测试人员能够高效地选择关键的回归测试案例,大幅缩短了自动化回归测试的时间。

目前,兴业数金精准测试平台可以保障模块的实际变更代码100%覆盖,确保所有需求变更都在测试执行过程中得到全面验证,有力地保障了重点项目代码的质量。此外,在建设过程中兴业数金致力于精准测试领域核心技术的研发与探索,申报了多项专利。

发展展望

接下来,兴业数金将持续优化精准测试平台,以“需求主导”和“技术价值”为方向持续进行精准测试实践的探索。

在“需求主导”方面,计划增加需求管理平台的接入,整合需求库、代码库、用例链路知识库,从而实现需求提交关联度得到用例推荐和用例生成的能力。同时,以功能代码变更为主导,通过分析引擎和代码的复杂度、调用频率、异常处理等,计算出变更风险程度,给出代码块及方法的免测评估,为新需求的灰白盒测试赋能。

在“技术价值”方面,兴业数金将继续挖掘“精准测试+AI”技术价值,加强测试效率。利用AI大模型结合需求文档、接口文档等自动生成测试用例;通过大模型对代码的理解进行缺陷分析,发现代码中的逻辑缺陷、性能缺陷、异常处理缺陷等问题,实现测试用例的查漏补缺,并且结合项目历史需求池和用例关系知识库,智能推荐相关测试用例。

展望未来,兴业数金将继续致力于深化数字化转型,不断推进金融科技领域技术创新,深化兴业银行集团内的数字化转型和融合发展。同时并依托兴业银行集团化优势,面向全社会提供普惠数字金融服务,为实现“五篇大文章”的目标贡献力量。

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

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部