基于Android系统的自动化测试方法及装置的制造方法

文档序号:10512088阅读:571来源:国知局
基于Android系统的自动化测试方法及装置的制造方法
【专利摘要】本发明公开的基于Android系统的自动化测试方法,包括:根据预先接收的测试用例生成作用于待测软件的操作指令;按照所述操作指令对所述待测软件执行相应的操作;接收所述待测软件响应所述操作后的输出信息;根据所述输出信息创建测试报告。本发明还公开了一种基于Android系统的自动化测试装置。与现有技术相比,在Android系统权限限制的情况下,本发明的技术方案,能够实现软件的自动化测试,不仅能够提高软件测试的效率,而且还能够提高测试结果的准确性。
【专利说明】
基于Andr o i d系统的自动化测试方法及装置
技术领域
[0001]本发明涉及测试技术领域,更具体而言,涉及一种基于Android系统的自动化测试方法及装置。
【背景技术】
[0002]软件是使用程序语言编制得到的操作工具,为了保证软件正常运行,并且保证运行时达到预期的效果,在投入使用之前,通常对软件的功能及性能进行测试,以发现程序错误,衡量软件质量,并对其是否能够满足设计要求进行评估。鉴于软件没有具体的物理形态,只能通过运行状况来了解其功能、特性和质量,因此,通常的测试方法为通过在相应操作系统基础上操作软件,检验每种条件下的实际输出结果和预期结果的差别,从而验证和确认软件的功能和性能。
[0003]具体的,在软件编制完成后,测试人员根据软件的功能和运行条件设计测试用例,其中,测试用例包括测试内容、测试条件及预期结果等信息。在完成测试用例的设计之后,基于软件的操作系统搭建测试环境,并将测试用例转换成测试脚本,通过运行测试脚本得到实际输出结果。对比实际输出结果和预期结果,并整理二者的差别形成测试报告,以便于开发人员根据测试报告的内容修正软件存在的问题。
[0004]根据上述描述可知,软件测试应当基于运行软件的操作系统进行,而Android系统设置有严格的操作权限,搭建测试环境及运行测试脚本等操作,在Android系统所能够授权的权限内根本无法运行,因此,测试应用于Android系统的软件时,仅能够通过人工的方式将测试用例逐条在软件上操作,并通过人工分析、整理实际输出结果,形成测试报告,从而造成测试效率低下,而且测试结果的准确性也较差。

【发明内容】

[0005]有鉴于此,本发明实施例提供了一种基于Android系统的自动化测试方法及装置,能够解决由于权限限制,采用人工操作测试软件造成的测试效率低下,测试结果准确性差的问题。
[0006]第一方面,本发明实施例提供了一种基于Android系统的自动化测试方法,包括:根据预先接收的测试用例生成作用于待测软件的操作指令;按照所述操作指令对所述待测软件执行相应的操作;接收所述待测软件响应所述操作后的输出信息;根据所述输出信息创建测试报告。
[0007]优选的,所述根据预先接收的测试用例生成作用于待测软件的操作指令,包括:获取所述测试用例对应的操作控件的控件属性;根据所述控件属性确定所述操作控件的操作方法和控件标识;生成与所述操作方法和所述控件标识相匹配的虚拟操作指令。
[0008]优选的,所述按照所述操作指令对所述待测软件执行相应的操作,包括:从所述待测软件的程序中查找所述控件标识;在所述控件标识所确定的功能区域内执行与所述操作指令相应的虚拟操作。
[0009]优选的,所述按照所述操作指令对所述待测软件执行相应的操作,包括:根据所述控件标识确定所述控件当前的位置信息;在所述位置标识确定的位置执行与所述操作指令相应的虚拟操作。
[0010]优选的,所述根据所述输出信息创建测试报告,包括:读取与所述输出信息相对应的标准信息;运算所述输出信息和所述标准信息,得到二者的差量信息;判断所述差量信息是否符合预设条件;如果所述差量信息符合所述预设条件,则将所述测试用例的测试结果标记为运行正常;如果所述差量信息不符合所述预设条件,则将所述测试用例的测试结果标记为存在缺陷。
[0011]优选的,在所述根据预先接收的测试用例生成作用于待测软件的操作指令之前,还包括:接收所述测试用例的场景用例;按照预设格式存储所述场景用例,得到所述测试用例。
[0012]第二方面,本发明实施例还提供了一种基于Android系统的自动化测试装置,包括:生成模块,用于根据预先接收的测试用例生成作用于待测软件的操作指令;执行模块,用于按照所述生成模块所生成的操作指令对所述待测软件执行相应的操作;接收模块,用于接收所述待测软件响应所述执行模块执行操作后的输出信息;创建模块,用于根据所述接收模块所接收的输出信息创建测试报告。
[0013]优选的,所述生成模块包括获取单元、确定单元和生成单元,其中,所述获取单元,用于获取所述测试用例对应的操作控件的控件属性;所述确定单元,用于根据所述控件属性确定所述操作控件的操作方法和控件标识;所述生成单元,用于生成与所述操作方法和所述控件标识相匹配的虚拟操作指令。
[0014]优选的,所述执行模块包括查找单元和执行单元,其中,所述查找单元,用于从所述待测软件的程序中查找所述控件标识;所述执行单元,用于在所述控件标识所确定的功能区域内执行与所述操作指令相应的虚拟操作。
[0015]优选的,所述确定单元,还用于根据所述控件标识确定所述控件当前的位置信息;所述执行单元,还用于在所述位置标识确定的位置执行与所述操作指令相应的虚拟操作。
[0016]优选的,所述创建模块包括读取单元、运算单元、判断单元和标记单元,其中,所述读取单元,用于读取与所述输出信息相对应的标准信息;所述运算单元,用于运算所述输出信息和所述标准信息,得到二者的差量信息;所述判断单元,用于判断所述差量信息是否符合预设条件;所述标记单元,用于在所述差量信息符合所述预设条件时,将所述测试用例的测试结果标记为运行正常;所述标记单元,还用于在所述差量信息不符合所述预设条件时,将所述测试用例的测试结果标记为存在缺陷。
[0017]优选的,还包括存储模块,其中,所述接收模块,还用于接收所述测试用例的场景用例;所述存储模块,用于按照预设格式存储所述接收模块所接收的场景用例,得到所述测试用例。
[0018]由以上技术方案可知,本发明实施例所提供的基于Android系统的自动化测试方法及装置,在接收预先输入的测试用例之后,根据测试用例生成作用于待测软件的操作指令,并按照测试用例对待测软件执行相应的操作,然后,接收待测软件响应操作后的输出信息,根据输出信息创建测试报告。可以看出,该过程中“生成操作指令”、“对待测软件进行操作”、“接收输出信息”和“创建测试报告”的操作所涉及的权限,均为Android系统所能够授权的权限。即,本发明实施例的技术方案,测试过程的每个步骤所需的权限,均在Android系统所能够授权的权限内,从而与现有技术相比,在Android系统权限限制的情况下,本发明实施例的技术方案,能够实现软件的自动化测试,不仅能够提高软件测试的效率,而且还能够提高测试结果的准确性。
【附图说明】
[0019]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本发明的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本发明的主旨。
[0020]图1为本发明实施例提供的基于Android系统的自动化测试方法的方法流程图;
[0021]图2为本发明实施例提供的基于Android系统的自动化测试装置的结构示意图。
【具体实施方式】
[0022]众所周知,Android系统基于Linux内核运行,而Android与Linux分别设置有严格的安全及权限机制。其中,Linux系统权限是指对相关系统文件的访问和执行权限,只有系统级别的用户或者用户组才拥有该权限。而在Andr ο i d系统运行的APP (Applicati on,应用程序)的程序文件,实质上运行在虚拟机上,因此,对应的权限是Android系统的权限,即使获取到root权限也无法执行和访问系统文件。然而,软件测试主要是基于操作系统的性能来测试软件的功能和性能,导致搭建测试框架以及测试软件与系统的兼容性等过程,需要访问和执行系统文件,由于该过程受到权限的限制,造成基于Android系统的自动化测试无法执行,因而提出了本发明实施例的技术方案。
[0023]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0024]为了在Android系统权限限制的条件下,实现软件的自动化测试,本发明实施例设置有测试平台,该测试平台运行过程中所使用到的权限,仅为Android系统层级的权限,不涉及Linux系统层级的权限,因此,基于Android系统能够实现自动化测试。其中,测试平台执行测试的过程详见下述实施例的描述。
[0025]请参见图1,图1为本发明实施例提供的基于Android系统的自动化测试方法的方法流程图,所述方法包括以下步骤:
[0026]步骤SlOl:根据预先接收的测试用例生成作用于待测软件的操作指令。
[0027]其中,在测试之前,预先将测试平台安装到智能终端,所述测试平台为技术人员预先开发的用于自动化测试的APP。需要指出的,由于Android系统默认的权限为,APP无任何权限操作其他APP,当APP需要操作其他APP时,可以申请相应的权限。因此,在安装测试平台时,系统会检测测试平台请求的权限,并根据请求为测试平台分配相应的权限。
[0028]此外,在测试之前,测试人员预先根据待测软件的操作场景设计测试用例,为便于描述,本发明实施例简称为场景用例。其中,场景用例可以包括测试内容、测试条件和待测软件按照测试条件运行的预期结果。为了记录场景用例,为自动化测试提供测试依据,测试平台可以按照一定格式接收场景用例,并将其翻译为测试平台能够识别的程序语言,以作为测试用例。需要说明的是,测试平台可以通过表格存储翻译后的测试内容、测试条件及预期结果,以便于维护三者的对应关系。
[0029]为了保证测试的操作过程在被授予的权限内,本发明实施例的技术方案,通过对待测软件进行虚拟操作来执行测试,因此,测试平台需要对应每个测试用例生成操作指令,而所生成的操作指令与所作用的控件相适应,例如,如果是“提交”或者“发送”类的button控件,则操作指令为虚拟点击操作指令;如果是text类的控件,则执行输入相应内容的虚拟操作指令。
[0030]根据操作指令与控件的关系,具体的,测试平台首先可以从测试用例中获取本条测试用例对应操作控件的控件属性,根据控件属性确定该控件的操作方法及控件标识,然后,可以根据控件的操作方法和控件标识生成对应该控件的虚拟操作指令。
[0031]需要指出的是,本方案中所述的待测软件,可以是基于Android系统的应用软件或者系统软件,本方案对此不做限制。
[0032]由本步骤的描述可知,本方案通过设置第三方测试软件,在Android系统能够授予的权限范围内,将测试用例转换为虚拟操作指令,从而为自动化测试提供技术支持。
[0033]步骤S102:按照所述操作指令对所述待测软件执行相应的操作。
[0034]其中,根据上述描述可知,操作指令由测试平台生成,而操作指令对应操作的是待测软件,由于测试平台与待测软件是相互独立的两个程序,测试平台无法直接调用操作指令对待测软件执行虚拟操作,因此,本方案中,在对待测软件执行虚拟操作时,可以通过调用API(Applicat1n Programming Interface,应用程序编程接口)对待测软件执行虚拟操作。通过调用API接口执行虚拟操作的过程,为本领域技术人员所熟知的技术,本发明实施例此处不再赘述。
[0035]需要说明的是,控件根据操作方式可以分为两类,下面对两类控件的操作方式分别进行说明。
[0036]当控件的操作方式为输入操作时,测试平台首先读取待测软件的程序,并从待测软件的程序中查找相应的控件标识,在查找到控件标识之后,可以根据控件标识确定控件的功能区域,在本实施例中,也就是输入内容的区域,然后,将预设的内容写入输入区域。
[0037]需要说明的是,必要情况下,执行虚拟输入操作时,预设内容的格式应当符合控件的要求,例如,待测软件为邮箱,对应的控件为“发件人”,且对发送功能进行常规测试时,那么预设内容应当符合邮箱地址的格式,并且应当为合法的邮箱地址。当然,当测试待测邮箱的其他功能时,可以相应的设置符合测试条件的输入内容,本发明实施例此处不再详述。
[0038]此外,如果控件的操作方式为点击操作,测试平台可以根据控件标识确定该控件显示在屏幕上的位置信息,然后,在位置信息确定的位置处执行虚拟点击操作。例如,当控件为“播放”按钮时,其标识包括“播放”字样,可以通过坐标的方式确定“播放”按钮在屏幕上显示的位置,并在所确定的位置处执行虚拟点击操作。
[0039]本步骤所述的方案,通过对待测软件执行虚拟操作,能够在被授权的权限内完全代替人工执行自动化操作,从而能够大大的提高测试的效率,节省人力资源。
[0040 ]步骤S103:接收所述待测软件响应所述操作后的输出信息。
[0041]其中,当测试平台对待测软件执行虚拟操作后,待测软件被触发运行并产生运行结果,如果待测软件运行正常,则可以向测试平台发送运行正常的输出信息,运行正常时的输出信息可以设置为标识“I”或者其他标识,本发明实施例对此不做限制;如果待测软件运行不正常,则可以向测试平台发送运行错误的错误代码。例如,当测试邮箱的发送功能时,如果发送成功,则可以向测试平台发送标识“I”;如果不填写收件人的邮箱地址,那么邮箱运行错误,则向测试平台发送错误代码550。
[0042]需要说明的是,由于待测软件与测试平台为相互独立的软件,所以待测软件向测试平台发送输出信息时,也可以调用Andr ο i d系统的通信接口实现,例如,API接口。
[0043]步骤S104:根据所述输出信息创建测试报告。
[0044]其中,根据上述描述可知,测试平台所接收的场景用例中包括预期运行结果,当测试平台接收场景用例之后,将其翻译为与预期运行结果对应的值或者错误代码,并将该值或者错误代码记录为正常运行应当输出的标准信息。
[0045]例如,测试邮箱的发送功能时,测试条件为发件人和收件人均填写正确,那么预期测试结果应当为正常发送,则将该条测试用例的标准信息翻译为“I”;如果测试条件为发件人填写正确,收件人填写错误或者不填写,那么,该条测试预期的运行结果应当为发送失败,且失败原因是收件人错误或者不存在,而此类错误对应的错误代码是550,那么,测试平台可以将本条测试用例对应的标准信息记录为550。当然,上述仅为本发明的一个优选示例,如果所测试的软件是其他软件,可以相应的设置标准信息的内容。
[0046]测试平台在接收到待测软件响应虚拟操作的输出信息之后,读取该输出信息对应的标准信息,并对输出信息和标准信息进行运算,得到二者的差量信息,判断差量信息是否符合预设条件,如果差量信息符合预设条件,则认为待测软件的运行结果与预期结果相同,该测试条件下的实际运行状况正常,将本条测试用例的测试结果标记为运行正常;如果差量信息不符合预设条件,则认为待测软件的运行结果与预期结果不符,该测试条件下的运行状况有误,相关的程序存在错误,将本条测试用例的测试结果标记为存在缺陷,并将记录有测试结果的测试报告向测试人员展示,以便于相关技术人员对存在缺陷的部分进行修复。
[0047]需要说明的是,上述预设条件可以为差量信息等于零,或者差量信息的绝对值小于一定值,具体的,可以根据需求进行设定,本发明实施例对此不做限制。
[0048]此外,由于测试报告需要向相关技术人员展示,以便于相关技术人员对待测软件的缺陷进行修复,因此,本发明实施例中,当测试结果为存在缺陷时,可以通过字体的颜色、大小或者形式,将该条测试结果突出显示。例如,运行正常的测试结果使用黑色字体记录,存在缺陷的测试结果可以使用红色字体记录,从而能够突出存在缺陷的测试结果,更有利于相关技术人员对缺陷进行修复。
[0049]由本实施例的描述可知,本发明实施例的技术方案,测试过程的每个步骤所需的权限,均在Android系统所能够授权的权限内,从而与现有技术相比,在Android系统权限限制的情况下,本发明实施例的技术方案,能够实现软件的自动化测试,不仅能够提高软件测试的效率,而且还能够提高测试结果的准确性。
[0050]与上述实现方法相对应的,本发明实施例还提供了一种基于Android系统的自动化测试装置,请参见图2,图2为本发明实施例提供的基于Android系统的自动化测试装置的结构示意图。
[0051]所述装置包括:生成模块11、执行模块12、接收模块13和创建模块14,其中,生成模块11,用于根据预先接收的测试用例生成作用于待测软件的操作指令;执行模块12,用于按照所述生成模块11所生成的操作指令对所述待测软件执行相应的操作;接收模块13,用于接收所述待测软件响应所述执行模块12执行操作后的输出信息;创建模块14,用于根据所述接收模块13所接收的输出信息创建测试报告。
[0052]根据上述实施例的描述,在一个具体的实施例中,生成模块11包括获取单元、确定单元和生成单元,其中,所述获取单元,用于获取所述测试用例对应的操作控件的控件属性;所述确定单元,用于根据所述控件属性确定所述操作控件的操作方法和控件标识;所述生成单元,用于生成与所述操作方法和所述控件标识相匹配的虚拟操作指令。
[0053]在另一个实施例中,执行模块12具体包括查找单元和执行单元,其中,所述查找单元,用于从所述待测软件的程序中查找所述控件标识;所述执行单元,用于在所述控件标识所确定的功能区域内执行与所述操作指令相应的虚拟操作。
[0054]需要说明的是,在上述实施例的基础上,在另一个实施例中,所述确定单元,还用于根据所述控件标识确定所述控件当前的位置信息;所述执行单元,还用于在所述位置标识确定的位置执行与所述操作指令相应的虚拟操作。
[0055]此外,创建模块14具体包括读取单元、运算单元、判断单元和标记单元,其中,所述读取单元,用于读取与所述输出信息相对应的标准信息;所述运算单元,用于运算所述输出信息和所述标准信息,得到二者的差量信息;所述判断单元,用于判断所述差量信息是否符合预设条件;所述标记单元,用于在所述差量信息符合所述预设条件时,将所述测试用例的测试结果标记为运行正常;在另一个实施例中,所述标记单元,还用于在所述差量信息不符合所述预设条件时,将所述测试用例的测试结果标记为存在缺陷。
[0056]在上述实施例的基础上,在另一个实施例中,所述装置还包括存储模块,在本实施例中,接收模块13,还用于接收所述测试用例的场景用例;存储模块,用于按照预设格式存储所述接收模块所接收的场景用例,得到所述测试用例。
[0057]所述装置中各个模块和单元的功能和作用的实现过程详见上述方法中对应的实现过程,在此不再赘述。
[0058]综合上述,本发明实施例所提供的基于Android系统的自动化测试方法及装置,在接收预先输入的测试用例之后,根据测试用例生成作用于待测软件的操作指令,并按照测试用例对待测软件执行相应的操作,然后,接收待测软件响应操作后的输出信息,根据输出信息创建测试报告。可以看出,该过程中“生成操作指令”、“对待测软件进行操作”、“接收输出信息”和“创建测试报告”的操作所涉及的权限,均为Android系统所能够授权的权限。即,本发明实施例的技术方案,测试过程的每个步骤所需的权限,均在Android系统所能够授权的权限内,从而与现有技术相比,在Android系统权限限制的情况下,本发明实施例的技术方案,能够实现软件的自动化测试,不仅能够提高软件测试的效率,而且还能够提高测试结果的准确性。
[0059]以上所述仅是本发明的【具体实施方式】,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
【主权项】
1.一种基于Android系统的自动化测试方法,其特征在于,包括: 根据预先接收的测试用例生成作用于待测软件的操作指令; 按照所述操作指令对所述待测软件执行相应的操作; 接收所述待测软件响应所述操作后的输出信息; 根据所述输出信息创建测试报告。2.如权利要求1所述的方法,其特征在于,所述根据预先接收的测试用例生成作用于待测软件的操作指令,包括: 获取所述测试用例对应的操作控件的控件属性; 根据所述控件属性确定所述操作控件的操作方法和控件标识; 生成与所述操作方法和所述控件标识相匹配的虚拟操作指令。3.如权利要求1或2所述的方法,其特征在于,所述按照所述操作指令对所述待测软件执行相应的操作,包括: 从所述待测软件的程序中查找所述控件标识; 在所述控件标识所确定的功能区域内执行与所述操作指令相应的虚拟操作。4.如权利要求1或2所述的方法,其特征在于,所述按照所述操作指令对所述待测软件执行相应的操作,包括: 根据所述控件标识确定所述控件当前的位置信息; 在所述位置标识确定的位置执行与所述操作指令相应的虚拟操作。5.如权利要求1所述的方法,其特征在于,所述根据所述输出信息创建测试报告,包括: 读取与所述输出信息相对应的标准信息; 运算所述输出信息和所述标准信息,得到二者的差量信息; 判断所述差量信息是否符合预设条件; 如果所述差量信息符合所述预设条件,则将所述测试用例的测试结果标记为运行正常; 如果所述差量信息不符合所述预设条件,则将所述测试用例的测试结果标记为存在缺陷。6.如权利要求1所述的方法,其特征在于,在所述根据预先接收的测试用例生成作用于待测软件的操作指令之前,还包括: 接收所述测试用例的场景用例; 按照预设格式存储所述场景用例,得到所述测试用例。7.一种基于Android系统的自动化测试装置,其特征在于,包括: 生成模块,用于根据预先接收的测试用例生成作用于待测软件的操作指令; 执行模块,用于按照所述生成模块所生成的操作指令对所述待测软件执行相应的操作; 接收模块,用于接收所述待测软件响应所述执行模块执行操作后的输出信息; 创建模块,用于根据所述接收模块所接收的输出信息创建测试报告。8.如权利要求7所述的装置,其特征在于,所述生成模块包括获取单元、确定单元和生成单元,其中, 所述获取单元,用于获取所述测试用例对应的操作控件的控件属性; 所述确定单元,用于根据所述控件属性确定所述操作控件的操作方法和控件标识; 所述生成单元,用于生成与所述操作方法和所述控件标识相匹配的虚拟操作指令。9.如权利要求7或8所述的装置,其特征在于,所述执行模块包括查找单元和执行单元,其中, 所述查找单元,用于从所述待测软件的程序中查找所述控件标识; 所述执行单元,用于在所述控件标识所确定的功能区域内执行与所述操作指令相应的虚拟操作。10.如权利要求7或8所述的装置,其特征在于, 所述确定单元,还用于根据所述控件标识确定所述控件当前的位置信息; 所述执行单元,还用于在所述位置标识确定的位置执行与所述操作指令相应的虚拟操作。11.如权利要求7所述的装置,其特征在于,所述创建模块包括读取单元、运算单元、判断单元和标记单元,其中, 所述读取单元,用于读取与所述输出信息相对应的标准信息; 所述运算单元,用于运算所述输出信息和所述标准信息,得到二者的差量信息; 所述判断单元,用于判断所述差量信息是否符合预设条件; 所述标记单元,用于在所述差量信息符合所述预设条件时,将所述测试用例的测试结果标记为运行正常; 所述标记单元,还用于在所述差量信息不符合所述预设条件时,将所述测试用例的测试结果标记为存在缺陷。12.如权利要求7所述的装置,其特征在于,还包括存储模块,其中, 所述接收模块,还用于接收所述测试用例的场景用例; 所述存储模块,用于按照预设格式存储所述接收模块所接收的场景用例,得到所述测试用例。
【文档编号】G06F11/36GK105868100SQ201510971726
【公开日】2016年8月17日
【申请日】2015年12月22日
【发明人】敖伟波
【申请人】乐视网信息技术(北京)股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1