一种对基于安卓平台的设备的自动化测试系统及方法

文档序号:6508991阅读:183来源:国知局
一种对基于安卓平台的设备的自动化测试系统及方法
【专利摘要】本发明公开了一种对基于安卓平台的设备的自动化测试系统及方法,属于一种自动化测试系统及方法,其中,所述自动化测试系统包括:执行模块,用于向被测设备发出测试指令;与所述执行模块连接的记录模块,用于记录所述被测设备执行所述测试指令的数据记录;分别与所述执行模块以及所述记录模块连接的控制模块,所述控制模块用于设定测试项,并通过所述数据记录判定测试项是否通过。本发明的有益效果是:能够在该平台上同步地执行安卓人机交互测试与底层通信消息检测,从而可以实现对测试用例的自动判断,有利于深入分析测试中问题的发生原因,提高了对平台测试的准确率,并提高了测试的效率。
【专利说明】一种对基于安卓平台的设备的自动化测试系统及方法

【技术领域】
[0001]本发明涉及一种自动化测试系统及方法,尤其涉及一种对基于安卓平台的设备的自动化测试系统及方法。

【背景技术】
[0002]随着技术的飞速发展,智能手机已经非常普及。智能手机具有独立操作系统,可以支持由用户、第三方服务商等提供的应用程序,从而使智能手机具有了各种各样的功能,除了用于通信和娱乐外,还可用于资讯和办公等方面,大大丰富了用户的使用。如今智能手机已经成为大部分人生活中不可或缺的部分。
[0003]Android是一种以Linux为基础的开放源码操作系统,具有强大的开放性和可扩展性,目前Android系统的智能手机,占全球销售比例已经超过四分之一。除了智能手机夕卜,Android系统还可应用于如平板电脑等多种智能电器。
[0004]软件测试对于发现软件中缺陷,保障软件的质量具有重要意义。因此,对Android平台的软件测试也就成为了相关产品开发过程中的重要环节。由于软件测试环节的工作量普遍都非常繁重,为了能够提高测试质量、提升测试效率以及降低测试成本,需要通过自动化测试承担其中部分工作。
[0005]目前,能够用于对基于安卓平台智能手机的自动化测试工具主要包括:SeeTeSt、RobotiunuMTBF等。这些测试工具依赖于手机平台界面,一般都是通过测试人员对测试后的界面元素进行人工比对,进行安卓人机交互的自动测试。其缺陷在于无法从通信层面对底层的协议消息进行很好的检测,其通过测试判断出的问题一般都是如定屏、死机、Crash等安卓特性的问题,难以对Android平台的其他方面,如平台的通讯协议层面进行深入检测和分析,从而影响了测试结果的准确性。其次,由于只是通过界面进行测试判断,所以界面的变化会直接影响到测试的结果,甚至会导致测试判断失败。另外,上述测试方式在编写测试脚本时,代码编写量会比较大,这又会增加测试设计的复杂性以及维护难度。
[0006]专利申请文件,申请号CN 102419732A:公开了基于android平台的自动化测试方法及测试工具。该测试方法包括:用于录制操作事件并生成android平台可执行脚本的脚本录制步骤;用于在设备对象接收到执行脚本的命令后执行所述可执行脚本的脚本执行步骤;用于根据脚本执行结果判断自动化用例是否通过的结果判断步骤。上述的技术方案通过录制事件脚本、回放脚本和界面元素比对,得出测试结果。但是上述的技术方案仍然只是基于测试界面,通过对测试界面元素的对比进行测试判断,并未涉及通过底层的协议消息进行测试检测。


【发明内容】

[0007]针对以上的技术问题,本发明公开了一种对安卓平台的终端设备的自动化测试系统及方法,以在平台上进行人机交互测试的同时,可以实现对底层通信信息的检测,避免仅通过界面进行结果判断所产生的问题。
[0008]具体技术方案如下所示:
[0009]一种对基于安卓平台的设备的自动化测试系统,其中,所述自动化测试系统包括:
[0010]执行模块,用于向被测设备发出测试指令;
[0011]与所述执行模块连接的记录模块,用于记录所述被测设备执行所述测试指令的数据记录;
[0012]分别与所述执行模块以及所述记录模块连接的控制模块,所述控制模块用于设定测试项,并通过所述数据记录判定测试项是否通过。
[0013]优选的,所述执行模块包括预设于所述测试系统的存储模块的测试脚本。
[0014]优选的,所述执行模块还包括用于执行所述测试脚本的测试工具。
[0015]优选的,还包括连接于所述执行模块的判定模块;所述判定模块用于判定是否驱动所述执行模块。
[0016]优选的,所述判定模块包括指令判定单元;所述指令判定单元用于检测是否存在输入指令。
[0017]优选的,所述测试驱动模块还包括脚本判定单元,所述脚本判定单元用于检测是否预设有测试脚本。
[0018]优选的,所述判定模块还包括指令删除单元;所述指令删除单元用于删除已执行的测试指令。
[0019]优选的,还包括分别与所述控制模块和所述记录模块连接的监测模块;所述监测模块用于获取所述数据记录中的底层数据记录,并将所述底层数据记录发送到所述控制模块进行测试结果判定。
[0020]优选的,所述底层数据记录包括网络协议记录以及数字通信处理记录。
[0021]一种对基于安卓平台的设备的自动化测试方法,其中,具体包括如下步骤:
[0022]步骤1.设定测试项;
[0023]步骤2.根据预设的测试脚本和所述测试项向所述设备发出测试指令,开始测试;
[0024]步骤3.根据测试的返回数据进行判断,得出测试结果;
[0025]步骤4.重复执行所述步骤2至所述步骤3,直至所有的测试项测试完成。
[0026]优选的,所述步骤2中还包括:
[0027]步骤21.删除已执行的测试指令。
[0028]优选的,所述步骤2中还包括:
[0029]步骤22.判定是否向被测设备发出测试指令。
[0030]优选的,所述步骤22中还包括:
[0031]步骤221.判定是否存在输入指令;当存在输入指令时,则执行输入指令,并退出所述测试方法;否则进入步骤213 ;
[0032]步骤222.判定是否存在测试脚本;当不存在测试脚本时,则退出所述测试方法;否则进入步骤214;
[0033]步骤223.根据所述测试脚本和所述测试项向被测设备发出测试指令。
[0034]优选的,所述步骤3中还包括:
[0035]步骤31.实时记录被测设备执行所述测试指令后的数据记录;
[0036]步骤32.获取所述数据记录中的底层数据记录,并对所述底层数据记录进行测试结果判定;
[0037]步骤33.根据预设的判定规则对比所述底层数据记录,判定测试结果。
[0038]优选的,所述步骤32中,所述底层数据记录包括网络协议记录以及数字通信处理记录。
[0039]本发明的有益效果是:
[0040]1.通过本发明的一种对基于安卓平台的设备的自动化测试系统及方法,能够在该平台上同步地执行安卓人机交互测试与底层通信消息检测,从而可以实现对测试用例的自动判断,有利于深入分析测试中问题的发生原因,提高了对平台测试的准确率,并提高了测试的效率。
[0041]2.通过控制模块的测试用例设定单元对测试用例进行设定,方便地实现了对测试过程的控制。
[0042]3.通过判定模块,可以对测试指令和一般输入指令进行区分以及对测试脚本存在与否进行判断,以决定是否驱动执行模块,执行相应的测试脚本。
[0043]4.通过控制模块的测试分析单元,从通信层面对底层的协议消息进行检测,避免依赖于图形界面来判断测试结果,提高了测试的准确率。
[0044]5.通过判定模块的指令删除单元,可以删除上次调用执行模块遗留的指令,以节省存储空间。

【专利附图】

【附图说明】
[0045]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0046]图1为本发明的一种对基于安卓平台的设备的自动化测试系统的实施例的结构示意图;
[0047]图2为本发明的一种对基于安卓平台的设备的自动化测试系统的另一种实施例的结构不意图;
[0048]图3为本发明的一种对基于安卓平台的设备的自动化测试系统的判定模块的原理示意图;
[0049]图4为本发明的一种对基于安卓平台的设备的自动化测试系统的另一种实施例的结构不意图;
[0050]图5为本发明的一种对基于安卓平台的设备的自动化测试方法的实施例的流程示意图。

【具体实施方式】
[0051]下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
[0052]本发明的一种实施例公开了一种对基于安卓平台的设备的自动化测试系统。如图1所示,测试系统包括执行模块,与执行模块连接的记录模块,分别与执行模块以及记录模块连接的控制模块。上述的控制模块用于用于设定测试项,并通过数据记录判定测试项是否通过。上述的记录模块,用于记录所述设备执行所述测试指令的数据记录,即测试日志。
[0053]上述的执行模块用于向基于安卓平台的设备发出测试指令。于上述技术方案的基础上,执行模块包括预设于所述测试系统的存储模块的测试脚本。进一步的,执行模块还包括支持上述测试脚本的测试工具。在一种【具体实施方式】中,测试工具可以是Monkeyrunner测试工具,测试脚本为基于Python的测试脚本。Python测试脚本里的测试命令由安卓提供,而Python测试脚本的具体编写则可以由测试人员编写完成。Monkeyrunner是集成于AndroidSDK (Android软件开发包)中的测试工具,可以实现对安卓平台的黑盒测试。其通过模拟如程序点击操作的过程,以测试程序的稳定性。测试中,Monkeyrunner通过截屏的方式记录测试过程中出现的问题,在测试后进行检查分析。Monkeyrunner只需要通过命令行工具将目录定位到android SDK路径下的tools目录完成配置,然后在命令行工具下运行Monkeyrunner的测试命令即可进行测试。
[0054]于上述技术方案的基础上,如图2所示,还包括连接于执行模块和控制模块之间的判定模块,用于判定是否驱动上述的执行模块。在一种【具体实施方式】中,判定模块包括指令判定单元以及测试脚本判定单元。指令判定单元用于检测是否存在输入指令,测试脚本判定单元用于检测是否预设有测试脚本。在另一种【具体实施方式】中,判定模块还包括指令删除单元,用于删除已执行的测试指令。用于删除完成测试的测试指令。如图3所示,判定模块中定义了局部变量cmd和file_path,全局变量的命令路径dt_cmd_exec。其中cmd用于设定输入指令,file_path用于表示执行模块中测试脚本的路径,dt_cmd_exec用于指定测试工具的路径。在执行测试指令调用前,判定模块会首先通过g_ttd_kill_cmd函数,删除上次调用执行模块遗留的指令,即已执行的指令,从而节省存储空间。随后,判定模块对局部变量cmd的值进行判断。当cmd的值不为空时,表示此时测试人员在命令行工具,如DOS命令行中进行了命令输入,如ipconfig命令等。判定模块就将cmd_exec的值赋值为cmd的命令输入。此时执行的是上述的输入命令,而不会对通过执行模块对被测设备进行平台测试。一般情况下,由于cmd的默认值设置为null,判定模块将全局变量的dt_cmd_exec的值赋值给cmd_exec。dt_cmd_exec指向的是执行模块的测试工具所在的路径。例如,可以是Monkeyrunner的Monkeyrunner.bat批处理文件的路径。接下来,判定模块会对表示测试脚本路径的file_path进行判断。一种可选的实施方式是,当测试人员直接通过命令行进行命令输入时,如进行上述的ipconfig命令输入,测试驱动判断模块不会继续上述的file_path进行判断。如果f ile_path不为空,表示在该f ile_path所指向的路径下存在预设的测试脚本,判定模块会通过exec语句根据测试工具的路径通过测试工具执行测试文件路径下的测试文件,向待测试的设备发出测试指令。如果为空,则判定模块就判定没有预设的测试脚本,而不会去驱动执行模块。
[0055]于上述技术方案的基础上,如图4所示,还包括分别与控制模块和记录模块连接的检测模块。检测模块用于获取数据记录中的底层数据记录,并将底层数据记录发送到控制模块进行测试结果判定。被测设备根据测试执行指令执行不同的业务,因而通过记录模块实时抓取的被测设备的数据记录内容也不同。在控制模块上可以根据不同的测试用例,对应预设不同的判定规则,对测试结果进行判定。例如,可以是设定预期数据范围,判断测试的数据记录是否落入预期数据范围,或者可以是控制模块获取的数据记录中,是否包含特定的数据记录,或者这些数据记录是否按预期顺序获得等。
[0056]于上述技术方案的基础上,底层数据记录包括网络协议记录以及数字通信处理(DSP)的记录。通过测试过程中的底层数据记录进行信令对比,可以更有效地对安卓平台的核心功能模块,如上述的通信功能模块进行深入测试分析。例如,在对被测设备,如基于Android系统的智能手机进行通话测试时,在由Monkeyrunner测试工具运行Python测试脚本后,会使被测手机执行相应动作,如呼叫请求,振铃,呼叫建立等。其中,关于呼叫请求和呼叫建立的数据记录属于被测设备上网络协议的记录,关于振铃的数据记录属于被测设备上数字通信处理的记录。这样在控制模块上就可以预设对应的判定规则,例如,可以是控制模块通过测试检测模块是否依次顺序地读取到上述的呼叫请求,振铃以及呼叫建立的数据记录。如果成功按照顺序读取到了所有的底层数据记录,则控制模块判定测试成功。否则判定为测试失败。
[0057]本发明的一种实施例公开了一种对基于安卓平台的设备的自动化测试方法,可以是通过如上述的测试系统实施。如图5所示,具体包括如下步骤:
[0058]步骤1.设定测试项;
[0059]步骤2.根据预设的测试脚本和所述测试项向设备发出测试指令,开始测试;
[0060]步骤3.根据测试的返回数据进行判断,得出测试结果;
[0061]步骤4.重复执行步骤2至所述步骤3,直至所有的测试项测试完成。
[0062]对于上述的步骤2,设定测试项可以是通过上述的自动化测试系统中的控制模块设定的。在一种【具体实施方式】中,步骤2中还包括步骤21.删除已执行的测试指令。具体来说,可以是通过上述判定模块的指令删除单元实现的。
[0063]对于上述的步骤2,在一种【具体实施方式】中,还包括步骤22.判定是否向被测设备发出测试指令。具体来说,可以是通过上述的判定模块判定是否驱动上述的执行模块,从而向被测设备发出测试指令。
[0064]于上述技术方案的基础上,进一步的,步骤22中还包括:
[0065]步骤221.判定是否存在输入指令;当存在输入指令时,则执行输入指令,并退出测试方法;否则进入步骤213;
[0066]步骤222.判定是否存在测试脚本;当不存在测试脚本时,则退出测试方法;否则进入步骤214 ;
[0067]步骤223.根据测试脚本和测试项向被测设备发出测试指令。
[0068]具体来说,上述步骤221和步骤222可以是通过自动化测试系统中判定模块的指令判定单元进行判定,上述的步骤223可以是通过执行模块实现。
[0069]于上述技术方案的基础上,步骤3中还包括:
[0070]步骤31.实时记录被测设备执行所述测试指令后的数据记录;
[0071]步骤32.获取所述数据记录中的底层数据记录,并对所述底层数据记录进行测试结果判定;
[0072]步骤33.根据预设的判定规则对比所述底层数据记录,对测试结果进行判定。
[0073]具体来说,上述的步骤31可以是通过自动化测试系统的记录模块实现;上述的步骤32可以是通过监测模块实现,上述的步骤32可以是通过控制模块实现。上述的步骤33是通过控制模块实现的。
[0074]于上述技术方案的基础上,底层数据记录包括网络协议记录以及数字通信处理记录。
[0075]以上仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。
【权利要求】
1.一种对基于安卓平台的设备的自动化测试系统,其特征在于,所述自动化测试系统包括: 执行模块,用于向被测设备发出测试指令; 与所述执行模块连接的记录模块,用于记录所述被测设备执行所述测试指令的数据记录; 分别与所述执行模块以及所述记录模块连接的控制模块,所述控制模块用于设定测试项,并通过所述数据记录判定测试项是否通过。
2.如权利要求1所述的对基于安卓平台的设备的自动化测试系统,其特征在于,所述执行模块包括预设于所述测试系统的存储模块的测试脚本。
3.如权利要求2所述的对基于安卓平台的设备的自动化测试系统,其特征在于,所述执行模块还包括用于执行所述测试脚本的测试工具。
4.如权利要求3所述的对基于安卓平台的设备的自动化测试系统,其特征在于, 还包括连接于所述执行模块的判定模块;所述判定模块用于判定是否驱动所述执行模块。
5.如权利要求4所述的对基于安卓平台的设备的自动化测试系统,其特征在于, 所述判定模块包括指令判定单元;所述指令判定单元用于检测是否存在输入指令。
6.如权利要求4所述的对基于安卓平台的设备的自动化测试系统,其特征在于, 所述测试驱动模块还包括脚本判定单元,所述脚本判定单元用于检测是否预设有测试脚本。
7.如权利要求5所述的对基于安卓平台的设备的自动化测试系统,其特征在于, 所述判定模块还包括指令删除单元;所述指令删除单元用于删除已执行的测试指令。
8.如权利要求1所述的对基于安卓平台的设备的自动化测试系统,其特征在于, 还包括分别与所述控制模块和所述记录模块连接的监测模块;所述监测模块用于获取所述数据记录中的底层数据记录,并将所述底层数据记录发送到所述控制模块进行测试结果判定。
9.如权利要求8所述的对基于安卓平台的设备的自动化测试系统,其特征在于,所述底层数据记录包括网络协议记录以及数字通信处理记录。
10.一种对基于安卓平台的设备的自动化测试方法,其特征在于,具体包括如下步骤: 步骤1.设定测试项; 步骤2.根据预设的测试脚本和所述测试项向所述设备发出测试指令,开始测试; 步骤3.根据测试的返回数据进行判断,得出测试结果; 步骤4.重复执行所述步骤2至所述步骤3,直至所有的测试项测试完成。
11.如权利要求10所述的对基于安卓平台的设备的自动化测试方法,其特征在于,所述步骤2中还包括: 步骤21.删除已执行的测试指令。
12.如权利要求11所述的对基于安卓平台的设备的自动化测试方法,其特征在于,所述步骤2中还包括: 步骤22.判定是否向被测设备发出测试指令。
13.如权利要求12所述的对基于安卓平台的设备的自动化测试方法,其特征在于,所述步骤22中还包括: 步骤221.判定是否存在输入指令;当存在输入指令时,则执行输入指令,并退出所述测试方法;否则进入步骤213; 步骤222.判定是否存在测试脚本;当不存在测试脚本时,则退出所述测试方法;否则进入步骤214 ; 步骤223.根据所述测试脚本和所述测试项向被测设备发出测试指令。
14.如权利要求10所述的对基于安卓平台的设备的自动化测试方法,其特征在于,所述步骤3中还包括: 步骤31.实时记录被测设备执行所述测试指令后的数据记录; 步骤32.获取所述数据记录中的底层数据记录,并对所述底层数据记录进行测试结果判定; 步骤33.根据预设的判定规则对比所述底层数据记录,判定测试结果。
15.如权利要求14所述的对基于安卓平台的设备的自动化测试方法,其特征在于,所述步骤32中,所述底层数据记录包括网络协议记录以及数字通信处理记录。
【文档编号】G06F11/36GK104424096SQ201310377214
【公开日】2015年3月18日 申请日期:2013年8月26日 优先权日:2013年8月26日
【发明者】常青, 葛瑞 申请人:展讯通信(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1