CN114116474A - 一种软件校验方法、装置、电子设备及存储介质 - Google Patents
一种软件校验方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114116474A CN114116474A CN202111397685.4A CN202111397685A CN114116474A CN 114116474 A CN114116474 A CN 114116474A CN 202111397685 A CN202111397685 A CN 202111397685A CN 114116474 A CN114116474 A CN 114116474A
- Authority
- CN
- China
- Prior art keywords
- software
- image
- text
- acquiring
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种软件校验方法、装置、电子设备及存储介质,用于解决传统的软件UI自动测评技术必须为不同形态的软件分别开发自动评测代码,自动评测代码维护工作量大的技术问题。本发明包括:确定预设的软件的软件UI上要操作的元素;在所述软件UI上获取包含所述元素的屏幕子区域,并获取所述屏幕子区域的区域信息;根据所述区域信息获取所述屏幕子区域的截图数据;将所述截图数据转化为灰度图;获取所述元素在所述灰度图上的目标坐标;根据所述目标坐标和所述区域信息,获取所述元素在所述软件UI上的实际坐标;根据所述实际坐标对所述元素执行预设操作,生成UI显示结果;采用预期UI显示结果校验所述UI显示结果。
Description
技术领域
本发明涉及软件校验技术领域,尤其涉及一种软件校验方法、装置、电子设备及存储介质。
背景技术
根据软件UI来验证、监控其各个功能的运行是否正常长期以来都是人们主要使用的质量测评方式,其原理是先驱动软件运行,例如根据UI上的提示输入文本、选择单选或多选框,单击或双击按钮或链接等UI元素,再检查之后UI效果是否符合预期。
由于人眼很容易判断UI上的文字、图像是否有问题,通过视觉来判断可以轻松胜任任意形态或技术方案的软件的质量评测。但是由于软硬件技术发展上的原因,当前主流的自动评测技术主要从UI元素的内部构成上入手来实现,在实际应用中存在一系列不足。
现有的UI自动化技术严格依赖特定的软件平台,例如安卓、Chrome、Net或基于自定义协议的服务等,通过平台的技术获得要操作的UI元素并驱动软件运行后,再通过平台提供的技术获得元素内容的更新并和预期对比来实现运行效果的验证。
然而,这些自动化方案需要基础平台的支持,同一个系统的不同形态的终端软件,尽管在业务需求上可能极为相似,但是自动校验代码的形式及其技术体系往往都差异较大,例如用于Web UI自动化的selenium框架及其代码,与安卓客户端的UIAutomator、iOS客户端的UIAutomation技术基本没有多少共同或可复用之处。带来的问题包括深入的开发技术门槛高,测试脚本代码难以及时维护从而难以全面满足业务需要的问题,甚至会出现基于某平台技术实现的软件无法实施自动测试的情况。
发明内容
本发明提供了一种软件校验方法、装置、电子设备及存储介质,用于解决传统的软件UI自动测评技术必须为不同形态的软件分别开发自动评测代码,自动评测代码维护工作量大的技术问题。
本发明提供了一种软件校验方法,应用于客户端;所述方法包括:
确定预设的软件的软件UI上要操作的元素;
在所述软件UI上获取包含所述元素的屏幕子区域,并获取所述屏幕子区域的区域信息;
根据所述区域信息获取所述屏幕子区域的截图数据;
将所述截图数据转化为灰度图;
获取所述元素在所述灰度图上的目标坐标;
根据所述目标坐标和所述区域信息,获取所述元素在所述软件UI上的实际坐标;
根据所述实际坐标对所述元素执行预设操作,生成UI显示结果;
采用预期UI显示结果校验所述UI显示结果。
可选地,所述区域信息包括宽度和高度;所述在所述软件UI上获取包含所述元素的屏幕子区域,并获取所述屏幕子区域的区域信息的步骤,包括:
在所述软件UI上确定参照物,并在所述参照物上选择开始点坐标,并将所述开始点坐标保存为位置偏移量;
确定所述元素与所述参照物的相对方向;
以所述开始点坐标为角点,基于所述相对方向,在所述软件UI上截取包含所述元素的屏幕子区域,并获取所述屏幕子区域的宽度和高度。
可选地,所述获取所述元素在所述灰度图上的目标坐标的步骤,包括:
当所述参照物为文字时,通过文字识别识别所述灰度图中的文本,并获取各个文本在所述灰度图中的文本坐标;
获取所述元素对应的目标文本;
在所述文本中匹配所述目标文本,得到所述元素对应的目标坐标。
可选地,所述获取所述元素在所述灰度图上的目标坐标的步骤,包括:
当所述参照物的类型为图像时,获取所述元素对应的待搜索图像;
获取所述待搜索图像的图像内容边缘;
采用图像识别识别所述灰度图上的图像;
采用多个预设缩放系数缩放所述灰度图上的图像,得到缩放图像;
获取所述缩放图像的缩放图像内容边缘;
在所述缩放图像的缩放图像内容边缘中匹配所述图像内容边缘,确定所述元素对应的目标图像;
获取所述目标图像与所述参照物的相对位置关系;
根据所述相对位置关系和所述开始点坐标,确定所述元素在所述灰度图上的目标坐标。
可选地,还包括:
当在所述文本中匹配不到所述目标文本时,计算所述目标文本与所述灰度图上的各个文本之间的相似度,并确定最大相似度;
判断所述最大相似度是否大于预设相似度阈值;
若是,将所述最大相似度对应的文本的文本坐标确定为所述元素的目标坐标。
可选地,还包括:
当所述最大相似度不大于所述预设相似度阈值时,获取各个所述文本的置信度和上下文信息;
根据所述置信度和所述上下文信息校正所述文本,得到校正文本;
计算所述相似文本与所述目标文本之间的校正相似度,并确定最大校正相似度;
当所述最大校正相似度大于所述预设相似度阈值时,将所述最大校正相似度对应的校正文本的文本坐标确定为所述元素的目标坐标。
可选地,所述预设操作包括增加、删除、修改和查询中的至少一种。
本发明提供了一种软件校验装置,包括:
元素确定模块,用于确定预设的软件的软件UI上要操作的元素;
屏幕子区域获取模块,用于在所述软件UI上获取包含所述元素的屏幕子区域,并获取所述屏幕子区域的区域信息;
截图数据获取模块,用于根据所述区域信息获取所述屏幕子区域的截图数据;
灰度图转化模块,用于将所述截图数据转化为灰度图;
目标坐标获取模块,用于获取所述元素在所述灰度图上的目标坐标;
实际坐标获取模块,用于根据所述目标坐标和所述区域信息,获取所述元素在所述软件UI上的实际坐标;
UI显示结果生成模块,用于根据所述实际坐标对所述元素执行预设操作,生成UI显示结果;
校验模块,用于采用预期UI显示结果校验所述UI显示结果。
本发明提供了一种电子设备,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行如上任一项所述的软件UI校验方法。
本发明提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行如上任一项所述的软件UI校验方法。
从以上技术方案可以看出,本发明具有以下优点:本发明通过获取正在运行的软件的UI图像后进行灰度化等初步处理,再通过识别元素并获取元素在灰度图上的目标坐标,以确定元素在软件UI上的实际坐标,从而准确定位元素。进一步通过对已定位的元素进行操作,得到相应的UI显示结果,并通过预期UI显示结果对UI显示结果进行校验,从而实现对软件UI的自动评测。同时无需为不同形态的软件分别开发自动评测代码,降低了对代码的维护工作量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种软件校验方法的步骤流程图;
图2为本发明实施例提供的一种软件UI的显示示意图;
图3为本发明实施例提供的一种软件校验方法的流程图;
图4为本发明实施例提供的一种软件校验装置的结构框图。
具体实施方式
本发明实施例提供了一种软件校验方法、装置、电子设备及存储介质,用于解决传统的软件UI自动测评技术必须为不同形态的软件分别开发自动评测代码,自动评测代码维护工作量大的技术问题。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,图1为本发明实施例提供的一种软件校验方法的步骤流程图。
本发明提供的一种软件校验方法,具体可以包括以下步骤:
步骤101,确定预设的软件的软件UI上要操作的元素;
软件UI上的元素主要由文字、控件、图标构成,这些元素之间往往要求分区域集中摆放、垂直和水平方向上均匀分布并对齐,在UI风格上保持一致。另外不同软件在控件类型数量及UI布局风格上数量有限,具有比较多的共同点,例如都要用文本框、按钮等常见控件,这样用户在不同软件之间切换时才不会有很高的学习成本,这些是UI设计规范的重要组成部分。
在本发明实施例中,根据评测工作的需要,首先需要确定UI上要操作的元素,例如图2中,在添加、编辑数据的场景下需要输入数据时,一般选取左上角第一个元素开始输入;也可以随机从UI上选择任意一个元素。
步骤102,在软件UI上获取包含元素的屏幕子区域,并获取屏幕子区域的区域信息;
在确定了所要操作的元素后,可以选定一个包含要操作元素的屏幕子区域,并获取屏幕子区域的区域信息。
在一个示例中,区域信息可以包括宽度和高度;在软件UI上获取包含元素的屏幕子区域,并获取屏幕子区域的区域信息的步骤,可以包括:
S21,在软件UI上确定参照物,并基于参照物选择开始点坐标,并将开始点坐标保存为位置偏移量;
S22,确定元素与参照物的相对方向;
S23,以开始点坐标为角点,基于相对方向,在软件UI上截取包含元素的屏幕子区域,并获取屏幕子区域的宽度和高度。
在具体实现中,选定一个包含要操作的元素的屏幕子区域,该区域的高、宽不需要严格限制,包含选定的元素、周围有一定空白但是不包含其他无关元素即可。为此需要先选定参照物,并基于参照物得到一个开始点坐标,如参照物某一个角点的坐标等。然后进一步以开始点坐标为基础,生成屏幕子区域。其中,屏幕子区域的宽度和高度可以是从开始点坐标对应的开始点往屏幕的上、下、左、右、右下、左上、左下或右上共八个方向上圈定一定的区域后得到的宽高,也可以是一个指定的数值。具体选择什么方向可以根据UI上选取的参照物(可以为文本、控件或图标)和要操作的元素在参照物的哪个方向上确定。通过这种方式,即使有部分组件识别失败,也可以利用这些特点计算得到要操作的元素在整个UI上的可操作的像素点的坐标,从而可以在识别成功率无法达到100%的情况下仍能驱动整个评测过程的继续运行。例如图2中利用UI上组件在水平、垂直方向上对齐和均匀布局的特点,在OCR识别成功“成功数”的情况下,可以选其左上角坐标(x1,y1)为开始点,假设其右上角坐标为(x2,y1),x2-x1的差整除3可得每个字符的宽度,x1减少一定值可以得到“执行数”(开始点左边)的位置,x1、y1分别减少一定值可以得到“测评说明”(开始点左上)的位置,这里的一定值在一个确定的UI上因控件均匀布局而固定,可以通过计算识别成功的相邻控件或文本的间距得到,例如图2中,左边“产品名”开始的那一列的文本只要有一个能通过OCR定位成功,取其x1与右上角x坐标的差值在水平方向上即可涵盖开始点左边的文本框。这里在能覆盖要定位、操作的对象的前提下,应避免选取剩余全部区域,同时在不影响结果准确率的前提下选定区域中包含的无关对象应尽量少。
步骤103,根据区域信息获取屏幕子区域的截图数据;
在本发明实施例中,在确定屏幕子区域后,可以调用PyAutoGUI的screenshot()方法并传入前述获取的屏幕子区域的区域信息来得到对应的截图数据,后续所有用来识别的区域截图均只在内存中操作而不保存到本地磁盘。
其中,PyAutoGUI是一个用Python开发的可以工作在Windows、Linux和Mac系统上的软件工具,专门用来控制鼠标、键盘来自动化地与某个软件系统实现交互。
步骤104,将截图数据转化为灰度图;
在获取到屏幕子区域的截图数据后,可以将上述截图数据由RGB通道的数据转换为灰度图。如分别调用NumPy的array()、OpenCV的cvtColor()方法将上述截图数据转换为灰度图。
其中,NumPy即Numerical Python,Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵),支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。轻量级而且高效,由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
步骤105,获取元素在灰度图上的目标坐标;
在本发明实施例中,屏幕子区域是以开始点坐标为基础获取的包含要操作的元素的区域。由于开始点坐标是已知的,通过确定元素在灰度图上与开始点坐标的相对坐标,可以确定元素在整个软件UI中的实际坐标。
在一个示例中,获取元素在灰度图上的目标坐标的步骤,可以包括:
S31,当参照物为文字时,通过文字识别识别灰度图中的文本,并获取各个文本在灰度图中的文本坐标;
S32,获取元素对应的目标文本;
S33,在文本中匹配目标文本,得到元素对应的目标坐标。
在具体实现中,当参照物是一串文字时,可以通过OCR技术确定文本的坐标。OCR(optical character recognition,文字识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,然后用字符识别方法将形状翻译成计算机文字的过程;即对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程。
具体步骤如下:
通过OCR识别灰度图中的文本,得到每个文本在区域中的文本坐标、置信度;获取要操作的元素对应的目标文本与上述识别得到的文本按内容完全相等来查询对应的识别结果,以得到元素在灰度图中的目标坐标。
进一步地,获取元素在灰度图上的目标坐标的步骤,还可以包括:
S34,当在文本中匹配不到目标文本时,计算目标文本与灰度图上的各个文本之间的相似度,并确定最大相似度;
S35,判断最大相似度是否大于预设相似度阈值;
S36,若是,将最大相似度对应的文本的文本坐标确定为元素的目标坐标。
如果在文本中匹配不到目标文本,则可以利用目标文本、灰度图中的文本用Python构造SequenceMatcher()实例,然后调用其ratio()方法获得目标文本与灰度图中文本的相似度,如果相似度超过某个设定的相似度阈值,考虑到文字识别上的错误率,在一些UI文字的识别场景中,可以认为二者实际是相同的字符串,这时上述识别得到的文本中对应的字符串的坐标就是目标文本的目标坐标。
进一步地,获取元素在灰度图上的目标坐标的步骤,还可以包括:
S37,当最大相似度不大于预设相似度阈值时,获取各个文本的置信度和上下文信息;
S38,根据置信度和上下文信息校正文本,得到校正文本;
S39,计算相似文本与目标文本之间的校正相似度,并确定最大校正相似度;
当最大校正相似度大于预设相似度阈值时,将最大校正相似度对应的校正文本的文本坐标确定为元素的目标坐标。
当文本与目标文本的相似度低于预设的相似度阈值时,可以从字符形态、识别结果的置信度和UI内容上下文按顺序逐个字符检查从灰度图中识别到的文本,来校正一些特殊字符的识别,例如这些字符之间可以认为相同:1(数字)和l(L的小写)、s和S、5和S、B和8等,具体哪些字符之间允许这样校正可根据实际应用设置。计算校正后的字符串与目标文本的相似度,在相似度超过一定相似度阈值后可以认为两个字符串是同一个,从而确定目标文本的目标坐标。
在另一种情形中,如果一个字符串仅识别出一部分,可以利用所有字符串及其位置上的顺序关系,在排除正确识别的字符串后,查找与之相似的文本,结合文本在灰度图上的位置关系也有助于确定识别结果是哪个UI字符串。例如图2中“成功套件数”中的“套”如果识别失败,可以根据其坐标紧邻于“失败数”下面并且其他几个字符识别正确的情况确定实际字符是“套”。经过这样校正后,能够提升识别结果的准确度,实现更多UI元素的定位。
在另一个示例中,获取元素在灰度图上的目标坐标的步骤,可以包括:
S41,当参照物的类型为图像时,获取元素对应的待搜索图像;
S42,获取待搜索图像的图像内容边缘;
S43,采用图像识别识别灰度图上的图像;
S44,采用多个预设缩放系数缩放灰度图上的图像,得到缩放图像;
S45,获取缩放图像的缩放图像内容边缘;
S46,在缩放图像的缩放图像内容边缘中匹配图像内容边缘,确定元素对应的目标图像;
S47,获取目标图像与参照物的相对位置关系;
S48,根据相对位置关系和开始点坐标,确定元素在灰度图上的目标坐标。
在具体实现中,当选做参照物的UI元素是一个图标或图像时,可以通过动态模板匹配按以下步骤在选定的屏幕子区域中确定其目标坐标。
a)、从要评测的软件UI上把要搜索的元素截图保存为本地文件;
b)、调用OpenCV的imread()方法从本地读取要操作的元素对应的待搜索图像,然后调用cvtColor()方法转换为灰度图;
c)、调用OpenCV的Canny()方法获得待搜索图像的图像内容边缘。进一步地,还可以并对图像内容边缘先后执行高斯模糊、使用Sobel算子计算像素的梯度大小和方向、使用非极大值抑制(只有最大的保留)消除边缘检测带来的杂散效应、应用双阈值并通过抑制弱边缘来得到最终的图像内容边缘;
d)、生成一批缩放系数,起始和终止索引应分布在1前后,例如0.5~1.5,可以在参照当前屏幕宽高尺寸与得到模板图像的屏幕的尺寸比的基础上增加一定的冗余来设置这最大值,中间再分为20~30份,原则上使缩放后的某个比例的图像比较接近待搜索的图像即可;
e)、采用上述缩放系数循环按该灰度图上的图像的原有宽高比例缩放,如果缩放后的图像的高或宽小于待搜索的图像的对应值则退出循环,否则继续搜索;
f)、然后调用OpenCV的matchTemplate()方法缩放图像内容边缘以图像内容边缘循环匹配;
g)、调用OpenCV的minMaxLoc()方法获得上一步匹配结果的最大值和对应的位置,然后把这两个数据和对应的缩放比一起保存在内存中;
h)、如果上面的循环步骤已经有保存了的数据,则和这一步的结果比较后保存二者中的最大值;
i)、d)~g)循环结束后获得最后保存的匹配结果的最大值、对应位置和相应的缩放比,该最大值对应的位置即为目标图像的位置。
j)、根据参照物和要操作对象的位置上的关系,可以获得要操作对象的坐标,如果图像本身就是要操作的组件,例如自定义的CheckBox,那么上一步的坐标就是最终的结果;如果要操作的是图像左边并排的文本框,把x值减去一个大于二者之间间隔的数值后y不变即可。
k)、如果选定的区域上存在多个形状相同的待定位图像并且需要定位某一个时,在e)步执行matchTemplate()时应指定输入参数为TM_CCOEFF_NORMED;
l)、对匹配结果执行NumPy的where()过滤得到超过指定阈值的匹配结果的坐标;再对结果值执行非最大值抑制算法去重后得到每个匹配矩形的左上、右下角的坐标后保存;
m)、再按图像原始宽高比缩放后的图像上执行j)、k)可以在截图中找到不同大小的图像,最后对从k)步得到的结果集中左上角的点按从左到右、从上到下排序后从中获取对应序号图像对象的位置即可。
在另一个示例中,当选做参照物的UI元素是一个复合组件,其中包含提示文字和对应的图像时,可以通过上述文字识别过程获得文字对应的矩形的坐标,通过图像识别过程获得图像的坐标,根据接下来要操作的对象在UI上与这两个对象的相对位置的关系,再利用二者计算得到接下来要操作的对象的坐标。
在另一个示例中,当选做参照物的UI元素对应的文字说明无法识别,UI上元素附近也没有图像可以用作相对定位时,可以通过控件间间距计算并结合控件的布局特征确定要操作的元素的位置,例如图2中,如果“成功套件数”无法识别,由于这个UI上各个控件中垂直方向上均匀分布、水平每一行的两个控件居中对齐,这个组件中文本框的可操作的点的坐标可以通过上面或右边的组件的坐标计算出来。相应的过程如下:
可以利用上述文字识别或图像识别的过程得到水平或垂直方向上一个参照物组件的坐标(x1,y1);
采用上一步的计算方式,根据需要选择计算UI上间距相同或相似的另外两个组件之间的垂直或水平距离d,这里要操作的对象如果和上一步的对象在垂直方向上则计算垂直距离,如果在水平方向上,则计算水平距离;
如果组件之间在空间上没有均匀分布,这种情况下往往相比均匀分布的位置只有不大的差异,而且如果未均匀分布的组件较多、差异较大,UI上组件的摆放会有一定的混乱,不符合UI设计规范,这种情况下需要利用上述差值做一定的估算;
在部分场景下,需要检测某个位置的组件是否存在遗漏检测(未检测到)的情况,这时除了提升图像和文字识别的准确度(要先在服务端训练、验证)之外,还可以截图控件所在区域的图像,并与同一个UI上相同大小的空白区域的图像作直方图计算和对比;或在控件区域上通过动态模板匹配搜索预先准备的控件图像(例如图2中的文本框),如果控件的组合上包含有图片,也可以在这个区域上采用动态模板匹配搜索对应的图像,只要有识别结果,即说明存在遗漏检测,然后利用控件对齐及宽高一致的原则可以推测出控件的位置;
在不需要估算时,如果选择的两个组件垂直均匀分布,直接根据a)、b)之间的间距和中间存在多少个组件可以增(要操作的组件在下边)、减(要操作的组件在上边)中间的组件数得到要操作的组件的y坐标值,x不变。例如,如果要操作的文本框在参照物文本框下边并且二者中间有2个相同大小且垂直均匀的文本框,则要操作的组件的坐标为(x,y+3d);如果图2中“成功套件数”无法识别但是“产品名”识别正常,而且产品名的一个课输入点坐标为(x1,y1),由于二者上下之间有4个均匀分布的控件,假设垂直方向上相邻两个文本框的对应说明文本的中心点之间的垂直距离为d,那么“成功套件数”文本框的对应可输入点的坐标是(x1,y+5d)。类似地,当选择的两个组件水平均匀分布时,y坐标不变,x增加或减去上述水平距离即可。如果需要估算,则按两个组件之间水平或垂直对齐进一步在最终的x或y坐标上加上估算值。
步骤106,根据目标坐标和区域信息,获取元素在软件UI上的实际坐标;
在具体实现中,区域信息可以包括起始点坐标,在获取到目标坐标后,可以根据目标坐标和起始点坐标计算得到元素在软件UI上的实际坐标。
步骤107,根据实际坐标对元素执行预设操作,生成UI显示结果;
步骤108,采用预期UI显示结果校验UI显示结果。
在本发明实施例中,对元素执行的操作可以包括增加、删除、修改和查询中的至少一种。
在获取到元素的实际坐标后,可以根据实际坐标对元素执行预设操作,来得到UI显示结果;接着将UI显示结果与预期UI显示结果对比,判断结果是否一致,如果不一致则表征软件存在质量问题。
本发明通过获取正在运行的软件的UI图像后进行灰度化等初步处理,再通过识别元素并获取元素在灰度图上的目标坐标,以确定元素在软件UI上的实际坐标,从而准确定位元素。进一步通过对已定位的元素进行操作,得到相应的UI显示结果,并通过预期UI显示结果对UI显示结果进行校验,从而实现对软件UI的自动评测。同时无需为不同形态的软件分别开发自动评测代码,降低了对代码的维护工作量。
为便于理解,以下通过具体示例对本发明实施例进行说明:
请参阅图3,图3为本发明实施例提供的一种软件校验方法的流程图。
增删改查(浏览)是多个类别的软件中极为常见的功能。这里以某产品联系人管理功能的自动评测为例对本发明实施例进行说明,具体可以包括以下步骤:
1)、按上述方案,通过OCR识别找到目标模块对应的文本串矩形区域,并计算该矩形的中心点的坐标,PyAutoGUI的click()点击该点打开要评测的功能,开始时无数据;
2)、点击新增联系人记录;
3)、在弹出的添加联系人记录的窗体中,利用文字识别、组件之间的距离计算获得要输入数据的每一个输入控件旁边的文本提示的坐标,再根据这个坐标获得对应矩形的中心节点的坐标;
4)、利用文本与输入控件水平居中对齐的特点,把上一步的坐标的x值增加一个偏移量,使之超过文本提示label与输入控件的间隔即可,y值不变,得到的新的(x,y)作为要操作的位置;
5)、调用PyAutoGUI的click()点击上一步获得的坐标,再调用typewrite()向文本框输入内容,这里可以根据业务实体列表页展示的数据记录这里添加的主要属性的值,例如联系人姓名;
6)、如果上面是文本框中输入数据,那么上面5)步已经完成对当前组件的输入;如果是下拉框,5)步click()执行后等待一定时间(要等多久由后台对应功能的耗时决定),再使用上述方案截图、识别弹出的条目的坐标,然后点击要输入的条目,再等待约0.5秒即可完成下拉框的选择和输入操作;如果是单选或多选组件,直接调用上述图像搜索功能,搜索相应单选或多选组件的坐标并点击,如果出现找不到的情况,则使用上述组件之间距离的计算方法获得要操作的组件的坐标来实现数据的输入;
7)、完成所有组件是输入后,通过OCR识别找出“确定”或“保存”字符串所在按钮的中心坐标并点击,实现数据的保存。然后等待后台处理完成,成功添加时3)步出现的弹窗应该已经关闭;
8)、这里如果有输入数据不符合要求,常见的有未输入数据、数据格式不对、数据超过限定的范围等,UI上应该有对应的提示内容。这里通过在UI上利用OCR检查指定区域中是否存在对应的提示信息可以验证系统的数据校验功能是否存在以及提示内容是否符合预期。成功添加后进入下一步;
9)、识别内容区域的文本,获得上述操作的结果;
10)、从识别结果中查询5)步最后记录的数据是否中UI上出现,如果找到表明上一步的操作成功,找不到说明失败并对当前软件截屏保存为本地图片;
11)、如果发现有操作失败,可以调用PyAutoGUI输入快捷键打开浏览器的控制台,再通过OCR提取控制台可能出现的错误输出的文本;
12)、如果成功添加,则通过图像搜索功能查找新添加的记录所在列表行的单选或多选组件在UI上对应的矩形区域,由于单选或多选组件一般显示在列表第一列,这里可以把对应记录主要属性值作为参照物,向左截图使之包含对应的CheckBox组件再执行图像搜索,再利用上面得到的记录主要属性文本的坐标可以计算出UI上单选或多选组件的坐标。然后计算其中心点的坐标并点击选中,再通过OCR查找删除按钮或者利用图像搜索功能查找同一行上删除记录这个功能的图标的矩形及其中心点坐标,找到后点击删除选中的数据。这里也根据需要采用计算控件之间距离的方式处理查找不准确的情况,并同样记录业务实体的关键属性,例如联系人姓名;
13)、删除数据之后等后台处理完,然后执行9)~10),当在UI上找不到上面记录的业务实体关键属性数据时,可以判断删除成功,如果失败则对当前软件截屏保存为本地图片;
14)、反复执行上述2)~13),如果发现白屏(内容区域无内容显示,对应的web识别结果集总是空)、添加的数据不能显示出来(经过文本识别矫正后仍然找不到刚刚添加的业务数据)、业务记录的数据不能完全删除(一条业务数据删除后部分字段的内容仍然显示)、显示的数据与预先记录的数据不一致(例如删除后UI上显示了更多条记录)等问题,都说明相关的功能有bug;
15)、反复执行2)~14),计算执行一段时间后有多少次正常、有多少次有bug以及具体是什么问题,统计后可以确认相关功能是否不稳定、主要发生的问题有哪些。搜集到这些信息后可以记录并生成报告通知到相关人员。
进一步地,由于文字和图像的识别性能以及图像搜索准确度保障上的原因,面向不同显卡、不同屏幕尺寸的自动适配很有意义,否则可能存在的问题包括评测脚本运行耗时可以增加十几倍~几十倍甚至更多、UI上控件的布局发生混乱并与预期大大不同,甚至在UI上找不到需要的文字或图像。自动适配功能用来记录作为参照物的一个字符串、图像或控件在一个设备上运行的UI上的坐标,此功能可以应用于要评测的软件的每一个UI。自动适配的具体方案和步骤包括:
当打开一个新的UI,在UI上需要选取查找UI元素的区域时,检查保存参照物对象的配置文件以及配置文件中指定参照物的坐标信息是否存在、是否都大于0;
当参照物的坐标数据存在且都大于0时,可以在UI上参照物的八个方向上选取子区域,然后在选定的区域上查找、操作UI元素并验证结果,有助于减少无用的识别操作,从而提高性能;
当参照物的坐标数据不存在或数值有小于0时,按上述方案在整个UI上全局查找参照物对象,根据要处理的软件以及UI上参照物对象的类别,可以利用上述方案查找文本、搜索图像或通过yolo v5的模型查找UI上参照物对象的坐标位置,只要能正确地在UI上找到参照物对象即可;
验证查找到的对象的位置确认是否真正找到,这里既可以把找到的对象用特定颜色(例如红色)的矩形画出来便于调试,也可以在UI上操作找到的对象后再从UI上查找元素来验证操作后的UI效果是否符合预期,例如,如果参照物本身或旁边有个文本框,可以直接往文本框中输入任意字符串,之后再利用OCR相对参照物的位置选定一个包含这个文本框的小区域,然后识别此区域并从结果中查找是否包含了刚刚输入的字符串,如果包含则证明上一步找到的参照物对象正确;
找到对象后可以用ConfigParser把参照物的(x,y)坐标记录到1)步对应的配置文件中,可以用UI代号、参照物代号作为数据的key的一部分,这里需要保证每个UI和参照物的代号组合唯一,使得对一个项目的多个UI、一个UI上也可以根据多个参照物来适配;如果找不到,则输出错误提示,同时检查当前屏幕的宽高是否低于指定的数值,例如1024*768,在低于时也给出相应的警告,方便检查相关设备的显卡驱动或显示配置是否正常。
在通过动态模板匹配在软件UI上搜索图片时,获得模板图像文件时显示屏幕的宽高、执行图像搜索时当前屏幕的宽高有可能不同,取得两个屏幕的宽或高的比值中大于1的值的最大的,再加上一定冗余作为动态模板匹配过程中按图像原有宽高比例缩放图像的上限,通过按一系列缩放系数不断缩放图像后的匹配结果,有助于提高在不同设备上查找事先准备的模板图片的成功率,提高自动评测过程执行的稳定性和正确性。
进一步地,UI运行过程中软件可能会发生错误,相关错误信息的全面自动采集对于发现、解决软件质量上的问题可能会很有帮助。
UI上的弹窗提示等错误信息可以直接截图保存并与html格式的自动评测日志关联,使得中查看评测日志时能自动展示错误截图。
浏览器控制台输出的错误提示的提取过程包括:
可以通过PyAutoGUI的hotkey()调用浏览器的快捷键(例如Chrome的快捷键ctrl+shift+i)打开控制台;
如果控制台在浏览器底部显示,可以对左下角高度约占40%、宽度约30%的区域截图后识别,如果控制台在浏览器的其他位置,相应调节截图区域保证能覆盖控制台的显示区域即可。然后,再从识别结果中查找Console,找到它对应的矩形区域后再利用截图左上角的坐标计算得到Console对应的矩形的中心点在整个在UI上的坐标,点击这个坐标后可以打开控制台的输出;
再通过OCR识别整个底部区域可以得到底部区域的全部输出文本;
最后可以利用文本的特征过滤掉肯定不是错误信息的内容,保留vue、react等前端代码触发的异常和错误信息。
软件业务功能的导航信息,即软件由哪些模块组成、每个模块下包含有哪些功能点,对于自动绘制软件的功能模块之间的关系图有帮助,通过这个关系图可以直观地在UI上展示所有软件质量问题分别属于系统的哪些部分、哪些模块存在的问题较多等重要质量信息。
由于UI布局上软件模块信息往往通过几种模式化的方式展示,例如典型的在软件UI顶部、左边栏、顶部及左边栏二者的组合区域或者移动APP的底部导航栏来显示系统有哪些模块,可以通过下面的过程得到软件的功能模块关系图:
把软件名称作为根节点可以建立至少三层的系统->模块->功能点的树状图,如果模块通过一级或多级菜单组织,那么有多少级菜单就对应存在多少级的模块,每个模块下还有一层或多层的功能点;
根据UI上模块内容组织上的不同,如果都采用文本平铺的方式,对UI上这些特定区域截图后再识别文本即可得到所有的模块名,如果模块名文本无法识别,可以通过训练新的模型或字体库改善,也可以利用UI上的特征,例如菜单项由图像+文本构成的话,还可以做菜单项所在的区域查找图像,找到后用图像作为模块的标识;如果模块名通过菜单项组织,则先用PyAutoGUI的moveTo()控制鼠标移动到菜单项文本的上方,稍等一定时间在菜单弹出后再截取弹出菜单所在的区域的图像,处理成灰度图后再识别、矫正或找到弹出菜单项中各个菜单的文本及其位置,这里每个菜单文本都是一个模块,点击对应矩形的中心点即可打开对应的功能;
在点击一个模块名之后并且在点击另外一个不同的模块名之前,所有的点击操作中除了确定、保存、取消这些功能之外的都是一个功能点,功能点对应的UI的标题、打开功能点的按钮或菜单项的文本都可以作为功能点名,所有的功能点名都可以作为模块下面一层的功能;
如果一个功能点打开之后,在对应的UI上还能打开一个不是提示类的弹窗,弹窗的标题可以作为该功能点的下一层功能点;
完整的导航树信息可以用json格式组织保存为本地文件或者保存到服务端,也可以通过Graphviz或一些前端库绘制出树状功能导航图。
请参阅图4,图4为本发明实施例提供的一种软件校验装置的结构框图。
本发明实施例提供了一种软件校验装置,包括:
元素确定模块401,用于确定预设的软件的软件UI上要操作的元素;
屏幕子区域获取模块402,用于在软件UI上获取包含元素的屏幕子区域,并获取屏幕子区域的区域信息;
截图数据获取模块403,用于根据区域信息获取屏幕子区域的截图数据;
灰度图转化模块404,用于将截图数据转化为灰度图;
目标坐标获取模块405,用于获取元素在灰度图上的目标坐标;
实际坐标获取模块406,用于根据目标坐标和区域信息,获取元素在软件UI上的实际坐标;
UI显示结果生成模块407,用于根据实际坐标对元素执行预设操作,生成UI显示结果;
校验模块408,用于采用预期UI显示结果校验UI显示结果。
在本发明实施例中,区域信息包括宽度和高度;屏幕子区域获取模块402,包括:
开始点坐标选择子模块,用于在软件UI上确定参照物,并在参照物上选择开始点坐标,并将开始点坐标保存为位置偏移量;
相对方向确定子模块,用于确定元素与参照物的相对方向;
屏幕子区域截取子模块,用于以开始点坐标为角点,基于相对方向,在软件UI上截取包含元素的屏幕子区域,并获取屏幕子区域的宽度和高度。
在本发明实施例中,目标坐标获取模块405,包括:
文字识别子模块,用于当参照物为文字时,通过文字识别识别灰度图中的文本,并获取各个文本在灰度图中的文本坐标;
目标文本获取子模块,用于获取元素对应的目标文本;
第一目标坐标确定子模块,用于在文本中匹配目标文本,得到元素对应的目标坐标。
在本发明实施例中,目标坐标获取模块405,包括:
待搜索图像获取子模块,用于当参照物的类型为图像时,获取元素对应的待搜索图像;
图像内容边缘获取子模块,用于获取待搜索图像的图像内容边缘;
图像识别子模块,用于采用图像识别识别灰度图上的图像;
缩放图像获取子模块,用于采用多个预设缩放系数缩放灰度图上的图像,得到缩放图像;
缩放图像内容边缘获取子模块,用于获取缩放图像的缩放图像内容边缘;
目标图像确定子模块,用于在缩放图像的缩放图像内容边缘中匹配图像内容边缘,确定元素对应的目标图像;
相对位置关系获取子模块,用于获取目标图像与参照物的相对位置关系;
第二目标坐标确定子模块,用于根据相对位置关系和开始点坐标,确定元素在灰度图上的目标坐标。
在本发明实施例中,目标坐标获取模块405,还包括:
相似度计算子模块,用于当在文本中匹配不到目标文本时,计算目标文本与灰度图上的各个文本之间的相似度,并确定最大相似度;
第一判断子模块,用于判断最大相似度是否大于预设相似度阈值;
第三目标坐标确定子模块,用于若是,将最大相似度对应的文本的文本坐标确定为元素的目标坐标。
在本发明实施例中,目标坐标获取模块405,还包括:
置信度和上下文信息获取子模块,用于当最大相似度不大于预设相似度阈值时,获取各个文本的置信度和上下文信息;
校正子模块,用于根据置信度和上下文信息校正文本,得到校正文本;
校正相似度计算子模块,用于计算相似文本与目标文本之间的校正相似度,并确定最大校正相似度;
第四目标坐标确定子模块,用于当最大校正相似度大于预设相似度阈值时,将最大校正相似度对应的校正文本的文本坐标确定为元素的目标坐标。
在本发明实施例中,预设操作包括增加、删除、修改和查询中的至少一种。
本发明实施例还提供了一种电子设备,设备包括处理器以及存储器:
存储器用于存储程序代码,并将程序代码传输给处理器;
处理器用于根据程序代码中的指令执行本发明实施例的软件UI校验方法。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质用于存储程序代码,程序代码用于执行本发明实施例的软件UI校验方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种软件校验方法,其特征在于,应用于客户端;所述方法包括:
确定预设的软件的软件UI上要操作的元素;
在所述软件UI上获取包含所述元素的屏幕子区域,并获取所述屏幕子区域的区域信息;
根据所述区域信息获取所述屏幕子区域的截图数据;
将所述截图数据转化为灰度图;
获取所述元素在所述灰度图上的目标坐标;
根据所述目标坐标和所述区域信息,获取所述元素在所述软件UI上的实际坐标;
根据所述实际坐标对所述元素执行预设操作,生成UI显示结果;
采用预期UI显示结果校验所述UI显示结果。
2.根据权利要求1所述的方法,其特征在于,所述区域信息包括宽度和高度;所述在所述软件UI上获取包含所述元素的屏幕子区域,并获取所述屏幕子区域的区域信息的步骤,包括:
在所述软件UI上确定参照物,并在所述参照物上选择开始点坐标,并将所述开始点坐标保存为位置偏移量;
确定所述元素与所述参照物的相对方向;
以所述开始点坐标为角点,基于所述相对方向,在所述软件UI上截取包含所述元素的屏幕子区域,并获取所述屏幕子区域的宽度和高度。
3.根据权利要求2所述的方法,其特征在于,所述获取所述元素在所述灰度图上的目标坐标的步骤,包括:
当所述参照物为文字时,通过文字识别识别所述灰度图中的文本,并获取各个文本在所述灰度图中的文本坐标;
获取所述元素对应的目标文本;
在所述文本中匹配所述目标文本,得到所述元素对应的目标坐标。
4.根据权利要求2所述的方法,其特征在于,所述获取所述元素在所述灰度图上的目标坐标的步骤,包括:
当所述参照物的类型为图像时,获取所述元素对应的待搜索图像;
获取所述待搜索图像的图像内容边缘;
采用图像识别识别所述灰度图上的图像;
采用多个预设缩放系数缩放所述灰度图上的图像,得到缩放图像;
获取所述缩放图像的缩放图像内容边缘;
在所述缩放图像的缩放图像内容边缘中匹配所述图像内容边缘,确定所述元素对应的目标图像;
获取所述目标图像与所述参照物的相对位置关系;
根据所述相对位置关系和所述开始点坐标,确定所述元素在所述灰度图上的目标坐标。
5.根据权利要求3所述的方法,其特征在于,还包括:
当在所述文本中匹配不到所述目标文本时,计算所述目标文本与所述灰度图上的各个文本之间的相似度,并确定最大相似度;
判断所述最大相似度是否大于预设相似度阈值;
若是,将所述最大相似度对应的文本的文本坐标确定为所述元素的目标坐标。
6.根据权利要求5所述的方法,其特征在于,还包括:
当所述最大相似度不大于所述预设相似度阈值时,获取各个所述文本的置信度和上下文信息;
根据所述置信度和所述上下文信息校正所述文本,得到校正文本;
计算所述相似文本与所述目标文本之间的校正相似度,并确定最大校正相似度;
当所述最大校正相似度大于所述预设相似度阈值时,将所述最大校正相似度对应的校正文本的文本坐标确定为所述元素的目标坐标。
7.根据权利要求1所述的方法,其特征在于,所述预设操作包括增加、删除、修改和查询中的至少一种。
8.一种软件校验装置,其特征在于,包括:
元素确定模块,用于确定预设的软件的软件UI上要操作的元素;
屏幕子区域获取模块,用于在所述软件UI上获取包含所述元素的屏幕子区域,并获取所述屏幕子区域的区域信息;
截图数据获取模块,用于根据所述区域信息获取所述屏幕子区域的截图数据;
灰度图转化模块,用于将所述截图数据转化为灰度图;
目标坐标获取模块,用于获取所述元素在所述灰度图上的目标坐标;
实际坐标获取模块,用于根据所述目标坐标和所述区域信息,获取所述元素在所述软件UI上的实际坐标;
UI显示结果生成模块,用于根据所述实际坐标对所述元素执行预设操作,生成UI显示结果;
校验模块,用于采用预期UI显示结果校验所述UI显示结果。
9.一种电子设备,其特征在于,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求1-7任一项所述的软件UI校验方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行权利要求1-7任一项所述的软件UI校验方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111397685.4A CN114116474A (zh) | 2021-11-23 | 2021-11-23 | 一种软件校验方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111397685.4A CN114116474A (zh) | 2021-11-23 | 2021-11-23 | 一种软件校验方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114116474A true CN114116474A (zh) | 2022-03-01 |
Family
ID=80440533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111397685.4A Pending CN114116474A (zh) | 2021-11-23 | 2021-11-23 | 一种软件校验方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114116474A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115830602A (zh) * | 2023-02-24 | 2023-03-21 | 天翼云科技有限公司 | 元素定位方法、装置、电子设备及存储介质 |
-
2021
- 2021-11-23 CN CN202111397685.4A patent/CN114116474A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115830602A (zh) * | 2023-02-24 | 2023-03-21 | 天翼云科技有限公司 | 元素定位方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102220174B1 (ko) | 머신러닝 학습 데이터 증강장치 및 증강방법 | |
US20220075634A1 (en) | Detection of user interface controls via invariance guided sub-control learning | |
CN110275834B (zh) | 用户界面自动化测试系统及方法 | |
US9424167B2 (en) | Automated testing of an application system | |
US11513670B2 (en) | Learning user interface controls via incremental data synthesis | |
CN110837403A (zh) | 机器人过程自动化 | |
RU2641225C2 (ru) | Способ выявления необходимости обучения эталона при верификации распознанного текста | |
US20220415008A1 (en) | Image box filtering for optical character recognition | |
CN101292262A (zh) | 认知控制框架中的假设的结构性内容过滤 | |
US11348331B2 (en) | Information processing apparatus and non-transitory computer readable medium | |
CN113222913A (zh) | 一种电路板缺陷检测定位方法、装置和存储介质 | |
CN114627482A (zh) | 基于图像处理与文字识别实现表格数字化处理方法及系统 | |
JP3795238B2 (ja) | 文書画像処理装置及び文書画像処理方法 | |
CN114116474A (zh) | 一种软件校验方法、装置、电子设备及存储介质 | |
CN113127349B (zh) | 软件测试方法和系统 | |
Chen et al. | UI layers merger: merging UI layers via visual learning and boundary prior | |
CN112084103B (zh) | 界面测试方法、装置、设备和介质 | |
CN117217993A (zh) | 全覆盖截图方法、系统、电子设备和存储介质 | |
CN112446850B (zh) | 适配测试方法、装置及电子设备 | |
CN115830599A (zh) | 工业字符识别方法、模型训练方法、装置、设备和介质 | |
KR102440919B1 (ko) | 슬라이드 스캔 데이터의 자동 레이블링 방법, 장치 및 프로그램 | |
CN111530083B (zh) | 一种界面检查的方法及装置 | |
CN109409370B (zh) | 一种远程桌面字符识别方法和装置 | |
JP4357226B2 (ja) | 帳票定義装置、帳票定義方法及び帳票定義プログラム | |
CN113688835A (zh) | 一种基于物体检测与ocr的系统及应用故障弹框图片信息提取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |