当前位置: 首页 > 专利查询>南京大学专利>正文

一种基于DSL和UI资产库的异常UI数据集生成方法技术

技术编号:38836790 阅读:14 留言:0更新日期:2023-09-17 09:53
本发明专利技术公开了一种基于DSL和UI资产库的异常UI数据集生成方法,该方法包括:步骤1)设计一种DSL语言用来描述不同类型的UI Bug;步骤2)编写一个DSL文件用来定义想要生成的UI Bug类型;步骤3)编写一个DSL解析器,用于读取DSL文件中的Bug规则并创建规则对象;步骤4)编写一个UI资产库构建器,用于构建一个UI资产库;使用Rico数据集作为UI资产库的来源,从所述Rico数据集中提取出每个界面截图中包含的不同类型的控件,并且记录下每个控件的信息;步骤5)根据DSL定义的规则,在UI资产库上自动地生成不同类型和数量的异常UI数据集,并且保存为COCO数据集的格式。本发明专利技术可以为UI bug检测和图像理解等领域提供有价值的数据资源,促进相关技术的发展和创新。相关技术的发展和创新。相关技术的发展和创新。

【技术实现步骤摘要】
一种基于DSL和UI资产库的异常UI数据集生成方法


[0001]本专利技术涉及软件测试领域、人机交互和图像处理领域,特别涉及一种基于DSL和UI资产库的异常UI数据集生成方法。

技术介绍

[0002]UI(User Interface)即用户界面,是人与计算机或其他设备之间进行信息交互的媒介。UI界面的质量直接影响用户的使用体验和满意度。因此,对UI界面进行测试和评估是软件开发过程中不可或缺的一环。
[0003]UI Bug是指UI界面中存在的错误或缺陷,例如控件重叠、缺失、变形、错位等,它们会降低UI界面的美观性和功能性,甚至导致用户无法正常使用软件。为了有效地检测和修复UI Bug,需要有大量且多样的异常UI数据集作为训练和测试的数据资源。
[0004]然而,现有的异常UI数据集往往数量有限、类型单一、覆盖度低,难以满足不同场景和需求的测试。目前,常用的异常UI数据集生成方法主要有两种:一种是基于启发式算法的方法,即根据一些预定义的规则或策略来对正常的UI图像进行随机或有限制地修改,以产生异常UI图像。这种方法虽然简单易实现,但是异常类型和规则是固定的,不能灵活地自定义或扩展;另一种是基于人工标注或编辑的方法,即由人工对正常的UI图像进行手动或半自动地修改,以产生异常UI图像。这种方法虽然可以生成更真实和多样的异常UI图像,但是需要大量的人力和时间成本,且难以保证标注或编辑的一致性和准确性。因此,目前还缺乏一种能够快速、灵活、高效地生成异常UI数据集的方法。
[0005]Rico数据集是一个公开的移动应用界面数据集,包含了7.2万个来自9.8千个不同应用程序的界面截图,以及相应的视觉、结构、语义等信息。Rico数据集具有丰富多样、高质量、易获取等特点,可以作为一个优秀的UI资产库,为异常UI数据集生成提供素材。
[0006]DSL(Domain Specific Language)是一种针对特定领域或问题而设计的语言,具有简洁、高效、易扩展等特点。DSL可以用于描述某个领域或问题中涉及到的概念、规则、操作等,并且可以通过解析器将DSL语句转换为可执行的代码或指令。

技术实现思路

[0007]针对现有的异常UI数据集往往数量有限、类型单一、覆盖度低、难以满足不同场景和需求的测试的问题,本专利技术提出了一种基于DSL和UI资产库的异常UI数据集生成方法,该方法可以提供灵活的bug规则定义能力,根据用户使用bug dsl定义的规则自动化生成不同类型的UI bug数据集,以便用于UI bug检测和图像理解等任务,本专利技术通过以下技术方案来实现。
[0008]一种基于DSL和UI资产库的异常UI数据集生成方法,其特征在于,该方法包括以下步骤:
[0009]步骤1)设计一种DSL语言,用来描述不同类型的UI Bug;
[0010]步骤2)编写一个DSL文件,用来定义想要生成的UI Bug类型;
[0011]步骤3)编写一个DSL解析器,用于读取DSL文件中的Bug规则,并创建规则对象,每个所述规则对象包含了控件类型、控件位置、控件变换函数和是否复制的标志;
[0012]步骤4)编写一个UI资产库构建器,用于构建一个UI资产库;使用Rico数据集作为UI资产库的来源,从所述Rico数据集中提取出每个界面截图中包含的不同类型的控件,并且记录下每个控件的类型、位置、大小和其他控件信息;
[0013]步骤5)根据DSL定义的规则,在UI资产库上自动地生成不同类型和数量的异常UI数据集,并且保存为COCO数据集的格式。
[0014]进一步的,上述的基于DSL和UI资产库的异常UI数据集生成方法,其特征在于,所述步骤1)设计的DSL语言包括Widget、func、BugType、expr、S、Trans、Specific、Copy和Bounds这类词法单元和语法结构,其中,Widget的类型包括widget,text,image,tool bar,表示UI界面中的控件类型,func包括cut,stretch,blur,表示对控件图像进行的像素级别的处理函数,BugType是一个字符串,表示UI bug的类别名称,expr是一个四则运算表达式,表示对控件位置和大小进行的数学运算,S是一个DSL语句的开始符号,表示DSL语句的开始符号,Trans是一个或多个变换操作,表示对控件进行的变换操作,Specific是一个对控件进行特定的变换操作,包括Bounds或Bounds func,表示对控件进行特定的变换操作,Copy是一个对控件进行复制的变换操作,包括Bounds copy,表示对控件进行复制的变换操作,Bounds是一个表示控件在UI界面中的位置和大小的数组,表示控件在UI界面中的位置和大小。
[0015]进一步的,上述的基于DSL和UI资产库的异常UI数据集生成方法,其特征在于,所述DSL语言包括以下特点:
[0016]特点11)采用了类似于正则表达式或BNF(巴科斯范式)的语法结构;
[0017]特点12)采用了“BugType:Trans”的形式来定义一个UI bug类型,其中BugType是一个字符串,用于表示该bug类型的名称;Trans是一个或多个变换操作,用于表示对控件进行何种变换以产生该bug;
[0018]特点13)采用了“/”符号来分隔多个变换操作,表示这些变换操作是并列关系;
[0019]特点14)采用了“|”符号来连接多个变换操作,表示这些变换操作是串联关系;
[0020]特点15)采用了“Widget Specific”或“Widget Copy”的形式来表示对控件进行特定或复制的变换操作,其中Widget表示控件类型,Specific表示对控件进行特定的处理函数,Copy表示对控件进行复制。
[0021]进一步的,上述的基于DSL和UI资产库的异常UI数据集生成方法,其特征在于,所述步骤2)中的DSL文件是一个文本文件,每一行表示一条Bug规则,所述Bug规则由Bug类型、控件类型、控件变换和控件位置四个部分组成,所述Bug规则可以根据需求进行增加、删除和修改;所述DSL文件定义了三种UI Bug类型,分别为文本重叠Text overlap、文本缺失Text missing和图形变形Icon distortion。
[0022]进一步的,上述的基于DSL和UI资产库的异常UI数据集生成方法,其特征在于,所述步骤3)编写的DSL解析器具有以下特点:
[0023]特点31)采用了词法分析器和语法分析器相结合的方式,所述词法分析器用于将DSL语句分割为不同的词法单元,所述语法分析器用于根据预定义的DSL语法规则,将词法单元组合成不同的语法结构;
[0024]特点32)采用了递归下降的方法,从S开始,按照DSL语法规则,逐层解析DSL语句,并将解析结果存储在一个抽象语法树中;
[0025]特点33)采用了遍历抽象语法树的方法,从根节点开始,按照先序遍历的顺序,访问每个节本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于DSL和UI资产库的异常UI数据集生成方法,其特征在于,该方法包括以下步骤:步骤1)设计一种DSL语言,用来描述不同类型的UI Bug;步骤2)编写一个DSL文件,用来定义想要生成的UI Bug类型;步骤3)编写一个DSL解析器,用于读取DSL文件中的Bug规则,并创建规则对象,每个所述规则对象包含了控件类型、控件位置、控件变换函数和是否复制的标志;步骤4)编写一个UI资产库构建器,用于构建一个UI资产库;使用Rico数据集作为UI资产库的来源,从所述Rico数据集中提取出每个界面截图中包含的不同类型的控件,并且记录下每个控件的类型、位置、大小和其他控件信息;步骤5)根据DSL定义的规则,在UI资产库上自动地生成不同类型和数量的异常UI数据集,并且保存为COCO数据集的格式。2.根据权利要求1所述的基于DSL和UI资产库的异常UI数据集生成方法,其特征在于,所述步骤1)设计的DSL语言包括Widget、func、BugType、expr、S、Trans、Specific、Copy和Bounds这类词法单元和语法结构,其中,Widget的类型包括widget,Web View,Date Picker,Text,On/Off Switch,Toolbar,Background Image,Card,Number Stepper,Drawer,Image,Modal,Pager Indicator,Checkbox,List Item,Advertisement,Bottom Navigation,Slider,表示UI界面中的控件类型;func包括cut,stretch,blur,表示对控件图像进行的像素级别的处理函数;BugType是一个字符串,表示UI bug的类别名称;expr是一个四则运算表达式,表示对控件位置和大小进行的数学运算;S是一个DSL语句的开始符号,表示DSL语句的开始符号;Trans是一个或多个变换操作,表示对控件进行的变换操作;Specific是一个对控件进行特定的变换操作,包括Bounds或Bounds func,表示对控件进行特定的变换操作;Copy是一个对控件进行复制的变换操作,包括Bounds copy,表示对控件进行复制的变换操作;Bounds是一个表示控件在UI界面中的位置和大小的数组,表示控件在UI界面中的位置和大小。3.根据权利要求1或2所述的基于DSL和UI资产库的异常UI数据集生成方法,其特征在于,所述DSL语言包括以下特点:特点11)采用了类似于正则表达式或BNF(巴科斯范式)的语法结构;特点12)采用了“BugType:Trans”的形式来定义一个UI bug类型,其中BugType是一个字符串,用于表示该bug类型的名称;Trans是一个或多个变换操作,用于表示对控件进行何种变换以产生该bug;特点13)采用了“/”符号来分隔多个变换操作,表示这些变换操作是并列关系;特点14)采用了“|”符号来连接多个变换操作,表示这些变换操作是串联关...

【专利技术属性】
技术研发人员:张天潘敏学张昊
申请(专利权)人:南京大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1