CN110309073B - 移动应用程序用户界面错误自动化检测方法、系统及终端 - Google Patents

移动应用程序用户界面错误自动化检测方法、系统及终端 Download PDF

Info

Publication number
CN110309073B
CN110309073B CN201910575260.4A CN201910575260A CN110309073B CN 110309073 B CN110309073 B CN 110309073B CN 201910575260 A CN201910575260 A CN 201910575260A CN 110309073 B CN110309073 B CN 110309073B
Authority
CN
China
Prior art keywords
control
error
text
classification model
controls
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.)
Active
Application number
CN201910575260.4A
Other languages
English (en)
Other versions
CN110309073A (zh
Inventor
赵文华
戚正伟
夏鸣远
丁贞锴
姚朋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN201910575260.4A priority Critical patent/CN110309073B/zh
Publication of CN110309073A publication Critical patent/CN110309073A/zh
Application granted granted Critical
Publication of CN110309073B publication Critical patent/CN110309073B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明提供了一种移动应用程序用户界面错误自动化检测方法,获取界面截图中控件之间的层级关系以及每个控件节点信息,形成原始数据集;建立单个控件错误分类模型,并利用单个控件错误分类模型对文本类控件以及图像类控件进行错误检测;描述控件对之间的相对位置关系、共生关系以及相互依存关系,生成控件对之间的关系断言表;利用模型以及断言表,对新采集的界面截图进行控件错误检测。同时提供了一种检测系统及终端。本发明有效定位到APP存在的UI控件错误,并根据检测结果不断优化检测模型,提高错误检测效率,极大的降低人工人成本,能广泛应用于移动应用程序UI测试中,为移动应用程序的开发、测试提供高效可用的自动UI错误检测方法。

Description

移动应用程序用户界面错误自动化检测方法、系统及终端
技术领域
本发明涉及移动端软件测试技术领域,具体地,涉及一种移动应用程序用户界面(UI)错误自动化检测方法、系统及终端。
背景技术
用户界面作为APP与用户交互的第一步,对用户体验影响至关重要。如果APP 的UI内容显示出现错误,或者UI布局存在歧义,都有可能导致用户流失。因此,对APP测试中检查发现UI错误,是APP开发过程中的重要部分。现有移动应用程序(APP)测试过程中会产生大量截图,普遍采用人工审核截图的方式发现用户界面排版、错位、未加载等错误。但是这种方式人工成本高、耗时长、效率低并且容易忽略一些细小的错误。
为了降低APP测试成本,UI自动化测试技术已经在业界使用。例如,Google 官方提供的Android Monkey,就是一种完全随机的UI测试方法。自动化测试技术解放了人工输入的步骤,但是依然需要人工审查APP测试过程中分步骤的截图来发现界面错误。自动化测试时会产生大量的截图(每分钟10~40张),人工审核UI 错误效率低并且可能会忽略一些不明星的错误,重复的劳动也会造成疲劳,导致准确率进一步下降。APP自动化UI错误检测方面的研究工作较少,研究领域存在采用图像识别的方法进行检测或者通过检测UI设计模型与最终实现效果之间的差异来检测UI错误。然而研究工作目前只适用于一些界面比较简单的APP或者需要程序员/设计师提供设计模型,并未达到实用的阶段。
目前没有发现同本发明类似技术的说明或报道,也尚未收集到国内外类似的资料。
发明内容
本发明针对现有技术中存在的UI测试技术中人工审查准确率低、测试成本高、测试的高随机性、测试效率不高以及UI错误检测方法不多等不足,提供了一种移动应用程序图形界面错误自动化检测方法、系统及终端。该方法、系统及终端首先在APP 测试过程中,自动获取运行时截图及对应的控件布局和属性信息;然后利用机器学习的方法,训练出分类模型,用模型标注出截图中出现的UI错误。
本发明是通过以下技术方案实现的。
根据本发明的一个方面,提供了一种移动应用程序用户界面错误自动化检测方法,包括如下步骤:
S1,采集应用程序运行过程中的界面截图以及相对应的控件布局结构文件,获取界面截图中控件之间的层级关系以及每个控件节点信息,形成原始数据集;
S2,从S1中获得的原始数据集中提取出控件节点信息,建立单个控件错误分类模型,并利用单个控件错误分类模型对控件进行错误检测;
S3,从S1中获得的原始数据集中提取控件之间的层级关系以及对应控件节点信息,描述控件对之间层级关系的关系断言表;
S4,利用S2和S3获得的单个控件错误分类模型以及控件对之间的关系断言表,对新采集的界面截图进行控件错误检测。
优选地,所述S1中,以.xml文件的形式存储界面截图中控件之间的层级关系以及每个控件节点信息。
优选地,所述控件包括:文本类控件以及图像类控件。
优选地,所述控件之间的层级关系包括:相对位置关系、共生关系以及相互依存关系。
优选地,所述控件节点信息包括:package属性值,表示控件所在主程序包名;class 属性值,表示这个控件的类型;bounds属性值,表示控件在截图上的具体位置;resource-id表示控件的标识身份;text属性,表示控件在界面上显示的文本信息等。
优选地,所述S2针对文本类控件以及图像类控件,包括如下子步骤:
-特征提取:对于文本类控件,提取布局结构文件中文本相关的控件节点,并获取控件节点的所有属性信息作为文本特征;对于图像类控件,将图像中的主要色彩作为图像类控件错误分类的主要特征,选取主要色彩相对应的R、G、B属性作为主要的图像特征;
-特征表示:对提取到的文本特征及主要的图像特征进行归一化处理;
-模型训练:采用决策树分类算法对文本特征及主要的图像特征进行分类,生成单个控件错误分类模型;通过观察决策树,得到特征在分类过程中的权重,该权重用于对新提取的特征在单个控件错误分类模型中收获的权重进行验证以及对参数进行优化;
-模型验证及参数调化:为反复迭代的过程;对生成的单个控件错误分类模型进行训练、验证及参数优化;
-模型持久化:将训练所得的单个控件错误分类模型进行持久化,并存储;
-错误检测:对应用程序新生成的界面截图进行单个控件错误检测,通过控件布局结构文件对界面截图进行解析,生成相应的文本控件数据;运用训练好的错误分类模型对文本控件数据进行分类,并生成控件分类结果,将得到的分类结果与实际结果进行对比,获得检测结果。
优选地,所述特征提取中,文本特征至少包括:text、content-desc、bounds及resource-id属性信息;其中,对text属性信息进一步提取,获取null出现的次数、未解析的Unicode码、未转义的html字符数量以及因为编码问题导致的乱码数量。
优选地,所述特征提取中,选取七种主要色彩相对应的R、G、B属性作为图像的主要特征,其中七种主要色彩包括:red红、yellow黄、blue蓝、green绿、brown棕、black 黑和white白。
优选地,所述特征表示中,归一化处理是指,对所有的特征均采用0到1的值进行表示,最终得到一个所有特征值均在0到1区间的二维矩阵。
优选地,所述模型验证及参数调化中,将原始数据集以4:1的比例划分为训练集和测试集对模型进行训练及测试;在进行模型验证时,采用十折交叉验证方法在测试集对产生的模型进行验证;在参数调化时,设置指定错误类别的权重,使得样本较少的错误类别获得更高的权重;调整不同应用程序的最大叶子节点数量;利用决策树的最大深度最大特征数对决策树进行剪枝,并进行反复迭代优化。
优选地,所述S3中,对原始数据集中的正确部分采用数理统计方法,提取控件对的所有属性信息(即控件之间的层级关系以及每个控件节点信息),描述控件对之间的相对位置关系、共生关系以及相互依存关系
优选地,所述原始数据集中的正确部分是利用S2中得到的单个控件错误分类模型的检测结果划分得到的。
优选地,所述S4,包括如下子步骤:
S41,获取需要检测的界面截图以及对应的控件布局结构文件;
S42,对输入的界面截图进行控件布局结构解析,提取界面截图中的相关文本类控件、图像类控件及其控件对,并利用前期训练的单个控件错误分类模型检测控件错误情况,并利用关系断言表检测错误控件对;
S43,输出单个控件错误分类模型输出的单个控件错误情况以及断言表检测到的错误控件对,在界面截图上高亮标注界面错误涉及的控件,并且会产生报告,记录所有错误的文本或者图像相关的控件以及控件对的详细属性信息。
优选地,所述S42中,断言表对控件对进行检测,包括向相对位置关系断言表、共生关系断言表以及相互依存关系断言表请求查询,对于在断言表中的控件,查询输入的界面截图中包含的控件对是否违反断言表中的断言。
优选地,所述S4,还包括如下子步骤:
S44,确认标注结果,并进行调优,反馈训练后单个控件错误分类模型产生的误报情况;
S45,基于反馈的误报情况,在误报率超过设定的正确阈值时将误报数据加入到原始数据集的训练集中,然后重新训练单个控件错误分类模型直到误报率下降。
根据本发明的第二个方面,提供了一种移动应用程序用户界面错误自动化检测系统,包括如下模块:
-数据采集模块,采集应用程序运行过程中的界面截图以及相对应的控件布局结构文件,获取界面截图中控件之间的层级关系以及每个控件节点信息,形成原始数据集;
-错误分类模型建立模块,利用控件节点信息,建立单个控件错误分类模型,并利用单个控件错误分类模型对文本类控件以及图像类控件进行错误检测;
-控件对关系断言表生成模块,根据控件之间的层级关系以及控件节点信息,描述控件对之间的相对位置关系、共生关系以及相互依存关系,生成控件对之间的关系断言表;
-错误预测模块,利用单个控件错误分类模型以及控件对之间的关系断言表,对新采集的界面截图进行控件错误检测。
优选地,所述错误预测模块,包括如下单元:
-信息获取单元,获取需要检测的界面截图以及对应的控件布局结构文件;
-错误检测单元,对输入的界面截图进行控件布局结构解析,取界面截图中的相关文本类控件、图像类控件及其控件对,并利用前期训练的单个控件错误分类模型检测控件错误情况,并利用关系断言表检测错误控件对;
-错误输出单元,输出单个控件错误分类模型输出的单个控件错误情况以及断言表检测到的错误控件对,在界面截图上高亮标注界面错误涉及的控件,并且会产生报告,记录所有错误的文本或者图像相关的控件以及控件对的详细属性信息。
优选地,所述错误预测模块,还包括如下单元:
-错误优化及反馈单元,确认标注结果,并进行调优,反馈训练后单个控件错误分类模型产生的误报情况;
-模型优化单元,基于反馈的误报情况,在误报率超过设定的正确阈值时将误报数据加入到原始数据集的训练集中,然后重新训练单个控件错误分类模型直到误报率下降。
根据本发明的第三个方面,提供了一种终端,包括存储器、处理器及存储在存储器上并能够在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时能够用于执行上述任一项所述的方法。
根据本发明的第四个方面,提供了另一种终端,包括存储器、处理器及存储在存储器上并可通过处理器运行上述任一项所述的系统。
与现有技术相比,本发明具有如下的有益效果:
本发明所提供的移动应用程序用户界面错误自动化检测方法、系统及终端:
1)通过建立文本以及图片控件的错误分类模型,识别单控件错误,包括控件大小/位置异常、文本乱码、文本存在未转义字符、文本溢出控件边缘、图像未显示、图像溢出等异常情况;
2)通过建立控件对之间的关系断言表,识别多控件之间的错误,包括控件对重叠、控件对未同时显示、控件对显示层级错误等异常情况。本发明能够自动标注 APP运行过程中界面上单控件和多控件间的UI错误,降低测试过程中低效高成本的人工界面错误审查,能够广泛应用于手机终端、智能车载系统、智能终端、智能家居等各类移动设备的应用程序测试自动化。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明所提供的一种移动应用程序用户界面错误自动化检测方法流程图;
图2为本发明实施例中所提供的父子控件相对位置关系图;
图3为本发明实施例中所提供的兄弟控件相对位置关系图。
具体实施方式
下面对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
本发明实施例提供了一种移动应用程序用户界面错误自动化检测方法,该方法解决了现有UI测试技术中人工审查准确率低、测试成本高、测试的高随机性、测试效率不高以及UI错误检测方法不多等局限。
如图1所示,本发明实施例所提供的方法,主要包括以下几个步骤:
第一,数据采集:采集应用程序运行过程中的界面截图以及相对应的控件布局结构文件,获取界面截图中控件之间的层级关系以及每个控件节点信息,形成原始数据集;
在现有的自动化测试过程中,将APP在运行过程中的界面截图以及相对应的控件布局结构文件存储下来,以.xml文件的形式存储截图中控件间的层级关系以及每个控件节点的详细信息。
第二,建立单个控件错误分类模型:利用控件节点信息,建立单个控件错误分类模型,并利用单个控件错误分类模型对文本类控件以及图像类控件进行错误检测;
主要针对的两类控件错误的检测,文本类控件以及图像类控件。步骤如下:
特征提取:对于文本类控件,提取控件布局结构文件中的文本相关的控件节点,并获取节点的所有属性信息,包括text、content-desc、bounds及resource-id等属性信息。
content-desc的属性表示的是控件的文本内容,当用户点击控件时,android系统会自动朗读控件的content-desc的内容;该属性主要用于帮助视力有障碍的人了解控件的内容,在大部分情况下,这个属性值都是空。
其中,对text属性进一步提取,获取null出现的次数、未解析的Unicode码、未转义的html字符数量以及因为编码问题导致的乱码数量;对于图像类控件,发现错误的控件多显示为空白状态或者其他浅色的背景图片,所以将图像中的主要色彩作为图像类控件错误分类的主要特征,选取了七种主要色彩相对应的R、G、B属性作为图像的主要特征,单个控件特征提取详情如表1所示。
表1
Figure GDA0003089024970000061
Figure GDA0003089024970000071
特征表示:对提取到的文本及图像特征进行归一化处理,所有的特征用0到1的值进行表示。比如控件的resource-id属性值都是以字符串的形式表示出来的,通过归一化算法将其表示成数值形式,对于属性值为布尔型的特征值用1或0表示,最终得到一个所有特征值都在0到1区间的二维矩阵。
模型训练:采用决策树分类算法对文本及图像特征进行分类,通过观察决策树,能直观的观测到某个特征在分类过程中的权重,便于对新提取的特征在模型中收获的权重进行验证以及对参数进行调整。
模型验证及参数调化:这是一个需要反复迭代的过程。将原始数据集以4:1的比例划分为训练集和测试集,在进行模型验证时采用十折交叉验证方法在测试集对产生的模型进行验证;在参数的优化上,主要包括,设置类别的权重,由于训练集中正确控件多,错误的控件少,所以需要计算指定类别的权重,使得样本较少的样本获得更高的权重;最大叶子节点数,为了防止模型产生过拟合,对于不同类别的APP,需要相应的调整最大叶节点数量;决策树的最大深度以及最大特征数等对决策树进行剪枝,并进行反复迭代优化。
模型持久化:在经过不断调整模型的参数后,需要将训练所得的模型进行持久化,存储到文件中。
错误检测:对APP新生成的截图进行单个控件错误检测,通过控件布局结构文件对截图进行解析,生成相应的文本控件数据。运用训练好的错误分类模型对控件数据进行分类,并生成控件分类结果,将得到的分类结果与实际结果进行对比,获得检测结果。
第三,利用控件之间的相对位置关系检测UI错误:根据控件之间的层级关系以及控件节点信息,描述控件对之间的相对位置关系、共生关系以及相互依存关系,生成控件对之间的关系断言表;
对第一部分中的原始数据集中的正确部分采用数理统计方法,提取控件对的所有属性信息,描述控件之间的相对位置关系、共生关系以及相互依存关系。
控件间的相对位置关系有:如图2所示,父子控件相对位置关系,子控件W1是否在父控件W2所在边界内的最顶部、最左边、最底部或者最右边;如图3所示,兄弟控件W3、W4相对位置关系有上、左、下、右。
共生关系:假设在APP中存在这样两个控件W1,W2。若W1,W2在APP运行期间在屏幕内要么同时存在,要么同时不存在,则称这两个控件之间具有共生关系。
相互依存关系:假设在APP中存在这样两个控件W1,W2,若W1只有在W2存在的前提下才会存在,则称W1依存于W2。若W1在没有W2存在的情况下依然可以单独存在,则称W1不依存于W2。
对于存在父子关系以及兄弟关系的控件对<W1,W2>,分别计算:(1)W1,W2同时出现的次数,用W1∩W2表示;(2)控件W2没有出现而控件W1单独出现的次数,用
Figure GDA0003089024970000081
表示;(3)控件W1没有出现而控件W2单独出现的次数,用
Figure GDA0003089024970000082
表示。利用Wilson Score排序算法计算两个控件之间的共生关系以及它们之间的相互依存关系:
Figure GDA0003089024970000083
利用上述公式判断控件对的共生关系:u=W1∩W2,
Figure GDA0003089024970000084
Figure GDA0003089024970000085
p表示控件W1,W2一起出现的概率,S表示判断控件W1,W2之间共生关系的最终得分,生成控件对共生关系断言表,利用关系断言表对截图中的控件对进行检测。
判断控件对的相互依存关系:在上述的公式中:u=W1∩W2,
Figure GDA0003089024970000086
p代表W2出现,W1才能出现的概率。S表示控件W1对于W2的依赖关系的最终得分,通过经验地设置S的最小阈值,生成W1对W2的依赖关系断言表。同理可以生成W2对 W1的依赖关系断言表。利用获得的控件对相对位置关系断言表、共生关系断言表、相互依存关系断言表,对新截获的截图中有问题的控件对进行检测。
第四,检测UI错误:利用单个控件错误分类模型以及控件对之间的关系断言表,对新采集的界面截图进行控件错误检测;
对新采集的截图进行处理,使用单个控件错误分类模型以及二元关系控件对产生的断言表来标注截图文件中存在的UI错误,主要流程包括:
上传需要检测的截图以及对应的控件布局结构文件;
对输入的截图进行控件布局结构解析,提取截图中的相关文本、图像控件以及控件对 (父子、兄弟控件对),并用前期训练的错误分类模型对单控件进行检测,断言表对控件对进行检测(包括向相对位置关系断言表、共生关系断言表以及相互依存关系断言表请求查询,对于在断言表中的控件会查询输入截图中包含的控件对是否违反断言表中的断言)。
输出单控件决策模型输出的单空间错误情况以及断言表检测到的错误空间对,在截图上高亮标准界面错误涉及的控件,并且会产生报告,记录所有错误的文本或者图像相关的控件以及控件对的详细属性信息。
查看报告,并人工确认标注结果。在预测初期,预测结果有一定概率会产生偏差,尤其是对于迭代更新比较快的APP,需要人工调优。同时,反馈训练后单个控件错误分类模型产生的误报情况。
基于反馈的误报情况,在误报率超过一定正确阈值时将误报数据加入到原始训练数据集,然后重新训练错误分类模型直到误报率下降。
其中,对于阈值的设定:针对文本类控件,误报率阈 值可以设定为5%;针对图像类控件,由于一些正确图像与错误图像的特征值相似,存在可能误将其判定为错误图像,故而图像类误报率阈值相应提高至10%。
本发明实施例同时提供了一种移动应用程序用户界面错误自动化检测系统,包括如下模块:
-数据采集模块,采集应用程序运行过程中的界面截图以及相对应的控件布局结构文件,获取界面截图中控件之间的层级关系以及每个控件节点信息,形成原始数据集;
-错误分类模型建立模块,利用控件节点信息,建立单个控件错误分类模型,并利用单个控件错误分类模型对文本类控件以及图像类控件进行错误检测;
-控件对关系断言表生成模块,根据控件之间的层级关系以及控件节点信息,描述控件对之间的相对位置关系、共生关系以及相互依存关系,生成控件对之间的关系断言表;
-错误预测模块,利用单个控件错误分类模型以及控件对之间的关系断言表,对新采集的界面截图进行控件错误检测。
所述错误预测模块,包括如下单元:
-信息获取单元,获取需要检测的界面截图以及对应的控件布局结构文件;
-错误检测单元,对输入的界面截图进行控件布局结构解析,取界面截图中的相关文本类控件、图像类控件及其控件对,并利用前期训练的单个控件错误分类模型检测控件错误情况,并利用关系断言表检测错误控件对;
-错误输出单元,输出单个控件错误分类模型输出的单个控件错误情况以及断言表检测到的错误控件对,在界面截图上高亮标注界面错误涉及的控件,并且会产生报告,记录所有错误的文本或者图像相关的控件以及控件对的详细属性信息。
所述错误预测模块,还包括如下单元:
-错误优化及反馈单元,确认标注结果,并进行调优,反馈训练后单个控件错误分类模型产生的误报情况;
-模型优化单元,基于反馈的误报情况,在误报率超过设定的正确阈值时将误报数据加入到原始数据集的训练集中,然后重新训练单个控件错误分类模型直到误报率下降。
基于上述移动应用程序用户界面错误自动化检测方法及系统,本发明实施例同时提供了一种终端,包括存储器、处理器及存储在存储器上并能够在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时能够用于执行上述任一项所述的方法。
基于上述移动应用程序用户界面错误自动化检测方法及系统,本发明实施例同时提供了另一种终端,包括存储器、处理器及存储在存储器上并可通过处理器运行上述任一项所述的系统。
本发明实施例所提供的基于上述移动应用程序用户界面错误自动化检测方法、系统及终端,能够有效定位到APP存在的UI控件错误,并根据检测结果不断优化检测模型,提高错误检测效率,极大的降低人工人成本,能广泛应用于移动应用程序UI测试中,为移动应用程序的开发、测试提供高效可用的自动UI错误检测方法。
需要说明的是,本发明提供的所述方法中的步骤,可以利用所述系统中对应的模块、装置、单元等予以实现,本领域技术人员可以参照所述系统的技术方案实现所述方法的步骤流程,即,所述系统中的实施例可理解为实现所述方法的优选例,在此不予赘述。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个模块、装置、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。

Claims (8)

1.一种移动应用程序用户界面错误自动化检测方法,其特征在于,包括如下步骤:
S1,采集应用程序运行过程中的界面截图以及相对应的控件布局结构文件,获取界面截图中控件之间的层级关系以及每个控件节点信息,形成原始数据集;
S2,从S1中获得的原始数据集中提取出控件节点信息,建立单个控件错误分类模型,并利用单个控件错误分类模型对控件进行错误检测;
所述S2针对文本类控件以及图像类控件,包括如下子步骤:
-特征提取:对于文本类控件,提取布局结构文件中文本相关的控件节点,并获取控件节点的所有属性信息作为文本特征;对于图像类控件,将图像中的七种主要色彩作为图像类控件错误分类的主要特征,选取主要色彩相对应的R、G、B属性作为主要的图像特征;
-特征表示:对提取到的文本特征及主要的图像特征进行归一化处理;
-模型训练:采用决策树分类算法对文本特征及主要的图像特征进行分类,生成单个控件错误分类模型;通过观察决策树,得到特征在分类过程中的权重,该权重用于对新提取的特征在单个控件错误分类模型中收获的权重进行验证以及对参数进行优化;
-模型验证及参数调化:为反复迭代的过程;对生成的单个控件错误分类模型进行训练、验证及参数优化;
-模型持久化:将训练所得的单个控件错误分类模型进行持久化,并存储;
-错误检测:对应用程序新生成的界面截图进行单个控件错误检测,通过控件布局结构文件对界面截图进行解析,生成相应的文本控件数据;运用训练好的错误分类模型对文本控件数据进行分类,并生成控件分类结果,将得到的分类结果与实际结果进行对比,获得检测结果;
S3,从S1中获得的原始数据集中提取控件之间的层级关系以及对应控件节点信息,描述控件对之间层级关系的关系断言表;
S4,利用S2和S3获得的单个控件错误分类模型以及控件对之间的关系断言表,对新采集的界面截图进行控件错误检测。
2.根据权利要求1所述的移动应用程序用户界面错误自动化检测方法,其特征在于,所述S1中,以.xml文件的形式存储界面截图中控件之间的层级关系以及每个控件节点信息;其中:
所述控件包括:文本类控件以及图像类控件;
所述控件之间的层级关系包括:相对位置关系、共生关系以及相互依存关系;
所述控件节点信息包括:package属性值,表示控件所在主程序包名;class属性值,表示控件的类型;bounds属性值,表示控件在截图上的具体位置;resource-id,表示控件的标识身份;text属性,表示控件在界面上显示的文本信息。
3.根据权利要求1所述的移动应用程序用户界面错误自动化检测方法,其特征在于,所述S2,还包括如下任意一项或任意多项:
-所述特征提取中,文本特征至少包括:text、content-desc、bounds及resource-id属性信息;其中,对text属性信息进一步提取,获取null出现的次数、未解析的Unicode码、未转义的html字符数量以及因为编码问题导致的乱码数量;
-所述特征提取中,选取七种主要色彩相对应的R、G、B属性作为图像的主要特征;
-所述特征表示中,归一化处理是指,对所有的特征均采用0到1的值进行表示,最终得到一个所有特征值均在0到1区间的二维矩阵;
-所述模型验证及参数调化中,将原始数据集以4:1的比例划分为训练集和测试集对模型进行训练及测试;在进行模型验证时,采用十折交叉验证方法在测试集对产生的模型进行验证;在参数调化时,设置指定错误类别的权重,使得样本较少的错误类别获得更高的权重;调整不同应用程序的最大叶子节点数量;利用决策树的最大深度最大特征数对决策树进行剪枝,并进行反复迭代优化。
4.根据权利要求1所述的移动应用程序用户界面错误自动化检测方法,其特征在于,所述S3中,对原始数据集中的正确部分采用数理统计方法,提取控件对的所有属性信息,描述控件对之间的相对位置关系、共生关系以及相互依存关系。
5.根据权利要求1所述的移动应用程序用户界面错误自动化检测方法,其特征在于,所述S4,包括如下子步骤:
S41,获取需要检测的界面截图以及对应的控件布局结构文件;
S42,对输入的界面截图进行控件布局结构解析,提取界面截图中的相关文本类控件、图像类控件及其控件对,并利用前期训练的单个控件错误分类模型检测控件错误情况,并利用关系断言表检测错误控件对;
S43,输出单个控件错误分类模型输出的单个控件错误情况以及断言表检测到的错误控件对,在界面截图上高亮标注界面错误涉及的控件,并且会产生报告,记录所有错误的文本或者图像相关的控件以及控件对的详细属性信息。
6.根据权利要求5所述的移动应用程序用户界面错误自动化检测方法,其特征在于,所述S4,还包括如下任意一项或任意多项:
-所述S42中,断言表对控件对进行检测,包括向相对位置关系断言表、共生关系断言表以及相互依存关系断言表请求查询,对于在断言表中的控件,查询输入的界面截图中包含的控件对是否违反断言表中的断言;
-还包括如下子步骤:
S44,确认标注结果,并进行调优,反馈训练后单个控件错误分类模型产生的误报情况;
S45,基于反馈的误报情况,在误报率超过设定的正确阈值时将误报数据加入到原始数据集的训练集中,然后重新训练单个控件错误分类模型直到误报率下降。
7.一种移动应用程序用户界面错误自动化检测系统,其特征在于,包括如下模块:
-数据采集模块,采集应用程序运行过程中的界面截图以及相对应的控件布局结构文件,获取界面截图中控件之间的层级关系以及每个控件节点信息,形成原始数据集;
-错误分类模型建立模块,利用控件节点信息,建立单个控件错误分类模型,并利用单个控件错误分类模型对文本类控件以及图像类控件进行错误检测;
-控件对关系断言表生成模块,根据控件之间的层级关系以及控件节点信息,描述控件对之间的相对位置关系、共生关系以及相互依存关系,生成控件对之间的关系断言表;
-错误预测模块,利用单个控件错误分类模型以及控件对之间的关系断言表,对新采集的界面截图进行控件错误检测;
所述错误预测模块,包括如下单元:
-信息获取单元,获取需要检测的界面截图以及对应的控件布局结构文件;
-错误检测单元,对输入的界面截图进行控件布局结构解析,取界面截图中的相关文本类控件、图像类控件及其控件对,并利用前期训练的单个控件错误分类模型检测控件错误情况,并利用关系断言表检测错误控件对;
-错误输出单元,输出单个控件错误分类模型输出的单个控件错误情况以及断言表检测到的错误控件对,在界面截图上高亮标注界面错误涉及的控件,并且会产生报告,记录所有错误的文本或者图像相关的控件以及控件对的详细属性信息;
-错误优化及反馈单元,确认标注结果,并进行调优,反馈训练后单个控件错误分类模型产生的误报情况;
-模型优化单元,基于反馈的误报情况,在误报率超过设定的正确阈值时将误报数据加入到原始数据集的训练集中,然后重新训练单个控件错误分类模型直到误报率下降。
8.一种终端,包括存储器、处理器及存储在存储器上并能够在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时能够用于执行上述任一项所述的方法。
CN201910575260.4A 2019-06-28 2019-06-28 移动应用程序用户界面错误自动化检测方法、系统及终端 Active CN110309073B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910575260.4A CN110309073B (zh) 2019-06-28 2019-06-28 移动应用程序用户界面错误自动化检测方法、系统及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910575260.4A CN110309073B (zh) 2019-06-28 2019-06-28 移动应用程序用户界面错误自动化检测方法、系统及终端

Publications (2)

Publication Number Publication Date
CN110309073A CN110309073A (zh) 2019-10-08
CN110309073B true CN110309073B (zh) 2021-07-27

Family

ID=68077979

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910575260.4A Active CN110309073B (zh) 2019-06-28 2019-06-28 移动应用程序用户界面错误自动化检测方法、系统及终端

Country Status (1)

Country Link
CN (1) CN110309073B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111857719B (zh) * 2020-07-31 2023-05-30 抖音视界有限公司 数据处理方法、装置、电子设备及介质
CN111930622B (zh) * 2020-08-10 2023-10-13 中国工商银行股份有限公司 基于深度学习的界面控件测试方法及系统
CN111949992B (zh) * 2020-08-17 2023-09-29 中国工商银行股份有限公司 Web应用程序的自动化安全监测方法及系统
CN112131869B (zh) * 2020-09-02 2021-09-10 苏州好玩友网络科技有限公司 基于多语言的文本检测方法及装置
CN112433713A (zh) * 2020-11-30 2021-03-02 建信金融科技有限责任公司 一种应用程序设计图处理方法和装置
CN112784269B (zh) * 2021-01-15 2024-07-30 鹏城实验室 恶意软件检测方法、装置和计算机存储介质
CN116401178B (zh) * 2023-06-09 2023-08-11 成都融见软件科技有限公司 Ui组件问题点定位方法、电子设备和介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105740151A (zh) * 2016-02-03 2016-07-06 惠州Tcl移动通信有限公司 一种移动终端ui控件查看处理方法及系统
CN105955889A (zh) * 2016-05-11 2016-09-21 南京大学 一种图形界面自动化测试方法
CN106569945A (zh) * 2016-10-19 2017-04-19 上海斐讯数据通信技术有限公司 一种用于用户界面测试的自动化辨色系统和方法
CN108229485A (zh) * 2018-02-08 2018-06-29 百度在线网络技术(北京)有限公司 用于测试用户界面的方法和装置
CN108279932A (zh) * 2018-01-22 2018-07-13 北京奇艺世纪科技有限公司 一种移动终端动态配置用户界面方法和装置
CN108363599A (zh) * 2018-01-12 2018-08-03 深圳壹账通智能科技有限公司 用户界面显示识别方法及终端设备
CN109086204A (zh) * 2018-07-20 2018-12-25 北京小米移动软件有限公司 节点关系树建立、页面标记和识别方法、装置和存储介质
CN109542562A (zh) * 2018-11-09 2019-03-29 浙江口碑网络技术有限公司 界面图片的识别方法及装置
CN109783388A (zh) * 2019-01-16 2019-05-21 北京金山云网络技术有限公司 Ui自动化测试方法、装置及电子设备
CN109857652A (zh) * 2019-01-16 2019-06-07 深圳壹账通智能科技有限公司 一种用户界面的自动化测试方法、终端设备及介质
CN109871316A (zh) * 2019-01-10 2019-06-11 北京云测信息技术有限公司 一种控件识别方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9864674B2 (en) * 2015-01-23 2018-01-09 Accenture Global Services Limited Test case generation system

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105740151A (zh) * 2016-02-03 2016-07-06 惠州Tcl移动通信有限公司 一种移动终端ui控件查看处理方法及系统
CN105955889A (zh) * 2016-05-11 2016-09-21 南京大学 一种图形界面自动化测试方法
CN106569945A (zh) * 2016-10-19 2017-04-19 上海斐讯数据通信技术有限公司 一种用于用户界面测试的自动化辨色系统和方法
CN108363599A (zh) * 2018-01-12 2018-08-03 深圳壹账通智能科技有限公司 用户界面显示识别方法及终端设备
CN108279932A (zh) * 2018-01-22 2018-07-13 北京奇艺世纪科技有限公司 一种移动终端动态配置用户界面方法和装置
CN108229485A (zh) * 2018-02-08 2018-06-29 百度在线网络技术(北京)有限公司 用于测试用户界面的方法和装置
CN109086204A (zh) * 2018-07-20 2018-12-25 北京小米移动软件有限公司 节点关系树建立、页面标记和识别方法、装置和存储介质
CN109542562A (zh) * 2018-11-09 2019-03-29 浙江口碑网络技术有限公司 界面图片的识别方法及装置
CN109871316A (zh) * 2019-01-10 2019-06-11 北京云测信息技术有限公司 一种控件识别方法和装置
CN109783388A (zh) * 2019-01-16 2019-05-21 北京金山云网络技术有限公司 Ui自动化测试方法、装置及电子设备
CN109857652A (zh) * 2019-01-16 2019-06-07 深圳壹账通智能科技有限公司 一种用户界面的自动化测试方法、终端设备及介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《一种GUI测试的EDPN测试树生成模型》;龚红仿等;《长沙理工大学学报》;20080619;第5卷(第1期);第75-79页 *

Also Published As

Publication number Publication date
CN110309073A (zh) 2019-10-08

Similar Documents

Publication Publication Date Title
CN110309073B (zh) 移动应用程序用户界面错误自动化检测方法、系统及终端
JP7398068B2 (ja) ソフトウェアテスト
CN110275834B (zh) 用户界面自动化测试系统及方法
US10740216B1 (en) Automatic bug classification using machine learning
CN111626177B (zh) 一种pcb元件识别方法及装置
US11080563B2 (en) System and method for enrichment of OCR-extracted data
CN112037222B (zh) 一种神经网络模型的自动更新方法及系统
CN110889437B (zh) 一种图像处理方法、装置、电子设备及存储介质
US20220343642A1 (en) High-precision identification method and system for substations
CN113312899A (zh) 文本分类方法、装置和电子设备
CN112527676A (zh) 模型自动化测试方法、装置及存储介质
CN116340952A (zh) 一种基于操作码程序依赖图的智能合约漏洞检测方法
CN112817863B (zh) 一种基于ai深度学习的ai辅助自动化测试方法及系统
CN111859862B (zh) 文本的数据标注方法和装置、存储介质及电子装置
CN112613367A (zh) 票据信息文本框获取方法、系统、设备及存储介质
CN112464237A (zh) 一种静态代码安全诊断方法及装置
CN116820996A (zh) 基于人工智能的集成测试用例自动生成方法和装置
CN115543847A (zh) 一种基于ui设计稿自动生成测试用例的方法
CN111530083B (zh) 一种界面检查的方法及装置
CN113742559A (zh) 关键词检测方法和装置、电子设备、存储介质
CN111027296A (zh) 基于知识库的报表生成方法及系统
CN117952022B (zh) 良率多维度互动系统、方法、计算机设备和存储介质
CN113111713B (zh) 一种图像检测方法、装置、电子设备及存储介质
CN112766391B (zh) 一种制作单据的方法、系统、设备及介质
CN114138927A (zh) 文本信息提取方法、装置及电子设备

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
GR01 Patent grant
GR01 Patent grant