一种应用程序测试方法及装置制造方法

文档序号:6502879阅读:125来源:国知局
一种应用程序测试方法及装置制造方法
【专利摘要】本发明涉及一种应用程序测试方法,包括:获取第一待测应用程序的标识符,根据该标识符启动该第一待测应用程序;获取该第一待测应用程序中待触发的至少一个第一控件;触发该第一控件的事件;当该第一控件的事件触发第二待测应用程序启动时,获取该第二待测应用程序中待触发的至少一个第二控件的坐标;根据该第二控件的坐标触发第二控件的事件;保存第二待测应用程序响应于该第二控件的事件的输出结果以进行校验。本发明还提供一种应用程序测试装置。利用本发明可以实现跨应用程序的测试,又具有较强的兼容性。
【专利说明】一种应用程序测试方法及装置

【技术领域】
[0001] 本发明具体实施例涉及计算机程序测试的【技术领域】,特别涉及一种应用程序测试 方法及装置。

【背景技术】
[0002] 在一款应用程序发布之前,通常需要对该应用程序进行必要的测试,以提高应用 程序的可靠性,从而减小用户在使用应用程序的过程中遇到问题的概率。目前针对基于安 卓(Andriod)系统的应用程序进行自动化测试的方法主要包括两种:一种是基于界面控件 的测试,例如使用Robotium测试工具进行的测试;另一种是基于界面坐标的测试,例如使 用Monkey测试工具进行的测试。其中,基于界面控件的测试具有兼容性强的优点,因此被 广泛地应用。然而,基于界面控件的测试无法实现跨应用程序的测试,即只能绑定一个应用 程序进行测试。若被测的应用程序在运行过程中触发了另一个非绑定的应用程序响应而运 行时,基于界面控件的测试将无法继续测试过程。而基于界面坐标的测试虽然可以实现跨 应用程序的测试,但兼容性较差。


【发明内容】

[0003] 有鉴于此,有必要提供一种应用程序测试方法及装置,既能实现跨应用程序的测 试,又具有较强的兼容性。
[0004] 一种应用程序测试方法,包括以下步骤:启动步骤:获取第一待测应用程序的标 识符,根据该标识符启动该第一待测应用程序;第一获取步骤:获取该第一待测应用程序 中待触发的至少一个第一控件;第一触发步骤:触发该第一控件的事件;第二获取步骤:当 该第一控件的事件触发第二待测应用程序启动时,获取该第二待测应用程序中待触发的至 少一个第二控件的坐标;第二触发步骤:根据该第二控件的坐标触发第二控件的事件;保 存步骤:保存第二待测应用程序响应于该第二控件的事件的输出结果以进行校验。
[0005] -种应用程序测试装置,包括:启动模块,用于获取第一待测应用程序的标识符, 根据该标识符启动该第一待测应用程序;第一获取模块,用于获取该第一待测应用程序中 待触发的至少一个第一控件;第一触发模块,用于触发该第一控件的事件;第二获取模块, 用于当该第一控件的事件触发第二待测应用程序启动时,获取该第二待测应用程序中待触 发的至少一个第二控件的坐标;第二触发模块,用于根据该第二控件的坐标触发第二控件 的事件;保存模块,用于保存第二待测应用程序响应于该第二控件的事件的输出结果以进 行校验。
[0006] 相较于现有技术,本发明应用程序测试方法及装置,结合基于界面控件的测试方 法和基于界面坐标的测试方法对应用程序进行自动化测试,既能实现跨应用程序的测试, 又具有较强的兼容性。
[0007] 为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例, 并配合所附图式,作详细说明如下。

【专利附图】

【附图说明】
[0008] 图1为本发明第一实施例提供的应用程序测试方法的流程图。
[0009] 图2为图1中步骤S2获取第一控件的详细流程图。
[0010] 图3为图1中步骤S4获取第二控件的坐标的详细流程图。
[0011] 图4为本发明第二实施例提供的应用程序测试方法的流程图。
[0012] 图5为本发明第三实施例提供的应用程序测试装置的框图。
[0013] 图6为本发明第四实施例提供的应用程序测试装置的框图。

【具体实施方式】
[0014] 为更进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,以下结合 附图及较佳实施例,对依据本发明的【具体实施方式】、结构、特征及其功效,详细说明如后。
[0015] 第一实施例
[0016] 参阅图1所示,本发明第一实施例提供一种应用程序测试方法,其可由任意一台 终端执行,用于测试安装于该终端内的应用程序。在本实施例中,该应用程序是基于安卓 (Andriod)系统开发的。该终端的具体实例包括但并不限于台式计算机、便携式计算机、智 能手机、平板电脑或者其他类似的运算装置。该应用程序测试方法包括以下步骤:
[0017] 步骤S1,获取第一待测应用程序的标识符,根据该标识符启动该第一待测应用程 序;
[0018] 步骤S2,获取该第一待测应用程序中待触发的至少一个第一控件;
[0019] 步骤S3,触发该第一控件的事件;
[0020] 步骤S4,当该第一控件的事件触发第二待测应用程序启动时,获取该第二待测应 用程序中待触发的至少一个第二控件的坐标;
[0021] 步骤S5,根据该第二控件的坐标触发第二控件的事件;
[0022] 步骤S6,保存第二待测应用程序响应于该第二控件的事件的输出结果以进行校 验。
[0023] 按照上述应用程序测试方法,对该第一待测应用程序采用基于界面控件的测试方 法,对该第二待测应用程序采用基于界面坐标的测试方法,结合基于界面控件的测试方法 和基于控件坐标的测试方法对应用程序进行自动化测试,既能实现跨应用程序的测试,又 具有较强的兼容性。
[0024] 在一些实例中,上述方法的各步骤的实现细节如下:
[0025] 步骤S1所述的标识符用于唯一地识别该第一待测应用程序。在本实施例中,该标 识符可以为该第一待测应用程序的包名。具体而言,步骤S1可以先在所述终端的屏幕上显 示一个接收该标识符输入的用户界面,然后用户在该用户界面上输入该标识符。步骤S1接 收所输入的该标识符后,根据该标识符启动对应的该第一待测应用程序。
[0026] 步骤S2所述的第一控件是指针对第一待测应用程序的相应功能进行测试时需要 触发的控件。例如,若第一待测应用程序为短信应用程序,如果要测试该短信应用程序的短 信发送功能,则该短信应用程序需要触发的控件例如包括号码输入控件、文本输入控件、发 送按钮控件等。参阅图2所示,步骤S2具体包括以下步骤:
[0027] 步骤S2. 1,获取该第一待测应用程序的所有控件。具体而言,可以使用官方针对安 卓系统发布的控件获取工具来获取第一待测应用程序的所有控件。
[0028] 步骤S2. 2,从该第一待测应用程序的所有控件中选择与预设的第一匹配信息对应 的控件作为所述第一控件。该第一匹配信息由用户进行设置,例如用户可以设置控件ID、控 件类型或控件中包含的文字信息等作为所述第一匹配信息。对应地,步骤S2. 2可以在该第 一待测应用程序的所有控件中筛选出与所设置的控件ID、控件类型或控件中包含的文字信 息一致的控件作为所述的第一控件。
[0029] 步骤S3使用基于界面控件的测试工具,例如Robotium测试工具触发该第一控件 的事件。该Robotium测试工具提供了模拟各种手势操作(例如点击、长按、滑动、模拟键盘 按键输入等)、查找和断言机制的API (Application Programming Interface,应用程序编 程接口),能够对应用程序用户界面的各种控件进行操作,从而触发控件的事件。例如,若该 第一控件为文本输入控件,则Robotium测试工具模拟键盘按键向该文本输入控件输入预 先设定的文字。若该第一控件为按钮(Button)控件,则Robotium测试工具模拟点击该按钮 控件。若该第一控件为ListView控件,则Robotium测试工具模拟滑动该ListView控件。 此外,还可以使用Robotium测试工具中的Assert语句对第一待测应用程序触发第一控件 的事件后的结果进行自动校验。
[0030] 步骤S4中,例如该第一待测应用程序为一种应用获取平台,该应用获取平台用于 提供多种手机应用程序的推荐、下载、安装和运行等服务。通过触发该第一控件的事件可以 从该应用获取平台下载并安装运行一款手机聊天软件的客户端,该款手机聊天软件的客户 端即为所述的第二待测应用程序。
[0031] 步骤S4所述的第二控件是指针对第二待测应用程序的相应功能进行测试时需要 触发的控件。例如,该第二待测应用程序为所述手机聊天软件的客户端,如果需要测试该手 机聊天软件的客户端安装运行后是否能够出现正常的登录界面,则该第二待测应用程序需 要触发的控件例如包括用于点击跳转至登录界面的按钮控件。参阅图3所示,步骤S4具体 包括如下步骤:
[0032] 步骤S4. 1,获取该第二待测应用程序的所有控件。同样的,步骤S4. 1也可以使用 官方针对安卓系统发布的控件获取工具来获取第二待测应用程序的所有控件。
[0033] 步骤S4. 2,从该第二待测应用程序的所有控件中选择与预设的第二匹配信息对应 的控件作为所述第二控件。该第二匹配信息也由用户进行设置。该第二匹配信息例如包括 控件ID、控件类型或控件中包含的文字信息等。
[0034] 步骤S4. 3,获取该第二控件的坐标。该第二控件的坐标是指该第二控件在第二待 测应用程序的显示界面上显示位置的坐标。具体地,步骤S4. 3可以使用官方针对安卓系统 发布的控件坐标获取工具来获取该第二控件的坐标。
[0035] 步骤S5使用基于界面坐标的测试工具,例如Monkey测试工具触发第二控件的事 件。该Monkey测试工具可以基于应用程序界面的坐标点来实现模拟用户点击屏幕、模拟键 盘按键输入、拖拽屏幕、按键等操作来触发该坐标点对应控件的事件。因此,该Monkey测试 工具需要先获取该第二控件的坐标,再根据该第二控件的坐标触发第二控件的事件。
[0036] 步骤S6中,例如该第二待测应用程序为所述手机聊天软件的客户端,所述第二控 件的事件为模拟点击该手机聊天软件的客户端的"登录"按钮控件。若无异常,该手机聊天 软件的客户端响应该"登录"按钮控件的点击事件的输出结果应该是该手机聊天软件的客 户端的登录界面,例如包括接收用户名和密码输入的对话框。
[0037] 在本实施例中,步骤S6可以对所述的输出结果截图,将所截的图像保存在终端的 存储器中。用户可以通过观察所截的图像来校验本次测试的测试结果。例如,若所截的图 像显示了该手机聊天软件的客户端的登录界面,则判断第一待测应用程序和第二待测应用 程序运行无异常。若所截的图像未显示该手机聊天软件的客户端的登录界面,则判断第一 待测应用程序或第二待测应用程序运行异常。
[0038] 第二实施例
[0039] 根据第一实施例的应用程序测试方法对第一待测应用程序和第二待测应用程序 进行测试,得出的测试结果可以反映在本次测试中,该第一待测应用程序和第二待测应用 程序是否发生异常。然而,一次测试的测试结果因为具有一定的偶然性而可能并不准确,并 且也无法根据这一次的测试结果判断第一待测应用程序和第二待测应用程序的可靠性。若 希望得到更准确的测试结果,则需要多次对第一待测应用程序和第二待测应用程序进行测 试。
[0040] 为了进一步解决上述问题,参阅图4所示,本发明第二实施例提供一种应用程序 测试方法,其相较于第一实施例的应用程序测试方法,进一步包括:
[0041] 步骤S7,控制所述步骤S3至步骤S6根据预设的第一循环次数循环执行,即当从步 骤S3执行至步骤S6后,控制流程返回步骤S3,直至从步骤S3到步骤S6循环执行的次数达 到该第一循环次数为止。该第一循环次数例如为500。
[0042] 步骤S8,在每一次执行所述步骤S3至步骤S6的过程中,控制所述步骤S5至步骤 S6根据预设的第二循环次数循环执行。即在一次执行步骤S3至步骤S6的过程中,当执行 完步骤S6后,控制流程返回步骤S5,当从步骤S5至步骤S6循环执行的次数达到该第二循 环次数时,再控制流程返回步骤S3,进行下一次执行步骤S3至步骤S6的过程。该第二循环 次数例如为1000。
[0043] 综上所述,本实施例的应用程序测试方法可以对第一待测应用程序和第二待测应 用程序进行循环多次的压力测试,使得到的测试结果更加准确,便于统计第一待测应用程 序和第二待测应用程序的可靠性。
[0044] 第三实施例
[0045] 参阅图5所示,本发明第三实施例提供一种应用程序测试装置100,其包括启动模 块101、第一获取模块102、第一触发模块103、第二获取模块104、第二触发模块105和保存 模块106。可以理解,上述的各模块是指计算机程序或者程序段,用于执行某一项或多项特 定的功能。此外,上述各模块的区分并不代表实际的程序代码也必须是分开的。
[0046] 启动模块101,用于获取第一待测应用程序的标识符,根据该标识符启动该第一待 测应用程序。该标识符可以为该第一待测应用程序的包名。
[0047] 第一获取模块102,用于获取该第一待测应用程序中待触发的至少一个第一控件。 具体而言,第一获取模块102先获取该第一待测应用程序的所有控件,然后从该第一待测 应用程序的所有控件中选择与预设的第一匹配信息对应的控件作为所述第一控件。
[0048] 第一触发模块103,用于触发该第一控件的事件。在本实施例中,可以使用基于界 面控件的测试工具,例如Robotium测试工具触发该第一控件的事件。
[0049] 第二获取模块104,用于当该第一控件的事件触发第二待测应用程序启动时,获取 该第二待测应用程序中待触发的至少一个第二控件的坐标。具体而言,第二获取模块104 先获取该第二待测应用程序的所有控件,然后从该第二待测应用程序的所有控件中选择与 预设的第二匹配信息对应的控件作为所述第二控件,再获取该第二控件的坐标。
[0050] 第二触发模块105,用于根据该第二控件的坐标触发第二控件的事件。在本实施例 中,可以使用基于界面坐标的测试工具,例如Monkey测试工具触发第二控件的事件。
[0051] 保存模块106,用于保存第二待测应用程序响应于该第二控件的事件的输出结果 以进行校验。在本实施例中,可以以截图方式保存第二待测应用程序响应于该第二控件的 事件的输出结果。
[0052] 对于以上各模块的具体工作过程,可进一步参考本发明第一实施例提供的应用程 序测试方法,在此不再重复。
[0053] 综上所述,本实施例的应用程序测试装置100结合基于界面控件的测试方法和基 于控件坐标的测试方法对应用程序进行自动化测试,既能实现跨应用程序的测试,又具有 较强的兼容性。
[0054] 第四实施例
[0055] 参阅图6所示,本发明第四实施例提供一种应用程序测试装置200,其相比于第三 实施例的应用程序测试装置100,进一步包括第一控制模块201和第二控制模块202。
[0056] 第一控制模块201,用于控制所述第一触发模块103至保存模块106根据预设的第 一循环次数循环执行。
[0057] 第二控制模块202,用于在每一次执行所述第一触发模块103至保存模块106的过 程中,控制所述第二触发模块105至保存模块106根据预设的第二循环次数循环执行。
[0058] 对于以上各模块的具体工作过程,可进一步参考本发明第二实施例提供的应用程 序测试方法,在此不再重复。
[0059] 综上所述,本实施例的应用程序测试装置200可以对第一待测应用程序和第二待 测应用程序进行循环多次的压力测试,使得到的测试结果更加准确,便于统计第一待测应 用程序和第二待测应用程序的可靠性。
[0060] 此外,本发明实施例还提供一种计算机可读存储介质,其内存储有计算机可执行 指令,上述的计算机可读存储介质例如为非易失性存储器例如光盘、硬盘、或者闪存。上述 的计算机可执行指令用于让计算机或者类似的运算装置完成上述的应用程序测试方法中 的各种操作。
[0061] 以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽 然本发明已以较佳实施例揭示如上,然而并非用以限定本发明,任何本领域技术人员,在不 脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变 化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施 例所作的任何简介修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
【权利要求】
1. 一种应用程序测试方法,其特征在于,该方法包括以下步骤: 启动步骤:获取第一待测应用程序的标识符,根据该标识符启动该第一待测应用程 序; 第一获取步骤:获取该第一待测应用程序中待触发的至少一个第一控件; 第一触发步骤:触发该第一控件的事件; 第二获取步骤:当该第一控件的事件触发第二待测应用程序启动时,获取该第二待测 应用程序中待触发的至少一个第二控件的坐标; 第二触发步骤:根据该第二控件的坐标触发第二控件的事件; 保存步骤:保存第二待测应用程序响应于该第二控件的事件的输出结果以进行校验。
2. 如权利要求1所述的应用程序测试方法,其特征在于,所述第一待测应用程序的标 识符为该第一待测应用程序的包名。
3. 如权利要求1所述的应用程序测试方法,其特征在于,所述第一获取步骤包括: 获取该第一待测应用程序的所有控件; 从该所有控件中选择与预设的第一匹配信息对应的控件作为所述第一控件。
4. 如权利要求1所述的应用程序测试方法,其特征在于,所述获取该第二待测应用程 序中待触发的至少一个第二控件的坐标的步骤包括: 获取该第二待测应用程序的所有控件; 从该所有控件中选择与预设的第二匹配信息对应的控件作为所述第二控件; 获取该第二控件的坐标。
5. 如权利要求1所述的应用程序测试方法,其特征在于,所述保存步骤包括: 以截图方式保存第二待测应用程序响应于该第二控件的事件的输出结果。
6. 如权利要求1所述的应用程序测试方法,其特征在于,还包括: 控制所述第一触发步骤至保存步骤根据预设的第一循环次数循环执行。
7. 如权利要求6所述的应用程序测试方法,其特征在于,还包括: 在每一次执行所述第一触发步骤至保存步骤的过程中,控制所述第二触发步骤至保存 步骤根据预设的第二循环次数循环执行。
8. -种应用程序测试装置,其特征在于,该装置包括: 启动模块,用于获取第一待测应用程序的标识符,根据该标识符启动该第一待测应用 程序; 第一获取模块,用于获取该第一待测应用程序中待触发的至少一个第一控件; 第一触发模块,用于触发该第一控件的事件; 第二获取模块,用于当该第一控件的事件触发第二待测应用程序启动时,获取该第二 待测应用程序中待触发的至少一个第二控件的坐标; 第二触发模块,用于根据该第二控件的坐标触发第二控件的事件; 保存模块,用于保存第二待测应用程序响应于该第二控件的事件的输出结果以进行校 验。
9. 如权利要求8所述的应用程序测试装置,其特征在于,所述第一待测应用程序的标 识符为该第一待测应用程序的包名。
10. 如权利要求8所述的应用程序测试装置,其特征在于,所述第一获取模块用于: 获取该第一待测应用程序的所有控件; 从该所有控件中选择与预设的第一匹配信息对应的控件作为所述第一控件。
11. 如权利要求8所述的应用程序测试装置,其特征在于,所述第二获取模块用于: 获取该第二待测应用程序的所有控件; 从该所有控件中选择与预设的第二匹配信息对应的控件作为所述第二控件; 获取该第二控件的坐标。
12. 如权利要求8所述的应用程序测试装置,其特征在于,所述保存模块用于: 以截图方式保存第二待测应用程序响应于该第二控件的事件的输出结果。
13. 如权利要求8所述的应用程序测试装置,其特征在于,还包括: 第一控制模块,用于控制所述第一触发步骤至保存步骤根据预设的第一循环次数循环 执行。
14. 如权利要求13所述的应用程序测试装置,其特征在于,还包括: 第二控制模块,用于在每一次执行所述第一触发步骤至保存步骤的过程中,控制所述 第二触发步骤至保存步骤根据预设的第二循环次数循环执行。
【文档编号】G06F11/36GK104156305SQ201310179522
【公开日】2014年11月19日 申请日期:2013年5月15日 优先权日:2013年5月15日
【发明者】羊耿阳, 崔艳婷, 党春艳 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1