测试方法及装置制造方法

文档序号:6503804阅读:151来源:国知局
测试方法及装置制造方法
【专利摘要】本发明提出一种测试方法及装置,其方法包括:根据待测应用设置测试代码;运行所述测试代码,并通过所述测试代码调用上层接口模拟人工操作;通过所述测试代码记录调用上层接口后的评估数据;对评估数据进行分析,并输出测试结果。本发明的测试方法及装置通过测试代码直接调用上层接口来模拟人的操作,实现了自动化测试的同时,不需要引入第三方框架,且整个测试过程迎合应用程序的功能特点,方便维护,并减少了测试中出错的概率,可以提高测试的稳定性。而且,测试代码是针对相应应用程序进行量身定制的,这种直接调用上层接口的测试方式,任何UI变化(比如各种弹出框、广告浮窗等)都不会对测试产生困扰,大大降低了测试出错的几率。
【专利说明】测试方法及装置

【技术领域】
[0001] 本发明涉及测试技术,特别涉及一种测试方法及装置。

【背景技术】
[0002] 近年来,移动终端技术发展日新月异。以手机为典型代表的移动终端在一定程 度上体现了通信技术的发展,对手机而言,其从早期的GSM (Global System for Mobile communications,全球移动通信系统)、CDMA(Code Division Multiple Access,码分多址), 逐渐发展到目前正在使用的3G (3rd Generation,第三代移动通信技术),并朝着蓄势待发 的第四代移动通信网络技术发展。通信技术的发展相应地促进了手机的推广使用,手机的 功能也不再局限于打电话,发短信,而是扩展到手机拍照摄像、上网收发电子邮件等。
[0003] 为了检测移动终端的性能,为研发工作提供可靠数据,现有技术需要对移动终端 进行测试。
[0004] 对移动终端测试,一般是指软件测试,传统的软件测试通常采用手动人工测试方 式。但是手工测试存在不少弊端,例如测试精确度低、人力成本较高等。
[0005] 另外,随着移动终端技术的发展,基于新的技术核心的移动终端不断涌现,其中, 配备I0S系统的移动终端更是对软件测试提出了更高的要求。I0S是苹果公司开发的手持 设备操作系统。在I0S的沙盒机制限制下(沙盒机制是I0S中的一种安全体系,规定应用程 序只能在为该应用创建的文件夹内读取文件,不可以访问其它地方的内容),常见的I0S自 动化测试一般有以下两种方式:
[0006] (1)基于UI (User Interface,用户界面)的自动化测试方法:其是应用第三方框 架,对应用程序基于UI或坐标点击进行自动操作。
[0007] (2)基于图片匹配的自动化测试方法:其通过预设图片,并自动寻找对应图片区域 进行自动操作。
[0008] 但是,现有的自动化测试方式仍然存在一些缺陷:
[0009] (1)基于Π的自动化测试方法:对于Π会经常变动的产品,需要实时更新脚本, 后期维护成本较高;并且,其是通过第三方框架来实现测试,而第三方框架并不是针对特定 的应用程序产品,测试过程中难免会出现错误,稳定性较差。
[0010] (2)基于图片匹配的自动化测试方法:对于Π会经常变动的产品,需要实时更新 预设图片,后期维护成本较高;而且,图片的匹配会涉及像素、分辨率等复杂的因素,图片匹 配错误会影响软件测试的准确率。


【发明内容】

[0011] 本发明的目的是提供一种测试方法及装置,以解决现有的自动化测试技术稳定性 差、测试错误率高、维护不便的问题。
[0012] 本发明提出一种测试方法,包括:
[0013] 根据待测应用设置测试代码;
[0014] 运行所述测试代码,并通过所述测试代码调用上层接口模拟人工操作;
[0015] 通过所述测试代码记录调用上层接口后的评估数据;
[0016] 对评估数据进行分析,并输出测试结果。
[0017] 本发明还提出一种测试装置,包括:
[0018] 代码设置单元,用于根据待测应用设置测试代码;
[0019] 运行单元,用于运行所述测试代码,并通过所述测试代码调用上层接口模拟人工 操作;
[0020] 评估数据记录单元,用于通过所述测试代码记录调用上层接口后的评估数据;
[0021] 分析单元,用于对评估数据进行分析,并输出测试结果。
[0022] 相对于现有技术,本发明的有益效果是:
[0023] 1、本发明的测试方法及装置,针对应用来设置测试代码,使整个测试过程迎合应 用程序的功能特点,大大降低了测试中出错的概率,具有很好的稳定性。
[0024] 2、本发明的测试方法及装置,通过测试代码直接调用上层接口来模拟人的操作, 任何UI变化(比如各种弹出框、广告浮窗等)都不会对测试产生困扰,提高了测试准确性,且 具有很好的通用性。
[0025] 3、本发明的测试方法及装置,不需要引入第三方框架,鉴于第三方框架都是由供 应商编译提供的,用户不便于维护,且通常需要定时更新,而本发明实施例所述的测试代码 是根据特定应用来设置的,方便维护,且不需要经常更新,降低了维护成本。
[0026] 当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
[0027] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段, 而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够 更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。

【专利附图】

【附图说明】
[0028] 图1为本发明实施例的第一种测试方法的流程图;
[0029] 图2为本发明实施例的第二种测试方法的流程图;
[0030] 图3为本发明实施例的第三种测试方法的流程图;
[0031] 图4为本发明实施例的第一种测试装置的结构图;
[0032] 图5为本发明实施例的第二种测试装置的结构图。

【具体实施方式】
[0033] 为更进一步阐述本发明达成预定发明目的所采取的技术手段及功效,以下结合 附图及较佳实施例,对依据本发明提出的测试方法及装置其【具体实施方式】、方法、步骤及功 效,详细说明如后。
[0034] 有关本发明的前述及其他技术内容、特点及功效,在以下配合参考图式的较佳实 施例详细说明中将可清楚的呈现。通过【具体实施方式】的说明,当可对本发明为达成预定目 的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图式仅是提供参考与说 明之用,并非用来对本发明加以限制。
[0035] 请参见图1,其为本发明实施例的第一种测试方法的流程图,其包括以下步骤:
[0036] S101,根据待测应用设置测试代码。
[0037] 所述的应用即是指应用程序。所述测试代码是根据应用的功能特点来设置的,针 对不同的应用,测试代码的运行步骤可能是不同的。可见,测试代码完全迎合应用程序的运 行特点,大大减少了测试中出错的概率,可以提高测试的稳定性。
[0038] S102,运行所述测试代码,并通过所述测试代码调用上层接口模拟人工操作。
[0039] 运行所述测试代码时,可以先根据测试代码生成应用程序安装包,然后在真机上 运行测试代码的应用程序安装包,从而进行自动测试。
[0040] 所述的上层接口是指直接响应用户操作行为的接口,或是用户对应用界面进行操 作时需要调用的接口。例如用户在浏览器地址栏输入URL地址后要访问一个网站时,要调 用的visitURL接口;又如用户要进入浏览器的阅读模式时,要调用的enterReader接口。 上层接口通过测试代码中编写的接口调用函数来调用,由于不同应用程序的功能也不同, 所以测试不同的应用时调用的上层接口也可能不同。
[0041] S103,通过所述测试代码记录调用上层接口后的评估数据。
[0042] 所述评估数据可以通过截图或录像来获取,由于调用上层接口后,应用界面通常 会发生变化,所以此时的应用界面图像可以作为测试的评估数据。
[0043] 当评估数据采用截图的方式来获得时,可以通过测试代码中编入的截图函数截取 调用上层接口后应用界面的图片,并将截取的图片进行保存,然后在测试代码运行完成后, 将每一次调用上层接口后截取的图片一起作为评估数据输出。
[0044] 当评估数据采用录像的方式来获得时,在测试代码运行过程中,对应用界面图像 进行录像,并在测试代码运行完成后,按照测试代码中各个上层接口调用函数对应的运行 时间,对录像数据进行分帧,从而形成多个表示调用上层接口后应用界面的图片,然后将这 些图片作为评估数据输出。
[0045] S104,对评估数据进行分析,并输出测试结果。
[0046] 对评估数据的分析可以根据实际需要来进行。例如对浏览器调用visitURL接口 后的应用界面图片进行分析时,可以先预存一个程序正常运行时打开响应URL网址的图 片,然后将测试时获得的图片与预存的图片进行比对,如果两者一致,说明应用运行正常, 反之则说明应用运行异常。又如对阅读器调用enterReader (进入阅读模式)接口后的应 用界面图片进行分析时,可以检测测试时获得的图片上空白区域所占比例,如果空白区域 所占比例超过一个阈值,说明阅读模式进入失败,反之则说明阅读器运行正常。
[0047] 本发明实施例的方法通过测试代码直接调用上层接口来模拟人的操作,实现了自 动化测试的同时,不需要引入第三方框架,且整个测试过程迎合应用程序的功能特点,方便 维护,并减少了测试中出错的概率,可以提高测试的稳定性。而且,测试代码是针对相应应 用程序进行量身定制的,这种直接调用上层接口的测试方式,任何UI变化(比如各种弹出 框、广告浮窗等)都不会对测试产生困扰,大大降低了测试出错的几率。
[0048] 请参见图2,其为本发明实施例的第二种测试方法的流程图,其包括以下步骤:
[0049] S201,根据待测应用设置测试代码。
[0050] S202,设置测试代码的运行循环次数。例如,所述循环次数可以用index值在表 示,ind ex=1000表示测试开始后,测试代码要循环运行1000遍。
[0051] S203,获取当前运行次数。首次运行测试代码时,运行次数为0。本步骤的目的是 提高测试的效率。例如当测试代码运行到200次,即index=200的时候,由于电脑死机或断 电而造成测试中断,如果没有记录当前的运行次数,则势必要从第0次开始重新运行测试 代码,浪费了大量的时间。而获取了当前运行次数之后,只需要从第201次开始接着运行测 试代码,这样就提高了测试效率。
[0052] S204,按照当前运行次数运行所述测试代码,并通过所述测试代码调用上层接口 模拟人工操作。
[0053] S205,通过所述测试代码记录调用上层接口后的评估数据。
[0054] S206,判断测试代码的当前运行次数是否达到运行循环次数,若是则进入步骤 S208,若否则进入步骤S207。
[0055] S207,在所述测试代码运行完成后,将当前运行次数加一并保存,并返回步骤 S204。例如当前运行的是第index = 200次,则本次测试代码运行完毕后,将index = 201 次保存到本地数据库。
[0056] S208,对评估数据进行分析,并输出测试结果。
[0057] 以浏览器的"阅读器"功能为例,具体说明本发明的测试方法,请参见图3,其包括 以下步骤:
[0058] S301,根据待测应用设置测试代码。
[0059] S302,设置测试代码的运行循环次数。
[0060] S303,启动浏览器。
[0061] S304,获取当前运行次数,并按照当前运行次数运行测试代码。
[0062] S305,读入待测网址。待测网址可以预存在本地的txt文件中。为了提高测试精 度,每一遍运行的测试代码可以对应不同的待测网站,即待测网址与index的值一一对应。 如果前一步骤获取的当前index = 200,则可以从本地txt文件中读取第200个待测网址开 始测试。
[0063] S306,调用visitURL接口打开待测网站。即通过浏览器打开相应的待测网站。
[0064] S307,对调用visitURL接口后的应用界面截图并保存。由于打开网页可能需要一 些加载时间,所以可以在调用visitURL接口后加载30秒后进行截图。
[0065] S308,调用toolBar接口查看是否存在"阅读器"按钮。若存在,则进入步骤S309 ; 若不存在,则进入步骤S311。
[0066] S3〇9,调用enterReader接口进入阅读模式。
[0067] S310,对调用enterReader接口后的应用界面截图并保存。
[0068] S311,判断当前次数是否小于运行循环次数。若是,则进入步骤S312 ;若否则进入 步骤S313。
[0069] S312,将当前运行次数加一后保存至本地。并返回步骤S304。
[0070] S313,将保存的图片与正常运行下的预存图片进行比对分析。如果截取的图片与 预存图片一致,则说明浏览器的阅读器运行正常,反之则说明运行异常。
[0071] S314,输出测试结果。
[0072] 请参见图4,其为本发明实施例的第一种测试装置的结构图,其包括代码设置单元 41、运行单元42、评估数据记录单元43、分析单元44。运行单元42与代码设置单元41相 连,评估数据记录单元43与运行单元42相连,分析单元44与评估数据记录单元43相连。
[0073] 代码设置单元41用于根据待测应用设置测试代码。所述测试代码是根据应用的 功能特点来设置的,针对不同的应用,代码设置单元41可以设置不同运行步骤的测试代 码。因此测试代码可以完全迎合应用程序的运行特点,大大减少了测试中出错的概率,可以 提1?测试的稳定性。
[0074] 运行单元42用于运行所述测试代码,并通过所述测试代码调用上层接口模拟人 工操作。所述的上层接口是指直接响应用户操作行为的接口,或是用户对应用界面进行操 作时需要调用的接口。上层接口通过测试代码中编写的接口调用函数来调用,由于不同应 用程序的功能也不同,所以测试不同的应用时调用的上层接口也可能不同。
[0075] 评估数据记录单元43用于通过所述测试代码记录调用上层接口后的评估数据。 所述评估数据可以通过截图或录像来获取,由于调用上层接口后,应用界面通常会发生变 化,所以此时的应用界面图像可以作为测试的评估数据。当评估数据采用截图的方式来获 得时,评估数据记录单元43可以通过测试代码中编入的截图函数截取调用上层接口后应 用界面的图片,并将截取的图片进行保存,然后在测试代码运行完成后,将每一次调用上层 接口后截取的图片一起作为评估数据输出。当评估数据采用录像的方式来获得时,评估数 据记录单元43可以在测试代码运行过程中,对应用界面图像进行录像,并在测试代码运行 完成后,按照测试代码中各个上层接口调用函数对应的运行时间,对录像数据进行分帧,从 而形成多个表示调用上层接口后应用界面的图片,然后将这些图片作为评估数据输出。
[0076] 分析单元44用于对评估数据进行分析,并输出测试结果。分析单元44对评估数 据的分析可以根据实际需要来进行。例如对浏览器调用visitURL接口后的应用界面图片 进行分析时,可以先预存一个程序正常运行时打开响应URL网址的图片,然后将测试时获 得的图片与预存的图片进行比对,如果两者一致,说明应用运行正常,反之则说明应用运行 异常。又如对阅读器调用enterReader (进入阅读模式)接口后的应用界面图片进行分析 时,可以检测测试时获得的图片上空白区域所占比例,如果空白区域所占比例超过一个阈 值,说明阅读模式进入失败,反之则说明阅读器运行正常。
[0077] 请参见图5,其为本发明实施例的第二种测试装置的结构图。与图4的实施例相 t匕,本实施例的测试装置还包括循环次数设置单元45、当前次数获取单元46以及次数记录 单元47,本实施例的评估数据记录单元43还包括截图子单元431、图片保存子单元432、录 像子单元433、分帧子单元434、图片获取子单元435、评估数据输出子单元436。循环次数 设置单元45与代码设置单元41相连,当前次数获取单元46分别与运行单元42及次数记 录单元47相连,次数记录单元47与运行单元42相连,
[0078] 循环次数设置单元45用于在代码设置单元41设置好测试代码之后,设置所述测 试代码的运行循环次数。
[0079] 当前次数获取单元46用于在运行单元42运行所述测试代码之前,获取当前运行 次数,以使运行单元42按照当前运行次数运行所述测试代码。
[0080] 次数记录单元47用于在运行单元42每运行完一遍测试代码后,将当前运行次数 加一并保存。
[0081] 本实施例中,评估数据记录单元43可以通过截图或录像两种方式中的一种或两 种来记录评估数据。
[0082] 采用截图的方式记录评估数据时:由截图子单元431在运行单元42通过所述测 试代码调用上层接口后,对应用界面进行截图;然后由图片保存子单元432将截图子单元 431每次截取的图片进行保存;最后在测试代码整个循环运行完成后,通过数据输出子单 元436将保存的图片作为评估数据输出给分析单元44。
[0083] 采用录像的方式记录评估数据时:由录像子单元433在运行单元42运行所述测试 代码时进行实时录像;在测试代码整个循环运行完成后,由分帧子单元434按照测试代码 中各个上层接口调用函数对应的运行时间,对录像数据进行分帧,形成多个图片;接着通过 图片获取子单元435获取调用上层接口后相应应用界面的图片;最后通过评估数据输出子 单元436将获取子单元435获取的图片作为评估数据输出给分析单元44。
[0084] 本发明实施例的装置通过测试代码直接调用上层接口来模拟人的操作,实现了自 动化测试的同时,不需要引入第三方框架,且整个测试过程迎合应用程序的功能特点,方便 维护,并减少了测试中出错的概率,可以提高测试的稳定性。而且,测试代码是针对相应应 用程序进行量身定制的,这种直接调用上层接口的测试方式,任何UI变化(比如各种弹出 框、广告浮窗等)都不会对测试产生困扰,大大降低了测试出错的几率。
[0085] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明实施例 可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理 解,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一 个非易失性存储介质(可以是⑶-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计 算机设备(可以是个人计算机,服务器,或网络设备等)执行本发明实施例各个实施场景所 述的方法。
[0086] 以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽 然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人 员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰 为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对 以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
【权利要求】
1. 一种测试方法,其特征在于,包括: 根据待测应用设置测试代码; 运行所述测试代码,并通过所述测试代码调用上层接口模拟人工操作; 通过所述测试代码记录调用上层接口后的评估数据; 对评估数据进行分析,并输出测试结果。
2. 如权利要求1所述的测试方法,其特征在于,所述通过所述测试代码记录调用上层 接口后的评估数据的步骤包括: 在通过所述测试代码调用上层接口后,对应用界面进行截图; 对每次调用上层接口后截取的图片进行保存; 在所述测试代码运行完成后,输出保存的图片作为评估数据。
3. 如权利要求1所述的测试方法,其特征在于,所述通过所述测试代码记录调用上层 接口后的评估数据的步骤包括:在所述测试代码运行时进行录像。
4. 如权利要求3所述的测试方法,其特征在于,所述在所述测试代码运行时进行录像 的步骤之后包括: 在测试代码运行完成后,将录像数据进行分帧,形成多个图片; 获取调用上层接口后相应的图片; 输出获取的图片作为评估数据。
5. 如权利要求2或4所述的测试方法,其特征在于,所述对评估数据进行分析,并输出 测试结果的步骤包括: 将输出的图片与预存的正确运行的相应界面图进行比对,并将比对结果作为测试结果 进行输出。
6. 如权利要求1所述的测试方法,其特征在于, 在所述运行所述测试代码的步骤之前还包括:设置所述测试代码的运行循环次数; 所述运行所述测试代码的步骤包括:获取当前运行次数,并按照当前运行次数运行所 述测试代码; 在所述测试代码运行完成后,将当前运行次数加一并保存。
7. -种测试装置,其特征在于,包括: 代码设置单元,用于根据待测应用设置测试代码; 运行单元,用于运行所述测试代码,并通过所述测试代码调用上层接口模拟人工操 作; 评估数据记录单元,用于通过所述测试代码记录调用上层接口后的评估数据; 分析单元,用于对评估数据进行分析,并输出测试结果。
8. 如权利要求7所述的测试装置,其特征在于,所述评估数据记录单元进一步包括: 截图子单元,用于在通过所述测试代码调用上层接口后,对应用界面进行截图; 图片保存子单元,用于对每次调用上层接口后截取的图片进行保存; 评估数据输出子单元,用于在所述测试代码运行完成后,输出保存的图片作为评估数 据。
9. 如权利要求7所述的测试装置,其特征在于,所述评估数据记录单元进一步包括: 录像子单元,用于在所述测试代码运行时进行录像。
10. 如权利要求9所述的测试装置,其特征在于,所述评估数据记录单元进一步包括: 分帧子单元,用于在测试代码运行完成后,将录像数据进行分帧,形成多个图片; 图片获取子单元,用于获取调用上层接口后相应的图片; 评估数据输出子单元,用于输出获取的图片作为评估数据。
11. 如权利要求8或10所述的测试装置,其特征在于,所述分析单元将输出的图片与预 存的正确运行的相应界面图进行比对,并将比对结果作为测试结果进行输出。
12. 如权利要求7所述的测试装置,其特征在于,所述测试装置还包括: 循环次数设置单元,用于在运行所述测试代码之前,设置所述测试代码的运行循环次 数; 当前次数获取单元,用于在运行所述测试代码之前,获取当前运行次数,并使所述运行 单元按照当前运行次数运行所述测试代码; 次数记录单元,用于在所述测试代码运行完成后,将当前运行次数加一并保存。
【文档编号】G06F11/36GK104216826SQ201310220942
【公开日】2014年12月17日 申请日期:2013年6月5日 优先权日:2013年6月5日
【发明者】张佳, 丁如敏 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1