星空体育官网注册
集成解决方案 自研解决方案
首页 > 产品解决方案 > 自研解决方案
星空体育官网注册案例 民生银行基于AI的UI自动化测试实践
发布时间:2024-04-08 05:07:00 来源:星空官方网站入口 作者:星空体育网站入口

  民生银行2018年起启动云测试平台建设并基于Appium搭建APP自动化测试子系统,WEB自动化方面使用Selenium和RPA流程机器人进行测试探索。随着自动化逐步推广,APP自动化和WEB自动化测试在脚本兼容性、脚本维护成本等方面逐渐暴露出一些瓶颈问题。

  APP自动化测试方面,由于机型众多、操作系统版本差异大,浏览器内核不统一,APP控件多种多样,使得现有的基于页面控件识别的APP自动化测试越来越依靠定制化开发才能完成控件操作和脚本编制,脚本维护成本高;APP兼容性测试方面,适配各种机型往往要录制多套脚本,大规模机型的兼容性测试由于脚本的不适配不得不采取人工对各机型逐一操作,测试工作量大,测试效率难以提升。

  WEB自动化测试方面,当前基于页面对象技术的WEB自动化测试系统在兼容性测试、各类页面控件支持、脚本维护成本等方面也出现与APP自动化测试相同的瓶颈问题。尤其是在脚本开发方面,因被测系统页面DOM结构复杂、UI框架升级、控件ID不固定等原因导致脚本的开发工作量大、可读性差、复用率低。

  为解决APP自动化和WEB自动化测试的痛点问题,民生银行测试团队经过深入调研分析决定引入AI能力,基于云测试平台打造UI自动化测试系统,涵盖APP、WEB、PC自动化测试。将传统的基于控件的对象识别和操作,转换为基于AI自然语言处理的图像、文字识别与操作。通过AI技术的对象识别可以突破很多页面控件的难题,实现跨操作系统、跨浏览器的自动化测试,有效降低脚本的开发和维护成本。

  1.UI自动化测试介绍。UI自动化测试(User Interface Automation Testing)是对被测软件用户界面(UI)进行自动执行测试的一种方法,使用专门的测试软件来模拟用户与应用程序界面的交互,以验证其功能和性能是否符合预期。UI自动化测试根据面向的软件主要分为三类:APP自动化、WEB自动化、PC自动化。

  2.UI自动化测试技术的发展历程。以APP、WEB、PC自动化为视角,UI自动化技术上的演进过程大致如图1所示。

  UI自动化测试技术的发展是软件测试领域不断进步和创新的一个重要表现。从早期的基础工具到现代的复杂框架和解决方案,UI自动化测试技术经历了从初期录制回放、脚本化,到跨平台和移动测试、云测试、人工智能和机器学习,未来的UI自动化测试将更加注重智能化和用户体验。

  3.民生银行UI自动化测试技术的发展过程。2018年以前主要使QTP/Selenium等WEB自动化工具进行简单自动化执行和数据准备。2018年民生银行自主研发了云测试平台,同时开发实现了基于控件识别的APP自动化和WEB自动化。2019—2022年APP自动化测试和WEB自动化测试在重要系统进行推广。2022年中旬启动UI自动化测试系统建设项目,2023年初开始实施,经过一年的时间完成了UI自动化测试系统的建设并与云测试平台对接。

  民生银行提出基于AI的UI自动化测试目标时,重点考虑了五个方面,即安全运维的自动化、效能提升的自动化、实时监测的自动化、对外赋能的自动化、自主可控的自动化。

  安全运维方面,考虑到APP自动化所需的移动设备真机运行,手机长时间不断电运转导致的过热、电池鼓包进而引发火情等安全隐患一直存在,因此民生银行定制了手机专用屏蔽机柜(如图2所示)。机柜具有屏蔽外界信号(内置AP)、防火防爆、大功率风扇,温度、湿度、烟感等监测手段,并配有监控大屏及告警机制(如图3所示),手机温度也可实时监测(限Android,iOS不提供API),极大提升了运维环境的安全性。

  效能提升方面,为解决脚本开发效率问题,云测试平台引入自然语言、OCR、图像识别等AI能力,AI脚本编写门槛低,业务、开发、测试岗位人员都可以快速上手。由于无控件识别的兼容性问题,一套脚本即可覆盖Android、iOS或不同浏览器之间的测试,降低了脚本开发周期。

  实时监测方面,当UI自动化大面积推广时,执行机的脚本执行监控与管理尤为重要,例如自动化任务中的脚本分发情况、任一设备的脚本执行进度、实时画面,这些对自动化测试的故障排查、设备资源合理分配起到重要作用。民生银行开发了APP、WEB、PC执行机旁观者模式(如图4所示),任一自动化人员都可远程实时观察设备执行情况,可按机柜及设备层、自动化项目、自动化任务等维度监控,也提供度搜索执行机精准监测。

  对外赋能方面,AI自动化任务调度执行的服务除了开放给云测试平台以外,还提供给DevOps流水线,作为版本介质部署后的质量门禁调度执行,承担了上线前投产介质的自动化验证。

  自主可控方面,除了支持英伟达GPU显卡和x86架构AI服务器外,还适配了华为昇腾AI处理器310和海光Z100LGPU显卡,具备了自主可控的能力。

  UI自动化测试系统包括八个核心模块:AI脚本管理、AI数据管理、AI智能服务、UI自动化引擎、UI自动化任务管理、测试报告管理、管理中心、监控大屏等。重点介绍以下几个模块。

  1.AI脚本管理。AI脚本支持自然语言语法,支持联想输入,支持语法合规检查、相对定位、关键词转义、参数传递、密码键盘、手势密码、短信验证、数据库JDBC查询、接口调用等,支持for、if嵌套、正则表达式、断言,此外还支持自然语言脚本和基于控件识别的脚本混合语法。支持手写脚本和页面录制自然语言脚本。在自定义操作方面,支持局部OCR和图像识别、支持操作力度设置等。

  2.AI数据管理。包括自动化数据准备,数据集、图像标注等。自动化数据准备已涵盖民生银行零售、对公、直销银行、信用卡、海外核心以及众多产品系统快速造数,UI自动化任务可添加自动化数据集,数据集支持反复使用和消耗型使用两种模式,并可根据使用情况自动触发数据补足。图像标注支持在UI自动化脚本录制时框选页面图片并命名,通过自然语言语法操作。此外,系统支持图标训练,将APP和WEB系统的各系统化图标通过深度学习训练,无需每次图像标注即可默认识别。

  3.AI智能服务。提供OCR、图像识别等AI能力,部署在民生银行大数据AI中台,是UI自动化的核心能力。

  4.UI自动化引擎。针对APP、WEB、PC自动化提供多种执行调度模式,例如:APP执行可按设备型号、操作系统类型、操作系统版本、页面尺寸等设备信息调度,也可按照空闲程度、串行/并行和执行次数调度。WEB执行可按浏览器类型、版本号调度。PC机可按操作系统类型调度。

  5.UI自动化任务管理。包括APP、WEB、PC自动化任务、APP兼容性测试任务,APP群控混控任务的管理,可实时查看任务执行状态、脚本执行状态、脚本执行步骤完成情况等。

  民生银行UI自动化测试(如图5所示)主要使用了OCR和图像识别的AI能力来代替原有控件识别,通过约定的自然语言语法使得脚本编写更加规范,语义识别更加准确,AI脚本执行设计过程如下。

  以自然语言脚本【点击确定】步骤为例:①上位机/执行机先进行分词,分为【点击】和【确定】。其中【点击】为关键字,被判断定动作,而【确定】是目标文本。②确定UI自动化测试系统中是否存在【确定】的同名标注,如果有,将相应的标注样图取出。③截取设备屏幕,将设备截图、目标文本【确定】、图片标注样图(如果有),发给AI服务。④AI服务对截图上的全部文本进行识别,定位到目标文本【确定】,如果找不到相应的文本,则使用【标注】进行识别,定位到目标图片,将文本位置坐标或图片位置坐标返回给上位机/执行机。⑤上位机/执行机将坐标和前面分词得到的动作【点击】转化为针对设备的操作命令,发送到设备,完成执行【点击确定】的操作。

  1.自然语言(NLP)。自然语言脚本主要实现思路是:定义语法规则文件,编写语法分析器功能,进行关键词的提取,将行为关键词和对象关键词转化为页面操作指令。

  自然语言语法库中包含了常用的前端操作行为以及视觉逻辑判断,结合APP、WEB、PC被测系统的实际情况,在页面对象的选择上不但支持方位、还支持顺序判断,具体情况如下。

  支持的具体操作类型包括:点击、双击、长按、等待、滑动、拖拽、输入、手势密码、安全键盘、变量赋值。

  支持的具体的语义逻辑包括:如果目标对象存在,则点击目标对象;如果目标对象不存在,则点击目标对象。操作对象支持:文字、图标、图片,并支持以变量作为参数。

  操作支持关联的方位词和顺序:上/下/左/右,表示实际操作的是对象关联的方位词方向上的对象,并支持指定操作方位词方向上的第几个对象。

  对象查找策略:按照指定的类型查找,如未指定类型则按照文本/图片/图标的优先级顺序进行查找。超时时间:支持在任意操作后面添加超时时间选项。

  除支持上述语法外,还支持自定义滑动,可调整滑动位置和力度(长短)、自定义操作区域(可调整对目标对象的查找范围)、映射屏操作模式(点击即录制,自动生成脚本)。

  2.OCR。OCR是AI赋能UI自动化底层最重要的控件定位识别技术。它采用深度学习和传统CV技术,UI自动化测试系统中的OCR主要分为文本检测和文本识别两个步骤。经过检验,OCR在手机APP端的识别精度为99%以上;在WEB和PC桌面应用中识别精度98.79%。

  在APP自动化方面,OCR技术实现了任意类型(例如九宫格、全键盘、数字键盘、密码键盘等)的有序和无序键盘识别,在WEB自动化方面,OCR技术实现了密集小字体识别、密集表单识别、多层次表单识别。

  3.图像识别。在UI自动化测试中,有文字的控件定位,可以用OCR识别解决。对于没有文字的控件则需要用以图找图来解决。以图找图是保存一个控件的样图,在脚本执行时用样图定位控件的位置,然后进行相应的操作。

  以图找图的难点在于:不同设备上同一个图标的大小不同,而且与设备尺寸变化比例不一定一致;图标大部分是简约的线条设计,特征点很少;图标背景随场景变化而变化。

  为解决上述问题,图像识别使用了模板匹配算法,将源图缩放形成与目标图匹配的模板图,减少匹配的次数;同时为解决多模板图搜索效率问题,结合源图所在位置进行局部搜索,提高匹配速度。为了避免误识别,由模板匹配算法识别到的结果与模板进行相似度计算。相似度计算由CNN模型实现,目前正例精度为98.35。


星空体育官网注册
上一篇:AI早知道|字节跳动推出超高清文生模型;SVD 下一篇:DriveNets与Ciena完成网络云平台ZRZ