首页> 中国专利> 一种对应用的用户界面UI进行测试的方法和装置

一种对应用的用户界面UI进行测试的方法和装置

摘要

本发明公开了一种对应用的用户界面UI进行测试的方法和装置,该方法包括:获取提交测试的应用,并启动所述应用;对于所述应用的每个当前UI,识别该当前UI上的控件特征;如果识别出该当前UI上控件特征,则触发该控件特征对应的控件,跳转到所述应用的下一个UI;如果在该当前UI上没有识别出控件特征,则通过查询引导页数据库判断该当前UI是否为引导页,如果该当前UI是引导页则进一步从引导页数据库中获取该引导页的操作信息,根据获取的该引导页的操作信息在该当前UI上进行相应的操作,以跳过该引导页。本方案实现了智能地根据UI中的控件特征对UI中的控件进行针对性地触发测试,能够大大提高测试的有效性和可靠性,节省测试时间成本。

著录项

  • 公开/公告号CN105607993A

    专利类型发明专利

  • 公开/公告日2016-05-25

    原文格式PDF

  • 申请/专利号CN201510640459.2

  • 发明设计人 田野;张辉;

    申请日2015-09-30

  • 分类号G06F11/36(20060101);

  • 代理机构11323 北京市隆安律师事务所;

  • 代理人权鲜枝;何立春

  • 地址 100088 北京市西城区新街口外大街28号D座112室(德胜园区)

  • 入库时间 2023-12-18 15:29:29

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-07-22

    专利权的转移 IPC(主分类):G06F11/36 专利号:ZL2015106404592 登记生效日:20220712 变更事项:专利权人 变更前权利人:北京奇虎科技有限公司 变更后权利人:北京奇虎科技有限公司 变更事项:地址 变更前权利人:100088 北京市西城区新街口外大街28号D座112室(德胜园区) 变更后权利人:100015 北京市朝阳区酒仙桥路6号院2号楼1至19层104号内8层801 变更事项:专利权人 变更前权利人:奇智软件(北京)有限公司 变更后权利人:

    专利申请权、专利权的转移

  • 2018-04-20

    授权

    授权

  • 2016-06-22

    实质审查的生效 IPC(主分类):G06F11/36 申请日:20150930

    实质审查的生效

  • 2016-05-25

    公开

    公开

说明书

技术领域

本发明涉及计算机技术领域,具体涉及一种对应用的用户界面UI进行 测试的方法和装置。

背景技术

现有技术中,对应用的用户界面UI进行测试的方案包括两种:一种是 系统自带的Monkey测试方案,顾名思义,像一个猴子一样对应用的界面进 行随机点击,由于点击过程完全是随机的,导致该方案能够点击到UI上真 正的控件的概率是不大的,使得该方案很多时候都是在无意义地点击UI上 没有控件的坐标位置,既浪费测试时间,也无法得到有意义的测试结果。另 一种是自定义的UI测试方案,该方案不对应用的UI进行识别,只是在屏幕 上做简单的点击和划动动作,该方案一方面存在与Monkey测试相同的测试 效率低的问题,另一方面在遇到特殊的UI如引导页时,由于不知道引导页 实际指示的滑动方向和效果,该方案容易卡在引导页中无法跳转到下一个 UI。

发明内容

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分 地解决上述问题的一种对应用的用户界面UI进行测试的方法和相应的装置。 依据本发明的一个方面,提供了一种对应用的用户界面UI进行测试的方 法,该方法包括:

获取提交测试的应用,并启动所述应用;

对于所述应用的每个当前UI,识别该当前UI上的控件特征;

如果识别出该当前UI上控件特征,则触发该控件特征对应的控件,跳 转到所述应用的下一个UI;

如果在该当前UI上没有识别出控件特征,则通过查询引导页数据库判 断该当前UI是否为引导页,如果该当前UI是引导页则进一步从引导页数据 库中获取该引导页的操作信息,根据获取的该引导页的操作信息在该当前UI 上进行相应的操作,以跳过该引导页。

可选地,所述通过查询引导页数据库判断该当前UI是否为引导页包括:

获取所述应用的包名和当前Activity组件的类名;

以所述包名和Activity组件的类名作为索引查询所述引导页数据库,如 果所述引导页数据库中存在包含相同包名和Activity组件的类名的条目,则 判断当前UI是引导页;

其中,所述引导页数据库中对应保存了包名、Activity组件的类名和相 应的操作信息。

可选地,所述引导页数据库位于服务器侧;

则所述通过查询引导页数据判断该当前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上控件 特征时,触发该控件特征对应的控件,跳转到所述应用的下一个UI;当所述 控件特征识别单元在该当前UI上没有识别出控件特征时,通过查询引导页 数据库判断该当前UI是否为引导页,如果该当前UI是引导页则进一步从引 导页数据库中获取该引导页的操作信息,根据获取的该引导页的操作信息在 该当前UI上进行相应的操作,以跳过该引导页

存储单元,适于保存引导页数据库。

可选地,所述测试执行单元,适于获取所述应用的包名和当前Activity 组件的类名,以所述包名和Activity组件的类名作为索引查询所述引导页数 据库,如果所述引导页数据库中存在包含相同包名和Activity组件的类名的 条目,则判断当前UI是引导页;

其中,所述引导页数据库中对应保存了包名、Activity组件的类名和相 应的操作信息。

可选地,所述存储单元位于服务器侧;

则所述测试执行单元,适于通过查询服务器侧的存储单元中的引导页数 据判断该当前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自 定义控件特征,进一步提出了通过数据库匹配的方式获取其对应的操作,有 效地解决了对UI尤其是引导页的UI进行测试的问题。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技 术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它 目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本 领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的, 而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示 相同的部件。在附图中:

图1示出了根据本发明一个实施例的一种对应用的用户界面UI进行测 试的方法流程图;

图2示出了根据本发明一个实施例的一种对应用的用户界面UI进行测 试的装置示意图;

图3示出了根据本发明另一个实施例的一种对应用的用户界面UI进行 测试的装置示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示 了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不 应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地 理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了根据本发明一个实施例的一种对应用的用户界面UI进行测 试的方法流程图,如图1所示,该方法包括:

步骤S110,获取提交测试的应用,并启动应用。

步骤S120,对于应用的每个当前UI,识别该当前UI上的控件特征。

步骤S130,如果识别出该当前UI上控件特征,则触发该控件特征对应 的控件,跳转到所述应用的下一个UI。

步骤S140,如果在该当前UI上没有识别出控件特征,则通过查询引导 页数据库判断该当前UI是否为引导页,如果该当前UI是引导页则进一步从 引导页数据库中获取该引导页的操作信息,根据获取的该引导页的操作信息 在该当前UI上进行相应的操作,以跳过该引导页。

可见,图1所示的方法在对应用的UI进行测试时,先识别当前UI上的 控件特征,根据识别结果对当前UI上的控件进行针对性地触发,当没有识 别出当前UI上的控件特征时,再通过查询引导页数据库获取对应于当前UI 是引导页的操作信息以进行相应的操作。与现有技术中通过对UI进行随机 盲目触发以完成测试的方案相比,本方案实现了智能地根据UI中的控件特 征对UI中的控件进行针对性地触发测试,能够大大提高测试的有效性和可 靠性,节省测试时间成本;并且,对于一些无法识别的UI自定义控件特征, 进一步提出了通过数据库匹配的方式获取其对应的操作,有效地解决了对UI 尤其是引导页的UI进行测试的问题。

在本发明的一个实施例中,图1所示方法的步骤S120,对于应用的每个 当前UI,识别该当前UI上的控件特征包括:获取应用的关于所述当前UI 的源数据;通过分析获取的源数据识别当前UI上的控件特征。

以一个具体的实施例说明图1所示的方法:

获取提交测试的应用A,将该应用A安装在测试用的智能终端上,将代 理程序注入到所述智能终端的系统进程中,使得系统在启动的时候不仅要加 载操作系统原生的辅助文件,还要加载代理程序的内容,实现代理程序在系 统环境下的初始化环境布局,为后续的测试做准备。

在所述智能终端上运行应用A,对于应用A的每个当前UI,通过调用代 理程序获取该当前UI的界面信息,进而识别出该当前UI上的控件特征。具 体地,所述智能终端的操作系统是安卓操作系统,代理程序中包含Hook函 数,则通过调用代理程序获取应用A的当前UI的界面信息的方式是:因为 安卓系统的GUI(GraphicalUserInterface,图形用户界面)是属于客户端- 服务端模式的,也就是说安卓系统在显示一个界面的时候,应用(客户端) 会向安卓的一个服务SurfaceFlinger(服务端)要显示的界面信息, SurfaceFlinger通过多重计算合成能见区后发送至OpenGL(OpenGraphics Library,开放图形库)接口,由该接口处理后显示到智能终端的屏幕上。基 于该原理,为了获取智能终端的屏幕显示信息,本方案通过代理程序中的 Hook函数截获应用A发送给服务SurfaceFlinger的关于当前UI的界面信息, 进而获知该当前UI中的各控件特性。然后,针对当前UI上的各控件进行触 发测试。例如,对于UI上的一个按键,在已获知其基本特性(包括坐标位 置、显示内容等)的前提下,对其进行点击测试,包括两种方式:直接调用 这个按键原生的点击函数来实现点击该按键的效果,或者,模拟用户点击的 方式,根据该按键的坐标位置发送对该坐标位置处进行点击的事件;具体地, 通过Hook函数将该按键的坐标位置参数发送至一个点击函数,使得该点击 函数运行时在该按键所在位置处进行点击。再次通过Hook函数获取跳转后 下一个UI的界面信息,接着按照上述方法对该UI上的控件进行触发测试, 再跳转到下一个UI的界面信息,以此类推,直至遍历完应用A的所有UI 中的所有控件后,测试停止,得到应用A的UI的测试结果。

其中,对于一些使用自定义控件的UI,可能无法获取到界面信息的UI, 则本发明进一步提供了通过引导页数据库对其进行判断处理的机制。

在本发明的一个实施例中,引导页数据库位于服务器侧;则图1所示方 法的步骤S140,通过查询引导页数据判断该当前UI是否为引导页包括:通 过查询服务器侧的引导页数据判断该当前UI是否为引导页。

具体地,引导页数据库中对应保存了包名、Activity组件的类名和相应 的操作信息;则步骤S140具体包括以下流程:

步骤S141,获取应用的包名和当前Activity组件的类名。

步骤S142,以包名和Activity组件的类名作为索引查询所述引导页数据 库,如果引导页数据库中存在包含相同包名和Activity组件的类名的条目, 则判断当前UI是引导页。

经过上述判断过程,如果在引导页数据库中仍未查找到与当前UI对应 的操作信息,说明当前UI可能不是引导页,或者说明当前UI的引导页信息 未被收集到引导页数据库中,对于此种情况,图1所示的方法进一步执行如 下处理方式:

查询经验列表;判断当前UI中是否存在与经验列表中的任一项匹配的 文字或字符串;如果存在匹配项,则在当前UI中点击所匹配的文字或字符 串,以尝试跳转到下一个UI。其中,经验列表是根据以往测试的经验而建立 的,如果在大量的测试中发现,一个指定界面元素具有被触发后即跳转到下 一个UI的特点,则将该指定界面元素放入经验列表中;例如,一般情况下, UI中存在“开始使用”时,点击该“开始使用”即可跳转到下一个UI,因 此,将“开始使用”放入经验列表中。

进一步地,对于上述既识别不出UI控件特性、又在引导页数据库中查 找不到UI对应的操作信息的应用来说,本发明对其进行统计学习,以逐渐 提升UI测试能力,则图1所示的方法在查询经验列表后,还包括:将所述 应用添加到新应用统计列表中;其中,运维人员对新应用统计列表中的应用 的执行逻辑进行分析后,将该应用的引导页相关内容添加到引导页数据库中。

除了上述的引导页之外,应用的UI中比较特殊的还包括协议页,协议 页中一般包括:协议的文字内容,对于该协议“同意”或“不同意”的控件 等;由于协议的文字内容是可见的,使得现有技术中的UI测试方案中往往 将协议的文字部分也当作测试对象进行触发,不仅浪费了大量的测试时间, 也无法得到有意义的测试结果。为了避免这种情况,本发明也提供了对协议 页的处理过程,如下所述:经过图1中步骤S140对当前UI是否为引导页的 判断,如果当前UI不是引导页,则图1所示的方法进一步包括:将当前UI 上的文字与协议特征列表进行匹配;如果匹配,则判断当前UI是应用的协 议页,在当前UI中的查找到同意该协议的控件并触发,以跳转到下一个UI。 本实施例旨在利用尽量少的测试时间拿到最有效有意义的测试结果。

除了上述引导页和协议页之外,应用的UI中比较特殊的还包括登录页, 登录页中一般包括:登录信息输入框(用户名输入框、密码输入框)、验证 码输入框、“显示密码”控件和“立即登录”控件等。在对应用的UI进行 测试的过程中,如果遇到登录页,不登录的话是无法跳转到下一个UI的, 对此,本发明提出了解决方案:在本发明的一个实施例中,图1所示方法的 步骤S130,如果识别出该当前UI上控件特征,则触发该控件特征对应的控 件,跳转到所述应用的下一个UI包括:如果识别出当前UI上的登录控件特 征,则进一步确定当前UI上的登录信息输入框;将提交所述应用的用户所 提交的登录信息输入到所述登录信息输入框中;进一步识别出当前UI中的 确认登录控件并触发。

在本发明的一个实施例中,图1所示的方法进一步包括:对提交测试的 各应用进行分类;根据分类结果,确定引导页数据库的需要补充的内容;获 取需要补充的内容,添加到引导页数据库中。本实施例是对测试方案的自学 习过程,通过自学习进一步提高本方案的测试能力。

基于上述各实施例,在对应用的UI进行测试的过程中,记录在应用的 每个UI上的执行操作和执行的结果,生成测试报告。

图2示出了根据本发明一个实施例的一种对应用的用户界面UI进行测 试的装置示意图,如图2所示,该对应用的用户界面UI进行测试的装置包 括:

获取单元210,适于获取提交测试的应用,并启动应用。

控件特征识别单元220,适于对于应用的每个当前UI,识别该当前UI 上的控件特征。

测试执行单元230,适于当控件特征识别单元220识别出该当前UI上控 件特征时,触发该控件特征对应的控件,跳转到应用的下一个UI;当控件特 征识别单元220在该当前UI上没有识别出控件特征时,通过查询引导页数 据库判断该当前UI是否为引导页,如果该当前UI是引导页则进一步从引导 页数据库中获取该引导页的操作信息,根据获取的该引导页的操作信息在该 当前UI上进行相应的操作,以跳过该引导页。

存储单元240,适于保存引导页数据库。

可见,图2所示的装置在对应用的UI进行测试时,先识别当前UI上的 控件特征,根据识别结果对当前UI上的控件进行针对性地触发,当没有识 别出当前UI上的控件特征时,再通过查询引导页数据库获取对应于当前UI 是引导页的操作信息以进行相应的操作。与现有技术中通过对UI进行随机 盲目触发以完成测试的方案相比,本方案实现了智能地根据UI中的控件特 征对UI中的控件进行针对性地触发测试,能够大大提高测试的有效性和可 靠性,节省测试时间成本;并且,对于一些无法识别的UI自定义控件特征, 进一步提出了通过数据库匹配的方式获取其对应的操作,有效地解决了对UI 尤其是引导页的UI进行测试的问题。

在本发明的一个实施例中,测试执行单元230,适于获取所述应用的包 名和当前Activity组件的类名,以包名和Activity组件的类名作为索引查询 所述引导页数据库,如果引导页数据库中存在包含相同包名和Activity组件 的类名的条目,则判断当前UI是引导页;其中,引导页数据库中对应保存 了包名、Activity组件的类名和相应的操作信息。

在本发明的一个实施例中,存储单元240位于服务器侧;则测试执行单 元230,适于通过查询服务器侧的存储单元240中的引导页数据判断该当前 UI是否为引导页。

在本发明的一个实施例中,控件特征识别单元220,适于获取应用的关 于当前UI的源数据,通过分析获取的源数据识别当前UI上的控件特征。

在本发明的一个实施例中,存储单元240,进一步适于保存经验列表。 测试执行单元230,进一步适于在当前UI不是引导页时,查询经验列表,判 断当前UI中是否存在与经验列表中的任一项匹配的文字或字符串,如果存 在匹配项,则在当前UI中点击所匹配的文字或字符串,以尝试跳转到下一 个UI。

以及,测试执行单元230,进一步适于在查询经验列表后,将应用添加 到新应用统计列表中。其中,运维人员对新应用统计列表中的应用的执行逻 辑进行分析后,将该应用的引导页相关内容添加到所述引导页数据库中。

在本发明的一个实施例中,存储单元240,进一步适于保存协议特征列 表。测试执行单元230,进一步适于在当前UI不是引导页时,将当前UI上 的文字与协议特征列表进行匹配;如果匹配,则判断当前UI是所述应用的 协议页,在当前UI中的查找到同意该协议的控件并触发,以跳转到下一个 UI。

在本发明的一个实施例中,测试执行单元230,适于当所述控件特征识 别单元220识别出当前UI上的登录控件特征时,进一步确定当前UI上的登 录信息输入框;将提交所述应用的用户所提交的登录信息输入到所述登录信 息输入框中;并进一步识别出当前UI中的确认登录控件并触发。

图3示出了根据本发明另一个实施例的一种对应用的用户界面UI进行 测试的装置示意图,如图3所示,该对应用的用户界面UI进行测试的装置 300包括:获取单元310、控件特征识别单元320、测试执行单元330、存储 单元340、应用分类单元350和报告生成单元360。所述获取单元310、控件 特征识别单元320、测试执行单元330和存储单元340与图2所示获取单元 210、控件特征识别单元220、测试执行单元230和存储单元240功能对应相 同,在此不再赘述。

应用分类单元350,适于对提交测试的各应用进行分类;根据分类结果, 确定所述引导页数据库的需要补充的内容;获取所述需要补充的内容,添加 到所述引导页数据库中。

报告生成单元360,适于记录在所述应用的每个UI上的执行操作和执行 的结果,生成测试报告。

需要说明的是,图2到图3所示装置的各实施例与上文图1所示方法的 各实施例对应相同,上文已详细说明,在此不再赘述。

综上所述,本发明提供的技术方案在对应用的UI进行测试时,先识别 当前UI上的控件特征,根据识别结果对当前UI上的控件进行针对性地触发, 当没有识别出当前UI上的控件特征时,再通过查询引导页数据库获取对应 于当前UI是引导页的操作信息以进行相应的操作。与现有技术中通过对UI 进行随机盲目触发以完成测试的方案相比,本方案实现了智能地根据UI中 的控件特征对UI中的控件进行针对性地触发测试,能够大大提高测试的有 效性和可靠性,节省测试时间成本;并且,本方案还进一步公开了提出引导 页数据库匹配、协议特征列表匹配、登录页识别等方式,解决了对引导页、 协议页和登录页这些特殊UI进行测试的问题。

需要说明的是:

在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固 有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述, 构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定 编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容, 并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本 发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未 详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个 或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时 被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开 的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求 中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映 的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循 具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利 要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自 适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以 把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可 以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者 单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴 随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或 者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴 随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相 似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其 它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组 合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权 利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使 用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理 器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当 理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据 本发明实施例的一种对应用的用户界面UI进行测试的装置中的一些或者全 部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方 法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序 产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以 具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到, 或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制, 并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实 施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要 求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于 元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以 借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在 列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个 硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。 可将这些单词解释为名称。

本发明公开了A1、一种对应用的用户界面UI进行测试的方法,其中, 该方法包括:

获取提交测试的应用,并启动所述应用;

对于所述应用的每个当前UI,识别该当前UI上的控件特征;

如果识别出该当前UI上控件特征,则触发该控件特征对应的控件,跳 转到所述应用的下一个UI;

如果在该当前UI上没有识别出控件特征,则通过查询引导页数据库判 断该当前UI是否为引导页,如果该当前UI是引导页则进一步从引导页数据 库中获取该引导页的操作信息,根据获取的该引导页的操作信息在该当前UI 上进行相应的操作,以跳过该引导页。

A2、如A1所述的方法,其中,所述通过查询引导页数据库判断该当前 UI是否为引导页包括:

获取所述应用的包名和当前Activity组件的类名;

以所述包名和Activity组件的类名作为索引查询所述引导页数据库,如 果所述引导页数据库中存在包含相同包名和Activity组件的类名的条目,则 判断当前UI是引导页;

其中,所述引导页数据库中对应保存了包名、Activity组件的类名和相 应的操作信息。

A3、如A1所述的方法,其中,

所述引导页数据库位于服务器侧;

则所述通过查询引导页数据判断该当前UI是否为引导页包括:通过查 询服务器侧的引导页数据判断该当前UI是否为引导页。

A4、如A1所述的方法,其中,所述对于所述应用的每个当前UI,识别 该当前UI上的控件特征包括:

获取所述应用的关于所述当前UI的源数据;

通过分析获取的源数据识别当前UI上的控件特征。

A5、如A1所述的方法,其中,该方法进一步包括:

如果当前UI不是引导页,则查询经验列表;

判断当前UI中是否存在与经验列表中的任一项匹配的文字或字符串;

如果存在匹配项,则在当前UI中点击所匹配的文字或字符串,以尝试 跳转到下一个UI。

A6、如A5所述的方法,其中,该方法进一步包括:

查询经验列表后,还将所述应用添加到新应用统计列表中;

其中,运维人员对新应用统计列表中的应用的执行逻辑进行分析后,将 该应用的引导页相关内容添加到所述引导页数据库中。

A7、如A1所述的方法,其中,该方法进一步包括:

如果当前UI不是引导页,则将当前UI上的文字与协议特征列表进行匹 配;

如果匹配,则判断当前UI是所述应用的协议页,在当前UI中的查找到 同意该协议的控件并触发,以跳转到下一个UI。

A8、如A1所述的方法,其中,所述如果识别出该当前UI上控件特征, 则触发该控件特征对应的控件,跳转到所述应用的下一个UI包括:

如果识别出当前UI上的登录控件特征,则进一步确定当前UI上的登录 信息输入框;

将提交所述应用的用户所提交的登录信息输入到所述登录信息输入框 中;

进一步识别出当前UI中的确认登录控件并触发。

A9、如A1-A8中任一项所述的方法,其中,该方法进一步包括:

对提交测试的各应用进行分类;

根据分类结果,确定所述引导页数据库的需要补充的内容;

获取所述需要补充的内容,添加到所述引导页数据库中。

A10、如A1-A8中任一项所述的方法,其中,该方法进一步包括:

记录在所述应用的每个UI上的执行操作和执行的结果,生成测试报告。

本发明还公开了B11、一种对应用的用户界面UI进行测试的装置,其中, 该装置包括:

获取单元,适于获取提交测试的应用,并启动所述应用;

控件特征识别单元,适于对于所述应用的每个当前UI,识别该当前UI 上的控件特征;

测试执行单元,适于当所述控件特征识别单元识别出该当前UI上控件 特征时,触发该控件特征对应的控件,跳转到所述应用的下一个UI;当所述 控件特征识别单元在该当前UI上没有识别出控件特征时,通过查询引导页 数据库判断该当前UI是否为引导页,如果该当前UI是引导页则进一步从引 导页数据库中获取该引导页的操作信息,根据获取的该引导页的操作信息在 该当前UI上进行相应的操作,以跳过该引导页。

存储单元,适于保存引导页数据库。

B12、如B11所述的装置,其中,

所述测试执行单元,适于获取所述应用的包名和当前Activity组件的类 名,以所述包名和Activity组件的类名作为索引查询所述引导页数据库,如 果所述引导页数据库中存在包含相同包名和Activity组件的类名的条目,则 判断当前UI是引导页;

其中,所述引导页数据库中对应保存了包名、Activity组件的类名和相 应的操作信息。

B13、如B11所述的装置,其中,

所述存储单元位于服务器侧;

则所述测试执行单元,适于通过查询服务器侧的存储单元中的引导页数 据判断该当前UI是否为引导页。

B14、如B11所述的装置,其中,

所述控件特征识别单元,适于获取所述应用的关于所述当前UI的源数 据,通过分析获取的源数据识别当前UI上的控件特征。

B15、如B11所述的装置,其中,

所述存储单元,进一步适于保存经验列表;

所述测试执行单元,进一步适于在当前UI不是引导页时,查询经验列表, 判断当前UI中是否存在与经验列表中的任一项匹配的文字或字符串,如果 存在匹配项,则在当前UI中点击所匹配的文字或字符串,以尝试跳转到下 一个UI。

B16、如B15所述的装置,其中,

所述测试执行单元,进一步适于在查询经验列表后,将所述应用添加到 新应用统计列表中;

其中,运维人员对新应用统计列表中的应用的执行逻辑进行分析后,将 该应用的引导页相关内容添加到所述引导页数据库中。

B17、如B11所述的装置,其中,

所述存储单元,进一步适于保存协议特征列表;

所述测试执行单元,进一步适于在当前UI不是引导页时,将当前UI上 的文字与协议特征列表进行匹配;如果匹配,则判断当前UI是所述应用的 协议页,在当前UI中的查找到同意该协议的控件并触发,以跳转到下一个 UI。

B18、如B11所述的装置,其中,

所述测试执行单元,适于当所述控件特征识别单元识别出当前UI上的 登录控件特征时,进一步确定当前UI上的登录信息输入框;将提交所述应 用的用户所提交的登录信息输入到所述登录信息输入框中;并进一步识别出 当前UI中的确认登录控件并触发。

B19、如B11-B18中任一项所述的装置,其中,该装置进一步包括:

应用分类单元,适于对提交测试的各应用进行分类;根据分类结果,确 定所述引导页数据库的需要补充的内容;获取所述需要补充的内容,添加到 所述引导页数据库中。

B20、如B11-B18中任一项所述的装置,其中,该装置进一步包括:

报告生成单元,适于记录在所述应用的每个UI上的执行操作和执行的 结果,生成测试报告。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号