来源:BanTech智库
作者:中国银行软件中心 李巍、祁江楠、黄攀、姬庆、张阳

近年来随着金融科技的快速发展,移动金融APP功能不断丰富、版本迭代速度越来越快,给用户带来了更加丰富完善的金融体验。但与此同时,也给新版本的测试工作带来了挑战。在测试中需要避免测试范围的遗漏,兼顾新功能的完备性、原功能的关联性、公共机制的有效性以及信息链路的延续性。同时又面临快速完成全面测试的要求,以达到缩短版本迭代周期,提升产品竞争力的目标。
在此背景下,中国银行软件中心深入探索深度遍历技术和知识图谱技术,构建智能测试模型,并将其应用于移动金融APP测试。该实践可实现无需编写脚本,完成对所有页面、元素的快速全量自动化测试,并结合人工智能算法自动识别问题,生成全功能链路知识图谱。生成的知识图谱,可应用于业务需求分析、测试案例生成等场景,助力移动金融APP产品快速发展。
一、基于深度遍历的移动金融APP测试方案设计
1.方案整体架构
移动金融APP作为银行业务的互联网载体,直接面向客户提供服务。为了给客户更好的使用体验,不断增加新功能丰富服务内容,逐步缩短测试周期加快版本迭代。为了实现这一目标,本文提出通过深度遍历技术快速自动完成移动金融APP的全量测试。该方案使用人工智能算法自动识别测试出的问题,并利用知识图谱技术自动生成全功能知识图谱网络,共同搭建金融科技智能测试模型。此模型整体架构如图1所示。

图1 基于深度遍历与知识图谱的智能测试模型整体架构
智能测试模型主要包括深度遍历、知识图谱、任务管理、设备管理和应用管理和五个模块。其中,核心的深度遍历模块完成对移动金融APP的全量快速测试,知识图谱模块生成对应的全功能链路知识图谱,任务管理模块发起测试实施,设备管理模块实现与测试终端(手机)的交互,应用管理模块获取需要测试的APP安装包。
2.模型设计方案
如何在移动金融APP新版本开发完成后,快速完成全量功能的回归测试,并自动识别存在的问题,是本实践要解决的重点问题之一。深度遍历是一种基于递归思想的图算法,其核心思想是对每一个可能的分支路径进行深入搜索,直至所有节点被访问。本文在移动金融APP测试过程引入深度遍历算法,从应用首页开始,对页面元素按照从左到右、从上到下的顺序进行遍历。遍历的方式包括:单击、滑动、填充等操作,操作元素后如有页面跳转,则进入下一页面进行遍历,按此顺序完成所有页面、所有元素的全量遍历,记录遍历过程中每一步的手机截图并存储遍历路径。
本方案通过SDK(软件开发工具包)和Appium(移动应用开源自动化测试框架)搭建与测试终端的通讯环境,发送对应的操作指令到测试终端,实现在测试终端上操作移动金融APP。同时截图保存当前操作页面并标注所操作的元素,记录并存储所操作元素至后续元素的跳转路径。
在快速完成全量测试后,将测试结果与标准设计图比对,利用经典的Fast R-CNN算法分别识别和获取元素在两类图中的图形以及位置信息,通过图形比对算法自动识别出被测版本存在的问题。如存在问题,则对问题进行标注,节省人工查找问题的时间,智能测试模型最终将测试结果和问题生成测试报告,直观呈现给测试人员。除此之外,模型将当次深度遍历的结果与上个版本的结果比对,识别当次改造的影响范围,是否引入意外变化等,从而对测试结果进行更全面的分析。
在遍历过程前,针对不同语言(支持Java、Python等)、不同元素信息状态配置不同的脚本生成模板;在遍历过程中,根据实际元素信息以及选择的语言自动定位模板,对每一步遍历操作生成可执行的脚本,可实现对测试过程的回放;遍历完成后,如遍历存在中断,模型支持从中断处再次发起,继续进行遍历。
智能测试模型设计方案如图2所示。

图2 智能测试模型设计方案
二、基于知识图谱的应用探索与实践
知识图谱是以结构化三元组的形式存储现实世界中的实体以及实体之间的关系,知识图谱在金融科技中已有广泛应用,包括量化投资、精准营销和信贷风控等领域。本文将知识图谱应用于金融科技测试场景,开展了相关探索与实践。
在智能测试模型中,通过深度遍历算法,记录移动金融APP所有页面、元素及其关系,经过离散点和无关点的清除、元素节点信息标记、数据关系构建等步骤,最终形成由页面和元素组成的三元组。将存入图形数据库的三元组组织在一起,构建移动金融APP产品级知识图谱,通过此图谱可查看APP页面层级网络、模块功能分区等。在此基础上,采用Echarts(基于JavaScript的数据可视化图标库)的力导图插件对图谱进行可视化展示,优化节点距离计算方法,使得智能测试模型能够按功能模块自动快速调整节点位置,清晰地展示应用的功能链路关系。
本实践将知识图谱技术应用于移动金融APP测试,包括当次深度遍历生成图谱与上次结果比对,发现当次改造的影响范围。除此之外,还应用于关键流程测试、挖掘客户实际使用情况以及需求价值分析,从而扩大数据应用范围,提升产品分析能力。
1.移动金融APP关键流程测试
深度遍历主要完成移动金融APP全量测试,但在一些场景下需要快速完成对关键功能的测试,例如在迭代版本交付初期需要对账户查询、转账、理财购买等最常用功能进行冒烟测试,在改动某个模块的功能后只需对该模块内主要流程进行测试。
由于知识图谱描述所有页面、元素及其关系网络,具有全面性、直观性等特点,所以可以基于知识图谱进行关键流程的测试。可通过选择开始页面、需要点击的页面元素、跳转后的页面等一系列图谱元素,设置关键流程。在测试过程中,关键流程测试程序会根据选择的手机元素,在知识图谱中获取可在手机端唯一定位的标识(如XPath等),通过Appium以及SDK将定位指令发送到手机端,定位元素位置。定位完成后,模型根据元素类型自动发送相应的操作指令,驱动手机执行操作,实现移动金融APP关键流程测试。
与深度遍历测试相同,智能测试模型中的关键流程测试支持脚本自动生成,保存每一步骤的路径记录,并对测试结果进行分析,自动识别测试过程中的问题。
移动金融APP关键流程测试如图3所示。

图3 移动金融APP关键流程测试
对测试结果分析时,本部分也采用了经典目标检测算法Fast R-CNN。但与深度遍历不同的是,关键流程的测试往往是新增或者修改的功能,需要更加细致的对比。具体方式为:首先,以用户界面设计的UI图为标准依据,使用标记工具对其进行位置和名称标记,以此作为数据训练集对算法进行训练以及参数调优,完成后即可获得自适应的目标检测算法。在测试结束后,根据每一步骤的截图,利用算法获取当前操作元素以及周围元素的位置和名称,同时获取标准图的相关信息。最后,根据标准图和测试截图的信息比对,设定容错阈值,根据阈值自动判断测试结果是否存在问题。
2.客户实际使用数据挖掘
在业界,通过用户使用数据,结合大数据与人工智能技术,可以生成用户级维度的画像。本文通过用户使用数据与移动金融APP产品自身的知识图谱结合,生成移动金融APP产品级维度的画像,该画像可供产品设计进行深入挖掘。
以大数据框架为技术支撑,获取并分析用户的非敏感实际操作数据,包括点击量、操作时长等。这些数据大多数是系统层面的描述,而知识图谱是功能层面的描述,需要借助开发文档等参考材料将采集的数据进行语义转换,达到与图谱节点匹配的目的。在语义转换后,采用Flink流式计算框架对数据进行处理,将这些数据以知识图谱中的节点和关系为维度进行数据汇总。经过计算,可获取移动金融APP各模块的使用量,一级、二级页面等不同层级页面的用户跳转率,交易流程中每一步的流失率等数据。针对上述数据进行分析,可以更好地完善产品分析工作。
此外,根据知识图谱可进行客户群体分类,同类客户群体的爱好和行为习惯在一定程度上也是相似的,可以将某个用户的高频操作打包成宣传页推荐给该客群中的其他人,最大程度提升用户体验。
3.移动金融APP流程设计优化
通过知识图谱与用户使用数据结合获得产品画像,可获取分析每步骤的交易流失率,帮助设计者优化移动金融APP的功能设置。对于用户流失率较高的功能,可以针对性地优化用户体验,减少操作流程的复杂度,从而减少用户流失,提高用户使用率。
在产品多个优化需求中,知识图谱可为需求价值评估提供帮助。将移动金融APP知识图谱中不同模块、页面根据用户点击量、交易额赋予对应的权重,在产品改造需求中根据需求涉及的模块、页面计算需求对应的权重累加值,评估出需求改造范围涉及的用户使用情况。经过对比分析,更有利于需求排序,优先实施对产品提升更明显的需求。
三、实践效果
智能测试模型已于2021年9月投产上线,并在中银跨境Go、手机银行等中国银行移动金融APP中使用,取得了一定的效果。以中银跨境Go为例,在持续集成交付流水线中,用深度遍历代替原有自动化方法进行全量回归测试,由于深度遍历不需要编写自动化测试脚本,与原有自动化方法相比,整体效率提升80%。不仅如此,在汇率查询、外币现钞预约等常用关键流程测试中,同样实现了明显的人力节省和效率提升,在实现保证质量的同时配合不断加快的版本迭代速度。
通过对中银跨境Go深度遍历生成的知识图谱进行分析,产品设计者基于图谱分析结果,针对留学模块的留学资讯进行了功能设置优化,将用户点击较多的资讯内容移至首页,减少了用户更感兴趣资讯内容的页面层级,有针对性地优化了用户体验,提高了用户使用率。
四、未来展望
展望未来,中国银行将持续深入创新,在保证质量、提升体验的前提下,加快产品迭代与版本更新,持续通过深度遍历与知识图谱推动移动金融APP测试的技术创新,切实提升技术与业务融合效果,助力数字化转型。后续,除深化现有场景应用、扩大实践成效外,将探索更多人工智能算法引入到测试结果分析、产品优化推荐中,逐步拓展本文使用技术的覆盖领域,预研深度遍历与知识图谱在元宇宙测试领域的试用,不断提升效率与用户体验。
-END-
这是科技创新最好的时代,这是属于我们每个人最好的时代,关注“BanTech智库”,专注银行科技发展,探索无界金融生态!
评论留言