查看原文
其他

实战 | 图模型测试赋能业务需求精准实施

金融电子化 金融电子化 2023-01-22

欢迎金融科技工作者积极投稿!

投稿邮箱:newmedia@fcmag.com.cn

                                          ——金融电子化



      

随着数字时代的到来,社会、经济环境发生了深刻变化,金融领域新技术、新应用快速发展。图模型测试技术通过整合模型与算法,将图论与软件统计测试的多项技术融入到自动化测试解决方案中,实现了需求评审阶段与测试前移场景下更智能的测试套件的创建和执行,挖掘需求设计中潜在的问题和缺陷。



中国农业银行研发中心

黄    翔 

中国农业银行研发中心

王    冲


业技融合助研发

目前,业界正探索测试架构师与业务分析师并行发展的人才培养体系。业务分析师凭借对基层人员操作习惯和使用情况的充分了解,在项目启动前期参与到业务需求的研制,或在产品功能评审过程中提出操作设计建议,可以从专业角度对业务的原始需求提出改善。在实施过程中,业务分析师将业务部门提供的客户需求进行业务规则、业务范围、业务流程等方面的技术分析,输出业务流程图。通过对流程图进行一系列的剪枝与规则调整,并基于专业的建模软件,如GraphWalker,生成图模型(Graphic Model)。这是一种由点和边组成的用以描述系统的图形,一个图由顶点(Vertex)和它们之间的有向边(Edge)组成。


与传统的业务流程图相比,图模型被赋予了更多的技术属性。业务流程图更多地从业务流程角度对需求进行解析,提炼出业务的执行步骤,但却难以直接转化为程序脚本,缺乏与自动化测试相结合的能力。在图模型中,顶点代表业务流程中的中间步骤,表示一次测试验证;有向边代表系统之间的状态转移,表示一次测试动作。


图模型具备特定的语法校验规则,由于引入了守卫(Guard)和操作(Action)机制,图模型可以对原始的业务流程图进行路径分析,辅助业务分析师分析业务需求,量化产出成果。守卫是一种只与边相关的命名规范,它们的角色与if语句相同,并且依据取值判断有向边是否有机会被遍历。在图模型中,守卫一般是用方括号包含的JavaScript条件表达式,如:[input&&!isEn]。与之对应,操作则是要执行的JavaScript代码,一般放在正斜杠之后。操作可以有多个,每个语句必须以分号结尾,并将执行结果作为数据传递给守卫,如:/input=true;isEn=false;。基于设定的关键字和路径覆盖准则,图模型可以生成相应的测试路径,并转化为自动化测试脚本,进而开展基于需求的图模型测试,助力项目研发顺利开展。


技术创新找突破

图模型测试(Graphic Model Testing)技术基于构建的图模型,制定行为和行为之间的关系以及行为和系统的关系(有限状态机),然后根据被测系统的状态、设置的限制条件和策略来生成测试用例。与业界现有的测试技术相比,图模型测试生成的测试结果具备不确定性,更有可能发现较深路径下的隐藏缺陷。具体来说,图模型测试具备如下优势。


一是需求覆盖高。图模型源于业务流程图,可以基于业务实现逻辑最高程度地覆盖业务需求。对于图模型中的不同分支,路径生成器通过使用不同的测试覆盖策略和算法实现多样化的路径搜索,不同的生成器将生成不同的测试序列,并且它们将以不同的方式遍历模型,实现不同的遍历目的。


二是成本投入低。图模型自动生成测试用例显著减少了需求变更时所需的测试工作量,唯一的任务是修改相应的图模型,然后重新生成自动化测试脚本。


三是语言选择广。根据需求构建图模型并不依赖系统开发语言,只需熟练掌握建模工具的一系列命令,这些命令可以准确地表达业务需求,尤其适用于业务分析师从业务角度搭建模型。


四是测试类型全。依托建模工具将功能需求转换为图模型, 并使用智能引擎将这些模型转换为自动化测试脚本,广泛适应于Web测试、接口测试、APP测试等。


模型试用寻推广

1.项目架构

农行研发中心基于图模型测试开展了一系列可供借鉴的实践活动。项目组基于Pytest框架,引入Selenium、GraphWalker等开源组件,在内网渠道完成服务器搭建和程序部署,项目的整体架构如图1所示。

图1    业务需求精准实施专项整体架构


业务需求精准实施专项致力于研发一套贯穿业务需求全生命周期的精准实现理论及实践,促进需求研制、技术实施、业务验收各阶段实践的精准实施,分为需求精准交付、技术精准实施、业务精准验收三个部分开展。在技术精准实施阶段,通过将业务关注要点紧密融入到技术实施环节中,形成技术精准转化实施方案,并依托基于图模型的需求画像,评价需求描述和实现的充分度。


2.试用过程

在模型试用过程中,项目组基于农行对公综合服务云平台(DPCP)进行图模型的构建(图2),该平台定位于对公业务领域的管理职能,面向行内业务人员提供集中、统一、线上化的管理服务。通过发起e_getUrl激励事件,可以模拟用户输入对公综合服务云平台地址的操作,使模型从初始态start转移到登录态v_homePage。依据登录角色的不同,用户可以进入不同的模块,分别为对公业务综合管理平台以及大客户态势感知平台。基于这一业务规则,图模型中分别设置e_inputDeposit以及e_inputClient两种激励事件并发起e_clickSearch操作,使得模型路径从登录态v_homePage转移到下一状态,即对公业务综合管理平台的首页v_depositResult和大客户态势感知平台的首页v_clientResult。

图2    对公综合服务云平台图模型


3.实施效果

基于“对公综合服务云平台(DPCP)2.0项目”的业务需求逻辑,业务人员根据登录角色的不同,分别进入对公业务综合管理平台以及大客户态势感知平台进行相应的业务操作。


在对公业务综合管理平台中,通过选择“额度管理”菜单项下的“总额度设置”操作,业务人员可以进行“对公银利多”产品的发行额度配置等操作。在大客户态势感知平台中,通过选择“实时存款余额”菜单项下的“存款仪表盘”操作,业务人员可以基于机构、处室名称、集团、币种等要素进行全行实时存款余额的大屏展示。


依据该项业务逻辑,调用边覆盖率(edge_coverage)为100%的图模型遍历算法生成自动化脚本,再基于selenium规则配置自动化测试脚本。通过进行Xpath定位模拟用户登录操作,并依次展开菜单项下的“总额度设置”和“存款仪表盘”子菜单,根据业务场景模拟页面上的手工操作,可以进行基于路径探索的UI自动化测试,进而获取测试报告。图3详细展示了Pytest框架下图模型测试的执行结果,metadata描述了图模型测试依赖的底层平台和组件,test_example即为执行的流程级测试用例。在edge_coverage为100%的边覆盖策略下,该模型共生成4条测试用例,测试用例执行通过率为100%。


据统计,在传统的手工测试过程中,完成这一系列的全流程测试操作平均需要耗费3分钟。通过采用图模型测试技术自动化运行测试脚本,执行时长缩短到51秒,测试效率平均提高72%。

图3    图模型测试结果


图模型测试基于图论和软件统计测试的基本理论,是一种典型的算法驱动测试技术。在项目实践过程中,项目组选取多样化的路径生成器和结束条件进行对比验证。一方面,通过将路径生成器修改为quick_random,图模型尝试以最快的方式遍历模型,并基于Dijkstra算法进行路径最优化;另一方面,通过将遍历结束条件由edge_coverage(100%)更新为reached_vertex(v_depositResult),可以将测试范围限定为大客户态势感知平台,并对“实时存款余额”菜单项下的“存款仪表盘”等要素开展更为详尽的探索性测试。


作为一种构思新颖的测试方法,图模型测试从模型角度帮助业务分析师分析业务需求,量化产出结果。在基于需求的建模过程中,图模型根据被测系统的状态,设置相应的限制条件和策略来生成测试用例。通过整合Pytest框架,可以自动生成并执行测试脚本,遍历构建的图模型,进而发现较深路径下的隐藏缺陷,赋能业务需求精准实施。






往期精选:

(点击查看精彩内容)


● 实战 | 区块链技术在医保领域的应用探索与实践

● 实战 | 中小城商行湖仓一体数据服务架构建设实践

● 实战 | 湖仓一体助力平安产险数字化转型

● 实战 | 深化“湖仓一体”, 夯实数据应用基础

● 实战 | 立足技术创新,湖仓一体共生实践







新媒体中心:主任 / 邝源  编辑 / 傅甜甜  张珺  邰思琪

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存