首页 / 专利库 / 电脑安全 / 恶意广告 / 对app应用进行自动化测试的方法和装置

对app应用进行自动化测试的方法和装置

阅读:659发布:2020-05-20

专利汇可以提供对app应用进行自动化测试的方法和装置专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种对app应用进行自动化测试的方法和装置。所述方法包括:运行主控程序;在主控程序的控制下,将app应用安装至移动终端;在主控程序的控制下,对app应用进行自动化测试;在主控程序的控制下,获取app应用运行时所耗费的至少一项资源;在主控程序的控制下,扫描app应用,以判断该app应用是否包含 恶意广告 ;在主控程序的控制下,将app应用从移动终端卸载。根据本发明所提供的技术方案,能够提高对app应用进行测试的 质量 和效率。,下面是对app应用进行自动化测试的方法和装置专利的具体信息内容。

1.一种对app应用进行自动化测试的方法,包括:
运行主控程序;
在主控程序的控制下,将app应用安装至移动终端;如果不能将app应用安装至移动终端,则确定测试结果为不合格,并结束对该app应用的测试处理;
在主控程序的控制下,对app应用进行自动化测试;如果在对app应用进行自动化测试的过程中出现异常,则确定测试结果为不合格并结束对该app应用的测试处理;
在主控程序的控制下,获取app应用运行时所耗费的至少一项资源;将所获取的至少一项资源与各项资源相应的阈值进行比较以确定测试结果是否为不合格,如果确定测试结果为不合格,则结束对该app应用的测试处理;
在主控程序的控制下,扫描app应用,以判断该app应用是否包含恶意广告;如果确定该app应用中包含恶意广告,则确定测试结果为不合格,并结束对该app应用的测试处理;
在主控程序的控制下,将app应用从移动终端卸载;如果不能将app应用从移动终端卸载,则确定测试结果为不合格,并结束对该app应用的测试处理。
2.如权利要求1所述的方法,其特征在于,在主控程序的控制下对app应用进行自动化测试的步骤中,利用对app应用进行测试的测试工具以对app应用进行自动化测试。
3.如权利要求2所述的方法,其特征在于,在主控程序的控制下对app应用进行自动化测试的步骤中,利用monkeyrunner工具运行记录有输入命令的文件以对app应用进行自动化测试。
4.如权利要求2所述的方法,其特征在于,在主控程序的控制下,对app应用进行自动化测试的步骤中,利用monkey测试工具以对app应用进行自动化测试。
5.一种对app应用进行自动化测试的装置,包括:
主控单元;
app应用安装单元,在主控单元的控制下将app应用安装至移动终端;如果app应用安装单元不能将app应用安装至移动终端,则主控单元确定测试结果为不合格,并结束对该app应用的测试处理;
自动化测试单元,在主控单元的控制下对app应用进行自动化测试;如果在对app应用进行自动化测试的过程中出现异常,则主控单元确定测试结果为不合格并结束对该app应用的测试处理;
资源耗费获取单元,在主控单元的控制下获取app应用运行时所耗费的至少一项资源;
主控单元将资源耗费获取单元所获取的至少一项资源与各项资源相应的阈值进行比较以确定测试结果是否为不合格,如果主控单元确定测试结果为不合格,则结束对该app应用的测试处理;
广告扫描单元,在主控单元的控制下扫描app应用以判断该app应用是否包含恶意广告;
如果广告扫描单元确定该app应用中包含恶意广告,则主控单元确定测试结果为不合格,并结束对该app应用的测试处理;
app应用卸载单元,在主控单元的控制下将app应用从移动终端卸载;如果app应用卸载单元不能将app应用从移动终端卸载,则主控单元确定测试结果为不合格,并结束对该app应用的测试处理。
6.如权利要求5所述的装置,其特征在于,自动化测试单元利用对app应用进行测试的测试工具以对app应用进行自动化测试。
7.如权利要求6所述的装置,其特征在于,自动化测试单元利用monkeyrunner工具运行记录有输入命令的文件以对app应用进行自动化测试。
8.如权利要求6所述的装置,其特征在于,自动化测试单元利用monkey测试工具以对app应用进行自动化测试。

说明书全文

对app应用进行自动化测试的方法和装置

技术领域

[0001] 本发明涉及软件测试领域,更具体地说,本发明涉及一种对应用商店中发布的app应用进行自动化测试的方法和装置。

背景技术

[0002] 应用商店是由运营商、操作系统商、终端厂商等公司,为移动终端创建的应用程序下载服务,它允许用户从该商店中浏览、下载为移动终端开发的应用程序。通过应用商店,应用程序不再完全受制于制造商,使用者可以在线选择应用程序并将其安装在移动终端上。
[0003] 随着第三代移动通信的发展和诸如智能手机的移动终端的飞速进步,移动终端的app应用越来越广泛。由于移动终端对第三方软件的良好支持性和扩展性,目前多家移动终端生产商都纷纷推出了应用于移动终端的应用商店,如苹果的App Store、谷歌的Google Play(以前的Android Market)、中国移动的Mobile Market等。
[0004] 应用商店的广泛使用,造就了一大批独立的app应用开发者,应用商店里每天都有大量的新增app应用或原有app应用的更新版本。为了确保用户利益和个人信息安全,应用商店的管理方必须对这些app应用进行测试,将不合格的app应用剔除,这是一项非常耗时耗的工作。
[0005] 当前对应用商店中app应用的测试工作,绝大部分是由应用商店的管理人员通过人工完成。对每一款app应用来说,需要测试多个指标;此外,对每款app应用还需测试其对于不同移动终端机型、操作系统的不同版本(例如安卓系统的各个版本)的适配性。为了提高效率,现在已经出现了一些将app应用的部分测试工作进行自动化处理的方案,比如对app应用进行稳定性测试,以及安装及卸载环节,已经出现了自动化处理的方案;但是,尚未出现将app应用的所有测试流程全部进行自动化处理的方法。然而,app应用数量的急剧增长,亟需我们提高对app应用测试的效率和质里。

发明内容

[0006] 为了解决现有技术中存在的上述问题,本发明提供了一种对应用商店的app应用进行自动化测试的方法和装置。根据本发明的示例性实施例,可以通过对app应用下载并进行自动化测试,从而提高对app应用进行测试的效率和质量
[0007] 一种对软件质量进行评估的方法,包括:运行主控程序;在主控程序的控制下,将app应用安装至移动终端;在主控程序的控制下,对app应用进行自动化测试;在主控程序的控制下,获取app应用运行时所耗费的至少一项资源;在主控程序的控制下,扫描app应用,以判断该app应用是否包含恶意广告;在主控程序的控制下,将app应用从移动终端卸载。
[0008] 根据本发明的另一方面,如果不能将app应用安装至移动终端,则确定测试结果为不合格,并结束对该app应用的测试处理。
[0009] 根据本发明的另一方面,在主控程序的控制下对app应用进行自动化测试的步骤中,利用对app应用进行测试的测试工具以对app应用进行自动化测试,其中,如果在对app应用进行自动化测试的过程中出现异常,则确定测试结果为不合格并结束对该app应用的测试处理。
[0010] 根据本发明的另一方面,在主控程序的控制下对app应用进行自动化测试的步骤中,利用monkeyrunner工具运行记录有输入命令的文件以对app应用进行自动化测试。
[0011] 根据本发明的另一方面,在主控程序的控制下,对app应用进行自动化测试的步骤中,利用monkey测试工具以对app应用进行自动化测试。
[0012] 根据本发明的另一方面,将所获取的至少一项资源与各项资源相应的阈值进行比较以确定测试结果是否为不合格,如果确定测试结果为不合格,则结束对该app应用的测试处理。
[0013] 根据本发明的另一方面,提供了一种对软件质量进行评估的装置,包括:主控单元;app应用安装单元,在主控单元的控制下将app应用安装至移动终端;自动化测试单元,在主控单元的控制下对app应用进行自动化测试;资源耗费获取单元,在主控单元的控制下获取app应用运行时所耗费的至少一项资源;广告扫描单元,在主控单元的控制下扫描app应用以判断该app应用是否包含恶意广告;app应用卸载单元,在主控单元的控制下将app应用从移动终端卸载。
[0014] 根据本发明的另一方面,如果app应用安装单元不能将app应用安装至移动终端,则主控单元确定测试结果为不合格,并结束对该app应用的测试处理。
[0015] 根据本发明的另一方面,自动化测试单元利用对app应用进行测试的测试工具以对app应用进行自动化测试,其中,如果在对app应用进行自动化测试的过程中出现异常,则主控单元确定测试结果为不合格并结束对该app应用的测试处理。
[0016] 根据本发明的另一方面,自动化测试单元利用monkeyrunner工具运行记录有输入命令的文件以对app应用进行自动化测试。
[0017] 根据本发明的另一方面,自动化测试单元利用monkey测试工具以对app应用进行自动化测试。
[0018] 根据本发明的另一方面,主控单元将资源耗费获取单元所获取的至少一项资源与各项资源相应的阈值进行比较以确定测试结果是否为不合格,如果主控单元确定测试结果为不合格,则结束对该app应用的测试处理。
[0019] 根据本发明的另一方面,如果广告扫描单元确定该app应用中包含恶意广告,则主控单元确定测试结果为不合格,并结束对该app应用的测试处理。根据本发明的另一方面,如果app应用卸载单元不能将app应用从移动终端卸载,则主控单元确定测试结果为不合格,并结束对该app应用的测试处理。
[0020] 根据上述提供的对应用商店的app应用进行自动化测试的方法和系统,可以通过对app应用下载并进行自动化测试,提高对app应用进行测试的效率和质量,增强用户体验,并解放应用商店管理方的人力。附图说明
[0021] 图1示出了本发明的各个实施例提供的app应用自动化测试方法和装置所涉及的一种实施环境的结构示意图。
[0022] 图2为根据本发明示例性实施例的对app应用进行自动化测试的方法的流程图
[0023] 图3为根据本发明示例性实施例的对app应用进行自动化测试的装置的框图

具体实施方式

[0024] 为使本发明的特征及优点得到更清楚的了解,以下结合附图对本发明的示例性实施例进行详细说明。应当理解,这里给出的实施例只是示例性的,并不作为本发明的限制。
[0025] 图1示出了本发明各个实施例提供的app应用自动化测试方法和装置所涉及的一种实施环境的结构示意图,该实施环境包括至少一个服务器120,至少一个用于执行测试工作的测试客户端140,该测试客户端140与至少一个用于执行测试工作的移动终端180相连;以及至少一个上传客户端160。
[0026] 服务器120通过有线或者无线网络与用于执行测试工作的测试客户端140和上传客户端160相连。
[0027] 服务器120可以是一台或者多台服务器,还可以是一个计算中心。也就是说,服务器可以由一台服务器实现,也可以由多台服务器组合实现,每台服务器承担相同或者不同的功能,比如有用于注册和登录的服务器、用于保存待测试的app应用的服务器、用于已发布的app应用的服务器等等;服务器120也可以采用云计算中心实现,云计算中心是一整片服务集群所形成的虚拟计算平台。
[0028] 上传客户端是拥有app应用上传权限的用户,可以将开发完成的app应用上传给服务器120,然后由服务器120将该app应用进行病毒和安全性扫描后,建立下载链接,并将该下载链接发布。
[0029] 用于执行测试工作的测试客户端140,通过下载链接,从服务器120下载app应用并进行测试。需要注意的是,用于执行测试工作的客户端140与上传客户端160必须是不同的个体。
[0030] 测试客户端140可以例如利用用户名和密码登陆服务器120后,从服务器120下载待测试的app应用。作为示例,对上传客户端160上传的app应用,服务器120可对app应用进行病毒与安全性扫描,以剔除存在病毒的app应用,从而获得不存在病毒的待测试的app应用。服务器120将通过病毒与安全性扫描的app应用存储于待测试的app应用数据库中;针对每个待测试的app应用,服务器120建立一相应的下载链接,所述下载链接对执行测试工作的测试客户端140是可访问的,而对其余访问用户,包括上传客户端160在内,均是不可访问的。作为示例,对于存在操作系统版本要求的app应用,服务器120在下载链接处注明该信息。
[0031] 客户端140通过服务器120建立的下载链接,将待测试的app应用下载至本地。若服务器120在下载链接处注明该app应用的操作系统版本要求,测试客户端140在下载时,需考虑与其相连的用于执行测试工作的移动终端180的操作系统版本,并下载满足条件的app应用。测试结束后,测试客户端140将app应用的测试结果返回给服务器120,具体可通过电子邮件、登录服务器后填写日志等方式实现。
[0032] 测试客户端140与至少一个用于执行测试工作的移动终端180相连。作为示例,移动终端180可以包括但不限于手机、平板电脑等;移动终端180与测试客户端140连接的方式可为有线连接(如通过USB)或无线连接方式(如通过wifi);为测试app应用的可移植性,该至少一个移动终端180,彼此之间应具有不同的设备型号和不同的操作系统版本。
[0033] 图2示出了根据本发明示例性实施例对app应用进行自动化测试的方法的流程图。
[0034] 根据本发明示例性实施例,在步骤201中,在测试客户端140上运行主控程序,该主控程序用于控制各个步骤,以执行对app应用的自动化测试。作为示例,该主控程序可用iava编写完成。
[0035] 在步骤202中,主控程序控制app应用安装程序,将测试客户端140下载的app应用安装至用于执行测试工作的移动终端180。作为示例,主控程序可以控制app应用安装程序在移动终端180上安装一个app应用,也可以控制app应用安装程序在移动终端180上批量安装多个app应用。作为示例,该app应用安装程序可以为可执行app应用的安装的程序,例如,该app应用安装程序可以为adb程序。在此步骤中,如果app应用不能正常安装,则确定该app应用的测试结果为不合格,并结束对该app应用的测试处理。
[0036] 在步骤203中,主控程序控制自动化测试程序,对安装后的app应用进行自动化测试。这里,如果对app应用进行自动化测试时出现异常,例如,app应用的某项功能不能正常操作甚至是app应用出现崩溃,则确定测试结果为不合格并结束对该app应用的测试处理。
[0037] 作为示例的一种实现方式,当移动终端180运行于Android系统下时,可利用主控程序控制monkeyrunner工具,通过monkeymnner工具运行记录有输入命令的文件以对app应用进行自动化测试,例如,可运行利用python语言编写该记录有输入命令的文件,monkeyrunner工具通过读取该文件中的输入命令向Android系统发送指令,调用Android系统的API函数执行操作。可执行的操作的内容可以包括但不限于按键、截屏、拖曳等。
[0038] 作为示例的另一种实现方式,当移动终端180运行于Android系统下时,可利用主控程序控制adb程序,通过adb程序控制monkey测试工具,向安装后的app应用发送随机指令以进行自动化测试,判断该app应用是否存在崩溃现象;被发送的随机指令的内容可以包括但不限于按键输入、触摸屏输入、手势输入等。
[0039] 在步骤204中,在进行自动化测试后,获取该app应用运行时所耗费的资源,例如CPU、内存、耗电量、流量等的信息。这里,可以对每个app应用在运行时所耗费的各项资源预先设置一个阈值,将获取的这些信息与该预先设定的阈值相比较,若任一项获取的信息超过预先设定的阈值,则确定测试结果为不合格,并结束对该app应用的测试处理。作为示例,可将各项耗费资源的信息存储于一预先设定的文档中。作为示例,获取app应用运行时所耗费资源的方式,可通过adb shell命令登录基于Android系统的移动终端的Linux系统后,利用top指令获取这些信息。
[0040] 在步骤205中,主控程序控制扫描程序对app应用的特征库文件进行扫描,例如可通过确定是否存在广告特征库中所包含的关键字,来判断该app应用是否包含恶意广告。例如,当该app应用运行于Android系统时,该特征库文件为根目录res下的manifest文件。在这个过程中,如果确定app应用中包含恶意广告,则确定该相应app应用的测试结果为不合格,并结束对该app应用的测试处理。
[0041] 在步骤206中,主控程序利用app应用卸载程序,将结束测试的app应用从移动终端180卸载;其中,主控程序可以控制app应用卸载程序从移动终端180卸载一个app应用,也可以控制app应用卸载程序从移动终端180批量卸载多个应用。作为示例,该app应用卸载程序也可以为adb程序。这里,如果有app应用不能卸载,则确定相应的app应用的测试结果为不合格,并结束对该app应用的测试处理。
[0042] 如果在执行步骤202至206之后app应用的测试处理正常结束,也即在上述步骤的执行过程中没有出现被确定为不合格的测试结果,可确定该app应用的测试结果为合格。
[0043] 这里,需要注意,本发明示出的步骤只是作为示例,本领域技术人员通过阅读说明书可以明白,可以以不同的顺序来执行本发明。
[0044] 图3示出了根据本发明示例性实施例对app应用进行自动化测试的装置的框图,所述装置包括:主控单元301、app应用安装单元302、自动化测试单元303、广告扫描单元304、资源耗费获取单元305、app应用卸载单元306。
[0045] 在本发明示例性实施例中,主控单元301用于控制其他单元以执行对app应用的自动化测试。
[0046] 主控单元301控制app应用安装单元302将测试客户端140下载的app应用安装至用于执行测试工作的移动终端180。作为示例,主控单元301可以控制app应用安装单元302在移动终端180上安装一个app应用,也可以控制app应用安装单元302在移动终端180上批量安装多个app应用。这里,如果app应用安装单元302不能正常安装app应用,则主控单元301确定该app应用的测试结果为不合格,并结束对该app应用的测试处理。
[0047] 在主控单元301的控制下,自动化测试单元303利用对app应用进行测试的测试工具对安装后的app应用进行自动化测试。这里,如果自动化测试单元303对app应用进行自动化测试时出现异常,例如,app应用的某项功能不能正常操作甚至是app应用出现崩溃,则主控单元301确定测试结果为不合格并结束对该app应用的测试处理。
[0048] 作为示例的一种实现方式,当移动终端180运行于Android系统下时,自动化测试单元303可以在主控单元301的控制下利用monkeyrunner工具运行记录有输入命令的文件以对app应用进行测试,例如,可运行利用python语言编写该记录有输入命令的文件,monkeyrunner工具通过读取该文件中的输入命令向Android系统发送指令,调用Android系统的API函数执行操作。可执行的操作的内容可以包括但不限于按键、截屏、拖曳等。
[0049] 作为示例的另一种实现方式,当移动终端180运行于Android系统下时,自动化测试单元303可在主控单元301通过adb程序的控制下,利用monkey测试工具,向安装后的app应用发送随机指令以进行测试。
[0050] 资源耗费获取单元304在主控单元301的控制下获取该app应用运行时所耗费的资源,例如CPU、内存、耗电量、流量等的信息。这里,作为示例,对每个app应用在运行时所耗费的各项资源预先设置一个阈值,将获取的这些信息与该预先设定的阈值相比较,若任一项获取的信息超过预先设定的阈值,则主控单元301确定测试结果为不合格,并结束对该app应用的测试处理。作为示例,可将各项耗费资源的信息存储于一预先设定的文档中。
[0051] 广告扫描单元305在主控单元301的控制下对app应用的特征库文件进行扫描,例如可通过确定是否存在广告特征库中所包含的关键字,来判断该app应用是否包含恶意广告。在这个过程中,如果广告扫描单元305确定app应用中包含恶意广告,则主控单元301确定测试结果为不合格,并结束对该app应用的测试处理。
[0052] 在主控单元301的控制下,app应用卸载单元306将app应用从移动终端卸载。其中,如果不能将app应用从移动终端卸载,则主控单元301确定测试结果为不合格,并结束对该app应用的测试处理。其中,主控单元301可以控制app应用卸载单元306从移动终端180卸载一个app应用,也可以控制app应用卸载单元306从移动终端180批量卸载多个应用。这里,如果有app应用不能卸载,则主控单元301确定相应的app应用的测试结果为不合格,并结束对该app应用的测试处理。
[0053] 如果在针对某个app应用的整个测试过程中没有出现被主控单元301确定为不合格的测试结果,主控单元301可确定该app应用的测试结果为合格。
[0054] 本发明提出了一种app应用的自动化方案,通过客户端从服务器下载app应用并执行自动化测试,可剔除不合格的app应用,避免用户因下载质量不佳甚至恶意的app应用而对移动终端的性能、资源耗费乃至信息泄漏带来较差影响,提高对app应用测试的效率和质量。
[0055] 尽管已经详细描述了本发明及其优势,但应该理解,可以在不背离所附权利要求限定的本发明主旨和范围的情况下,进行各种不同的改变、替换和更改;而且,本发明的范围并不仅限于本说明书中描述的示例性实施例,而本发明的范围由权利要求限定。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈