一种对应用进行测试的方法和测试装置的制造方法

文档序号:10534710阅读:306来源:国知局
一种对应用进行测试的方法和测试装置的制造方法
【专利摘要】本发明实施例涉及测试领域,公开了一种对应用进行测试的方法,该方法包括:对待测应用的行为进行抽象;将所抽象的应用行为拆分为原子测试对象;依据所述原子测试对象来生成测试用例;创建与服务器的长连接;以及自动执行所述测试用例以实现对所述待测应用的测试。该方法能够对应用进行自动测试,提高了测试质量和效率,避免漏测的发生,并能够覆盖手动测试不能覆盖到的特定场景的测试。
【专利说明】
一种对应用进行测试的方法和测试装置
技术领域
[0001]本发明实施例涉及测试领域,具体地,涉及一种对应用进行测试的方法和测试装置。
【背景技术】
[0002]在开发安装在终端(例如手机、ipad、电视等)上的应用时,都需要对所开发的应用的功能进行测试。目前,常规的测试方法都是人工手动测试。也即,准备所开发应用所针对的终端(例如电视或手机、ipad等),在该终端上安装待测应用,启动安装在该终端上的待测应用,通过手动方式来校验该待测应用的功能是否正常,从而也间接测试服务器的功能是否正常。例如,假设开发了一款将在手机上使用的应用,该应用需要先登录才能体验其具体功能,则在测试时需要先在手机上安装待测应用,然后手动登陆该应用以测试该应用的登录功能是否正常,在手机上手动输入用户名、密码以测试如果输入的用户名、密码不正确服务器如何返回,以及登录成功后服务器返回什么数据,等等。这些测试项目在目前都是在所开发应用所针对的手机上手动进行测试的。
[0003]现有的测试方法存在很多隐患,例如:
[0004]?测试用例不充分,导致漏测;
[0005]?如果所开发的应用的功能有任何一点改动,都需要回归测试一次,这太依赖于测试工程师的职业素质和工作状态;
[0006]?测试工程师执行测试用例时,需要手动操作安装待测应用的终端,开发工程师定位问题、确认效果时也都需要手动操作安装待测应用的终端,因此效率非常低下;
[0007]?有些特定场景(如网络频繁切换、多终端并发操作等),手动测试并不能完全覆盖到。

【发明内容】

[0008]本发明实施例的目的是提供一种对应用进行测试的方法和测试装置,其能够对应用进行自动测试,提高了测试质量和效率,避免漏测的发生,并能够覆盖手动测试不能覆盖到的特定场景的测试。
[0009]为了实现上述目的,本发明实施例提供一种对应用进行测试的方法,该方法包括:对待测应用的行为进行抽象;将所抽象的应用行为拆分为原子测试对象;依据所述原子测试对象来生成测试用例;创建与服务器的长连接;以及自动执行所述测试用例以实现对所述待测应用的测试。
[0010]本发明还提供一种测试装置,该测试装置包括:抽象模块,用于对待测应用的行为进行抽象;拆分模块,用于将所抽象的应用行为拆分为原子测试对象;测试用例生成模块,用于依据所述原子测试对象来生成测试用例;长连接建立模块,用于在所述测试用例生成模块生成了测试用例之后创建所述测试装置与服务器的长连接;以及测试用例执行模块,用于在所述长连接建立模块创建了长连接之后自动执行所述测试用例以实现对所述待测应用的测试。
[0011]通过上述技术方案,由于根据本发明的对应用进行测试的方法和测试装置能够首先对待测应用的行为进行抽象并将所抽象的应用行为拆分为原子测试对象,继而依据所述原子测试对象来生成测试用例,因此其能够实现对应用的自动测试,提高测试质量和效率,避免漏测的发生,并能够覆盖手动测试不能覆盖到的特定场景的测试。另外,根据本发明的方法和测试装置不需要在所开发应用所针对的终端(例如手机)上执行,而是能够在例如电脑上执行,因此,根据本发明的方法和测试装置还实现了模拟诸如手机之类的终端对待测应用的功能进行测试的目的,而且在测试过程中并不需要在电脑上安装待测应用,而是用测试用例来模拟待测应用的各种行为。
[0012]本发明的其它特征和优点将在随后的【具体实施方式】部分予以详细说明。
【附图说明】
[0013]附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的【具体实施方式】一起用于解释本发明,但并不构成对本发明的限制。在附图中:
[0014]图1是根据本发明一种实施方式的对应用进行测试的方法的流程图;
[0015]图2是根据本发明一种实施方式的测试装置的示意框图;以及
[0016]图3是根据本发明又一实施方式的测试装置的示意框图。
【具体实施方式】
[0017]以下结合附图对本发明的【具体实施方式】进行详细说明。应当理解的是,此处所描述的【具体实施方式】仅用于说明和解释本发明,并不用于限制本发明。
[0018]如图1所示,根据本发明一种实施方式的对应用进行测试的方法包括以下步骤:
[0019]步骤S1、对待测应用的行为进行抽象。
[0020]以待测应用是视频通话应用为例。通常,我们在使用视频通话应用进行视频通话时,需要执行以下操作才能成功进行视频通话,也即首先向视频通话应用的登陆界面中输入用户名和密码以便登陆到该视频通话应用中,然后拨号以便与视频通话的对象建立连接,之后与其进行视频通话的对象做出应答,然后双方就能够进行视频通话了,在视频通话结束后双方挂断视频通话,然后就可以登出视频通话应用;如果在与第一个人进行了视频通话之后还希望与第二个人进行视频通话,则可以向服务器发送心跳信息以便保持与服务器的长连接。
[0021]针对上面描述的视频通话中需要涉及的操作,根据本发明的方法在对待测视频通话应用进行测试时可以将该视频通话应用的行为抽象为包括以下行为:a)登录;b)呼叫;c)应答连接;d)应答呼叫;e)挂断;f)登出;g)交互视频备选互联网协议(IP);以及h)心跳发送等等。这样就能够在后续步骤中对待测视频通话应用的各个行为进行测试。
[0022]另外,在对待测应用的行为进行抽象时,应该覆盖待测应用的所有行为,以便进行更全面的测试,避免漏测现象的发生。
[0023]步骤S2、将所抽象的应用行为拆分为原子测试对象。
[0024]所谓的原子测试对象,就是无法再继续拆分的测试对象,如果再继续进行拆分的话,该原子测试对象就不是一个完整的对象了。这样,就能够确保通过基础类使得每一个应用行为都可校验且被覆盖到,避免漏测现象的发生。
[0025]步骤S3、依据所述原子测试对象来生成测试用例。
[0026]所述测试用例用于模拟各种场景下待测应用的各种行为,以达到自动测试的目的。
[0027]例如,对于某款游戏应用而言,假设原子测试对象是按钮,则可以通过设计测试用例来测试按钮的属性,例如按钮的显示状态、按钮的位置、按钮的颜色等等。再例如,在设计对按钮的显示状态进行测试的测试用例时,还可以找出所有会影响按钮的显示状态的因素,例如鼠标点击、初始状态、当前窗口是否是焦点窗口等。这样,就能够进行更全面的测试,避免漏测现象的发生。
[0028]步骤S4、创建与服务器的长连接。
[0029]通过创建长连接(例如,套接字(socket)长连接),就能够实现与服务器的消息交互,并为后续测试用例的自动执行做好准备。所谓的长连接,是指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包。
[0030]步骤S5、自动执行所述测试用例,以实现对所述待测应用的测试。
[0031 ] 至此,就实现了对应用的功能的自动测试。
[0032]另外,本领域技术人员能够意识到,根据本发明的对应用的功能进行测试的方法不需要在所开发应用所针对的终端(例如手机)上执行,例如,如果正在开发一款在手机上使用的应用,则根据本发明的方法不需要在手机上对所开发应用的功能进行测试,而是可以在例如电脑上通过模拟手机的行为来测试所开发应用的功能。因此,根据本发明的方法还实现了模拟诸如手机之类的终端对待测应用的功能进行测试的目的,而且在测试过程中并不需要在电脑上安装待测应用,而是用测试用例来模拟待测应用的各种行为。此外,由于是在电脑上模拟手机的行为以对待测应用进行测试,因此,根据本发明的方法还能够实现测试用例的便利添加和补充,从而在应用的功能有任何改动时,不需要像现有技术那样进行回归测试,而是可以通过添加测试用例的方式方便地进行测试,大大提高了测试质量和效率。
[0033]优选地,所述测试用例能够逐条或批量执行。例如,可以通过采用命令行的形式来逐条或批量执行所述测试用例。这样,就使得根据本发明的方法能够支持通用自动化测试框架的基本功能。
[0034]优选地,根据本发明的对应用进行测试的方法能够支持测试数据初始化、结果校验和测试数据清理。这使得根据本发明的方法能够满足通用自动化测试框架的基本要求。
[0035]优选地,根据本发明的对应用进行测试的方法还可以包括:将所述测试用例注册到测试包中,从而便于测试用例的封装与集成,也便于其他测试工程师调用该测试用例。
[0036]优选地,根据本发明的对应用进行测试的方法还可以包括:将测试过程和测试结果输出到屏幕上和/或日志文件中。这样,就便于报错和测试人员进行问题定位及查看。
[0037]优选地,根据本发明的对应用进行测试的方法还可以包括:自动分析统计测试结果并自动生成测试结果报表。这样,就便于测试工程师和开发工程师查看和定位报错信息。
[0038]本发明还提供一种测试装置,如图2所示,该测试装置包括抽象模块21、拆分模块22、测试用例生成模块23、长连接建立模块24以及测试用例执行模块25。以下对这些模块进行详细描述。
[0039]抽象模块21用于对待测应用的行为进行抽象。以待测应用是视频通话应用为例。通常,我们在使用视频通话应用进行视频通话时,需要执行以下操作才能成功进行视频通话,也即首先向视频通话应用的登陆界面中输入用户名和密码以便登陆到该视频通话应用中,然后拨号以便与视频通话的对象建立连接,之后与其进行视频通话的对象做出应答,然后双方就能够进行视频通话了,在视频通话结束后双方挂断视频通话,然后就可以登出视频通话应用;如果在与第一个人进行了视频通话之后还希望与第二个人进行视频通话,则可以向服务器发送心跳信息以便保持与服务器的长连接。针对上面描述的视频通话中需要涉及的操作,抽象模块21可以将该视频通话应用的行为抽象为包括以下行为:a)登录;b)呼口H ;c)应答连接;d)应答呼叫;e)挂断;f)登出;g)交互视频备选互联网协议(IP);以及h)心跳发送等等。这样就能够为根据本发明的测试装置对待测视频通话应用的各个行为进行测试做好准备。
[0040]拆分模块22用于将所抽象的应用行为拆分为原子测试对象。所谓的原子测试对象,就是无法再继续拆分的测试对象,如果再继续进行拆分的话,该原子测试对象就不是一个完整的对象了。这样,就能够确保通过基础类使得每一个应用行为都可校验且被覆盖到,避免漏测现象的发生。
[0041]测试用例生成模块23用于依据所述原子测试对象来生成测试用例。所述测试用例用于模拟各种场景下待测应用的各种行为,以达到自动测试的目的。例如,对于某款游戏应用而言,假设原子测试对象是按钮,则可以通过设计测试用例来测试按钮的属性,例如按钮的显示状态、按钮的位置、按钮的颜色等等。再例如,在设计对按钮的显示状态进行测试的测试用例时,还可以找出所有会影响按钮的显示状态的因素,例如鼠标点击、初始状态、当前窗口是否是焦点窗口等。这样,就能够进行更全面的测试,避免漏测现象的发生。
[0042]长连接建立模块24用于在所述测试用例生成模块23生成了测试用例之后创建所述测试装置与服务器的长连接。通过创建长连接(例如,套接字(socket)长连接),就能够实现根据本发明的测试装置与服务器的消息交互,并为后续测试用例执行模块25自动执行测试用例做好准备。所谓的长连接,是指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包。
[0043]测试用例执行模块25用于自动执行所述测试用例以实现对所述待测应用的测试。
[0044]优选地,所述测试用例执行模块25可以逐条或批量地执行所述测试用例。例如,测试用例执行模块25可以通过采用命令行的形式来逐条或批量执行所述测试用例。这样,就使得根据本发明的测试装置能够支持通用自动化测试框架的基本功能。
[0045]优选地,根据本发明的测试装置能够支持测试数据初始化、结果校验和测试数据清理。这使得根据本发明的测试装置能够满足通用自动化测试框架的基本要求。
[0046]优选地,如图3所示,根据本发明的测试装置还可以包括注册模块26,用于将所述测试用例注册到测试包中,从而便于测试用例的封装与集成,也便于其他测试工程师调用该测试用例。
[0047]优选地,如图3所示,根据本发明的测试装置还可以包括输出模块27,用于将测试过程和测试结果输出到屏幕上和/或日志文件中。这样,就便于报错和测试人员进行问题定位及查看。
[0048]优选地,如图3所示,根据本发明的测试装置还可以包括分析模块28,用于自动分析统计测试结果并自动生成测试结果报表。这样,就便于测试工程师和开发工程师查看和定位报错信息。
[0049]以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
[0050]另外需要说明的是,在上述【具体实施方式】中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
[0051]此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
【主权项】
1.一种对应用进行测试的方法,该方法包括: 对待测应用的行为进行抽象; 将所抽象的应用行为拆分为原子测试对象; 依据所述原子测试对象来生成测试用例; 创建与服务器的长连接;以及 自动执行所述测试用例以实现对所述待测应用的测试。2.根据权利要求1所述的方法,其中,所述测试用例能够逐条或批量地执行。3.根据权利要求2所述的方法,其中,所述测试用例通过采用命令行的形式来逐条或批量执行。4.根据权利要求1所述的方法,该方法还包括:将所述测试用例注册到测试包中。5.根据权利要求1所述的方法,该方法还包括:将测试过程和测试结果输出到屏幕上和/或日志文件中。6.根据权利要求1所述的方法,该方法还包括:自动分析统计测试结果并自动生成测试结果报表。7.一种测试装置,该测试装置包括: 抽象模块,用于对待测应用的行为进行抽象; 拆分模块,用于将所抽象的应用行为拆分为原子测试对象; 测试用例生成模块,用于依据所述原子测试对象来生成测试用例; 长连接建立模块,用于在所述测试用例生成模块生成了测试用例之后创建所述测试装置与服务器的长连接;以及 测试用例执行模块,用于在所述长连接建立模块创建了长连接之后自动执行所述测试用例以实现对所述待测应用的测试。8.根据权利要求7所述的测试装置,其中,所述测试用例执行模块逐条或批量地执行所述测试用例。9.根据权利要求8所述的测试装置,其中,所述测试用例执行模块采用命令行的形式来逐条或批量执行所述测试用例。10.根据权利要求7所述的测试装置,该测试装置还包括注册模块,用于将所述测试用例注册到测试包中。11.根据权利要求7所述的测试装置,该测试装置还包括输出模块,用于将测试过程和测试结果输出到屏幕上和/或日志文件中。12.根据权利要求7所述的测试装置,该测试装置还包括分析模块,用于自动分析统计测试结果并自动生成测试结果报表。
【文档编号】G06F11/36GK105893242SQ201510924655
【公开日】2016年8月24日
【申请日】2015年12月11日
【发明人】彭亮, 段宇航
【申请人】乐视致新电子科技(天津)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1