• 我的订阅
  • 科技

ui自动化测试技术发展历程

类别:科技 发布时间:2024-04-04 02:40:00 来源:浅语科技

随着互联网和5G的全面发展,客户对于线上渠道和“非接触式”服务的需求越来越高,疫情期间,这种需求更加凸显。中国银行业协会发布的报告显示,2022年银行业平均电子渠道分流率为96.99%。为了适应客户需求和市场变化,各家银行都在采用敏捷模式建设线上渠道,通过手机银行、网银、微信银行等线上平台多端联动、持续迭代、不断提升客户旅程体验。在此背景下,测试团队如何有效支持敏捷模式、保证线上渠道交付质量是商业银行面临的重要挑战。民生银行从2018年开始基于原有的APP和WEB自动化测试能力,在自研的云测试平台基础上搭建了基于AI的UI自动化测试体系,通过五大关键能力,实现了端到端的UI自动化测试,在测试效能、优化测试资源配置、交付质量等方面有了进一步提升。研究背景

民生银行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技术的对象识别可以突破很多页面控件的难题,实现跨操作系统、跨浏览器的自动化测试,有效降低脚本的开发和维护成本。UI自动化测试技术发展历程

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

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

ui自动化测试技术发展历程

图1UI自动化测试技术发展历程

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

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

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

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

ui自动化测试技术发展历程

图2手机专用机柜

ui自动化测试技术发展历程

图3监控大屏

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

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

ui自动化测试技术发展历程

图4调度执行可视化

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

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

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自动化测试AI能力

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

ui自动化测试技术发展历程

图5UI自动化执行过程

以自然语言脚本【点击确定】步骤为例:①上位机/执行机先进行分词,分为【点击】和【确定】。其中【点击】为关键字,被判断定动作,而【确定】是目标文本。②确定UI自动化测试系统中是否存在【确定】的同名标注,如果有,将相应的标注样图取出。③截取设备屏幕,将设备截图、目标文本【确定】、图片标注样图(如果有),发给AI服务。④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%,反例精度为99.15%。

4.深度学习。下面主要从以下两个方面来介绍。

(1)通用图标识别。每个APP应用和WEB应用都会设计专属的图标,有些图标样式具有通用性和相似性,例如“齿轮”代表设置、“电话”代表联系方式、“放大镜”代表搜索、“垃圾桶”代表删除等,这些图标已经是约定俗成的,人们在操作程序时,不需要有文字说明,就能很自然地理解它们的意义。

通过深度学习,建立图标识别模型,可以定位并识别程序界面上的常见图标,并把它们语义化,配合自然语言,完成更流畅的自动化脚本编写。通用图标无需再进行图片标注和以图找图,目前图标识别模型支持80类常见图标的识别,识别精度为96.08%。

(2)UI智能识别。UI智能识别主要应用于真机群控和混控上,即操作一个设备,其他设备跟着一起操作,可以利用群控混控实现快速的多设备兼容性验证。它的底层实现是利用孪生网络,使用纯图像的特征判断控件的相似性,达到定位控件目的。实践成果

UI自动化测试系统自2023年初建设以来,在民生手机银行、个人网银、企业网银、柜面系统、移动运营系统、零售风控系统、非零售风控系统等对客系统进行了一期推广。重点覆盖TOP100场景的主交易,不断积累自动化案例库。经过实践,在以下几个方面取得了一些成果。

1.测试效能提升。脚本开发方面,由于自然语言学习门槛低、可以快速上手,加速实现了全员UI自动化。AI脚本解决了APP自动化、WEB自动化脚本兼容性问题,录制一套脚本即可在iOS、Android、鸿蒙系统手机执行,也可以在Chrome、IE、Firefox等浏览器上执行,维护成本减少了2/3,且不存在定制化开发的工作,解放了测试开发人员生产力。脚本录制从每天5—10条提升到每天15—30条,编写效率提升200%。由于基于AI的脚本依赖图像和文字识别,界面元素识别不受限,测试场景覆盖率提升了近40%。

人效分析方面,以手机银行为例,每2周进行一次全量回归测试,全年累计进行25次左右。每次使用10—14台Android+iOS设备,通过AI赋能UI自动化可以帮助手机银行测试组减少8.86人年人员投入。与手工测试相比,人效提升2.36倍左右。

2.质量保证。自动化执行方面,UI自动化实现了端到端的测试,覆盖全链路的系统;对前端页面、前后端调用、页面兼容性、客户端兼容性、浏览器兼容性等方面的测试提供了有效补充;常态化回归执行APP自动化脚本和WEB自动化脚本,有效发现影响性分析不足导致的开发测试遗漏。

以手机银行为例,针对不同测试专题执行基于AI的UI自动化测试任务,包括:机型适配性测试、安全工具测试、场景入口测试、客户端版本迭代测试、版本部署验证测试,以及首次安装/覆盖安装等兼容性测试等。不同专题制定不同执行计划、调度不同数量机型,确保执行的时效性。

3.自主可控。在自主可控方面,基于AI的UI自动化测试已适配信创GPU显卡及AI服务器,PC自动化支持信创操作系统,做到完全自主掌控,执行效率高于控件识别。

4.对外赋能。UI自动化测试与Devops流水线集成,实现了投产前每次部署介质的自动化验证,确保投产介质对重要场景交易无影响。

云真机服务通过将手机放置专用机柜中集中管理,远程操作,提升了测试资源的复用率,目前在线设备已达248台,日均在线活跃人数115人,累计申请次数达35万次,累计使用时长近30万小时,完成4.2万次自动化任务执行。

未来,民生银行将继续利用UI自动化测试工具,大力推广端到端的自动化回归测试,重点提升APP自动化、WEB自动化测试场景覆盖率、交易覆盖率,保障系统快速迭代的交付质量。

以上内容为资讯信息快照,由td.fyun.cc爬虫进行采集并收录,本站未对信息做任何修改,信息内容不代表本站立场。

快照生成时间:2024-04-04 09:45:05

本站信息快照查询为非营利公共服务,如有侵权请联系我们进行删除。

信息原文地址:

国产高端工控系统研讨会在北京召开
...统技术攻关、产品研发、行业应用,将有力推动我国工业自动化特别是工业控制核心技术和产品发展,推动工业现场数字化网络化智能化水平提升,助力装备制造业高质量发展。为促进国产高端工控
2023-12-30 07:51:00
麦当劳的DevOps范儿:Ninja平台工程实践揭秘
...格的质量关卡和审核环节;技术栈和工具繁多,没有形成自动化工具的使用规范和统一面板,不能在团队中弥合信息差、沟通成本高;堆人、手工的任务偏多;专家经验没有很好的复用等等。 自
2023-11-03 23:39:00
全球货运飞船进化史,七分钟读懂天舟飞船运载能力登顶
...飞船将会迎来新的发展趋势。随着人工智能、机器学习和自动化技术的迅猛发展,全球货运飞船将逐渐实现智能化和自动化。通过引入智能操作系统和自动化装载装卸系统,飞船的货物装卸过程将更
2023-10-31 15:20:00
“南京造”制动系统助力高铁跑出新速度
...黄色的机器人挥舞着手臂,依次进行着气路清洁度管控、自动化拧紧、关键部件影像识别等步骤。“这样一条生产线,清洁度、扭矩等关键参数均通过自动化设备在线管控,过去需要6个人完成的工
2024-04-12 07:56:00
自动驾驶技术不断升级 未来更多“聪明的车”将驶上“智慧的路”
...多“聪明的车”驶上“智慧的路”。新闻链接:汽车驾驶自动化分为6个级别在谈到自动驾驶汽车时,通常会看到L1、L2等概念,这是什么意思呢?这里普及一个知识点:根据工业和信息化部发
2024-04-01 16:39:00
攻克底盘技术,为中国智能汽车闯新路
...前瞻布局了面向未来高阶自动驾驶的全套解决方案。按照自动化程度,自动驾驶被划分为L1到L5五个等级,而L3在业内被认为是自动驾驶的分水岭之一,其最大变化在于它将车辆的部分控制权
2023-09-15 05:56:00
新能源车市快速扩容激发工业机器人再创新
...里的电驱车间拥有世界一流水平的“高柔性、高精度、高自动化”机加工生产线。针对前驱与后驱等不同造型的电驱单元,奥特能武汉工厂利用人工智能(AI)算法与虚拟仿真技术,通过数字化工
2023-08-11 08:40:00
发力高端芯片测试,华天科技构建多重竞争优势
...获取客户订单。 除产能规模和一站式服务优势外,工厂自动化、智能化也是集成电路测试企业核心竞争力的体现,华天科技正在积极投入智能工厂建设,在自动化、智能化方面引领行业发展。事
2023-11-29 13:02:00
电动汽车无线充电的发展历程
...车无线充电则有两大清晰的商业应用场景:一是电动汽车自动化充电,如自动驾驶场景,未来会逐步普及;二是立体车库场景下的无线充电。由于国家对停车场地的充电车位占比有一定要求,如果是
2023-01-05 18:27:00
更多关于科技的资讯: