测试方法及系统的制作方法

文档序号:7980262阅读:352来源:国知局
测试方法及系统的制作方法
【专利摘要】本发明公开了一种测试方法及系统,属于互联网终端测试领域。所述方法包括:测试终端执行对被测试程序的测试过程;监控终端判断所述测试过程是否停止;如果停止,则向所述测试终端发送启动测试指令,以便所述测试终端执行下一次对所述被测试程序的测试过程。本发明通过增加监控终端来监控和控制在测试终端上的对被测试程序的测试过程,解决了现有测试方法的测试效率较低且需要工程师一直监测测试过程的问题,使得在需要多次重复测试的测试过程中可以达到自动执行、自动循环的测试效果。
【专利说明】测试方法及系统
【技术领域】
[0001]本发明涉及互联网终端测试领域,特别涉及一种测试方法及系统。
【背景技术】
[0002]Android是可以运行于移动终端上的一种智能操作系统,由于其开放性而被广泛发展和应用,成为了现有移动终端中最常用的操作系统之一。对于运行于Android上的应用程序的测试是工程师较为关注的热点问题。
[0003]在现有技术中,通常利用Android系统官方提供的测试工具Instrument来对被测试程序进行测试。具体地讲,现有的测试方法主要包括:首先,基于测试工具Instrument构建测试程序;然后在测试终端(可以是移动终端)上同时运行测试程序和被测试程序,以便对被测试程序进行测试。在测试过程中,测试程序可以发出相应的测试指令使被测试程序执行预定的操作,并且监控被测试程序的状态,测试程序和/或被测试程序还可以在运行过程中输出测试日志;最终,工程师可以根据测试过程中监控到的状态和输出的测试日志来获得测试结果,比如,在稳定性测试中,当被测试程序崩溃后,工程师可以根据测试程序监控到的崩溃状态和被测试程序在崩溃前输出的测试日志来获得测试结果。
[0004]在实现本发明的过程中,发明人发现现有技术至少存在以下问题:现有的测试程序只能自行完成一次从“开始测试被测试程序”到“被测试程序崩溃”的测试过程。而在需要多次重复测试(如稳定性测试)的测试过程中,每次被测试程序崩溃后,都需要工程师手动来再次开启测试过程,测试效率较低且需要工程师一直监测测试过程。

【发明内容】

[0005]为了解决现有测试方法的测试效率较低且需要工程师一直监测测试过程的问题,本发明实施例提供了一种测试方法及系统。所述技术方案如下:
[0006]根据本发明的一个方面,本发明实施例提供了一种测试方法,所述方法包括:
[0007]测试终端执行对被测试程序的测试过程;
[0008]监控终端判断所述测试过程是否停止;如果停止,则向所述测试终端发送启动测试指令,以便所述测试终端执行下一次对所述被测试程序的测试过程。
[0009]进一步地,所述测试终端执行对被测试程序的测试过程,具体包括:
[0010]接收所述监控终端的启动测试指令;
[0011 ] 向所述被测试程序发送测试指令,以便所述被测试程序执行所述测试指令;
[0012]根据所述被测试程序的执行过程,输出测试日志。
[0013]进一步地,所述向所述被测试程序发送测试指令,具体包括:
[0014]向所述被测试程序循环发送组合测试指令,所述组合测试指令包括至少一个按照预定顺序排列的相同或不同的测试指令。
[0015]进一步地,所述监控终端判断所述测试过程是否停止;如果停止,则向所述测试终端发送启动测试指令,以便所述测试终端执行下一次对被测试程序的测试过程,具体包括:判断所述被测试程序的进程是否存在,且判断所述测试终端是否正常输出测试日志;
[0016]如果判断所述被测试程序的进程不存在,或者判断所述测试终端不正常输出测试日志,则向所述测试终端发送启动测试指令,以便所述测试终端执行下一次对被测试程序的测试过程。
[0017]进一步地,所述如果判断所述被测试程序的进程不存在,或者判断所述测试终端不正常输出测试日志之后,还包括:
[0018]所述监控终端记录当前时间和当前判断日志作为被测试程序的崩溃记录。
[0019]根据本发明的另一方面,本发明实施例提供一种测试系统,所述系统包括:测试终端和监控终端;
[0020]所述测试终端,用于执行对被测试程序的测试过程;
[0021]所述监控终端,用于判断所述测试过程是否停止;如果停止,则向所述测试终端发送启动测试指令,以便所述测试终端执行下一次对所述被测试程序的测试过程。
[0022]进一步地,所述测试终端,具体包括:
[0023]启动接收模块、指令发送模块和日志输出模块;
[0024]所述启动接收模块,用于接收所述监控终端的启动测试指令;
[0025]所述指令发送模块,用于向所述被测试程序发送测试指令,以便所述被测试程序执行所述测试指令;
[0026]所述日志输出模块,用于根据所述被测试程序的执行过程,输出测试日志。
[0027]进一步地,所述指令发送模块,具体包括:
[0028]组合指令发送单元;
[0029]所述组合指令发送单元,用于向所述被测试程序循环发送组合测试指令,所述组合测试指令包括至少一个按照预定顺序排列的相同或不同的测试指令。
[0030]进一步地,所述监控终端,具体包括:
[0031]测试判断模块和启动发送模块;
[0032]所述测试判断模块,用于判断所述被测试程序的进程是否存在,且判断所述测试终端是否正常输出测试日志;
[0033]所述启动发送模块,用于如果所述测试判断模块判断所述被测试程序的进程不存在,或者判断所述测试终端不正常输出测试日志,则向所述测试终端发送启动测试指令,以便所述测试终端执行下一次对被测试程序的测试过程。
[0034]进一步地,所述监控终端,还包括:
[0035]日志记录模块;
[0036]所述日志记录模块,用于记录当前时间和当前判断日志作为被测试程序的崩溃记录。
[0037]本发明实施例提供的技术方案带来的有益效果是:
[0038]通过增加监控终端来监控和控制在测试终端上的对被测试程序的测试过程,解决了现有测试方法的测试效率较低且需要工程师一直监测测试过程的问题,使得在需要多次重复测试的测试过程中可以达到自动执行、自动循环的测试效果。
【专利附图】

【附图说明】[0039]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0040]图1是本发明实施例所涉及的一种实施环境的结构示意图;
[0041]图2是本发明实施例一提供的测试方法的方法流程图;
[0042]图3是本发明实施例二提供的测试方法的方法流程图;
[0043]图4是本发明实施例三提供的测试系统的结构方框图;
[0044]图5是本发明实施例三提供的测试终端的另一结构方框图;
[0045]图6是本发明实施例三提供的监控终端的另一结构方框图。
【具体实施方式】
[0046]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0047]首先请参考图1,其示出了本发明实施例所涉及的一种实施环境的结构示意图。该实施环境包括测试终端120和监控终端140。
[0048]测试终端120可以是诸如智能手机、平板电脑和电子书阅读器之类的移动终端。测试终端120可以运行被测试程序和基于Instrument构建的测试程序。本文中均以测试终端120采用Android的操作系统,被测试程序为运行于Android的应用程序来举例说明。
[0049]监控终端140可以是通过数据线、有线网络或者无线网络与测试终端120相连的个人计算机,比如台式电脑或者笔记本等。监控终端140 —方面可以监测测试终端120中的被测试程序和测试程序的运行情况;另一方面,监控终端140也可以发送控制指令来控制测试程序的运行。
[0050]实施例一
[0051]请参考图2,其示出了本发明实施例一提供的测试方法的方法流程图。该测试方法可以用于图1所示的实施环境中,该测试方法可以具体包括:
[0052]步骤202,测试终端执行对被测试程序的测试过程;
[0053]测试终端中可以运行有测试程序和被测试程序,其中,测试程序可以为对应于被测试程序的、基于Instrument构建的应用程序,被测试程序可以是运行于Android的应用程序。测试程序可以向被测试程序发送测试指令,被测试程序执行该测试指令。在此过程中,测试程序可以根据被测试程序执行测试指令的过程,输出测试日志。
[0054]步骤204,监控终端判断测试过程是否停止;如果停止,则向测试终端发送启动测试指令,以便测试终端执行下一次对被测试程序的测试过程。
[0055]监控终端可以判断测试终端中的测试过程是否停止,比如,在稳定性测试中,监控终端可以通过监控测试终端中的被测试程序是否崩溃来判断测试过程是否停止;又比如,在另一种常规性性能测试中,监控终端可以通过监控测试程序输出的测试日志是否达到预定条件来判断测试过程是否停止。
[0056]当监控终端判断到测试终端中的测试过程已经停止时,可以向测试终端发送启动测试指令,以便测试终端执行下一次对被测试程序的测试过程。测试终端执行下一次对被测试程序的测试过程可以与步骤202中的测试过程相同或者相似。
[0057]综上所述,本实施例中的测试方法,通过增加监控终端来监控和控制在测试终端上的对被测试程序的测试过程,解决了现有测试方法的测试效率较低且需要工程师一直监测测试过程的问题,使得在需要多次重复测试的测试过程中可以达到自动执行、自动循环的测试效果。
[0058]实施例二
[0059]请参考图3,其示出了本发明实施例二提供的测试方法的方法流程图。该测试方法可以用于图1所示的实施环境中,该测试方法可以具体包括:
[0060]步骤302,测试终端接收监控终端的启动测试指令;
[0061]测试终端中可以运行有测试程序和被测试程序,其中,测试程序可以为对应于被测试程序的、基于Instrument构建的应用程序,被测试程序可以是运行于Android的应用程序。在开始测试或者测试过程中时,监控终端可以自动或者受控地向测试终端发送一个启动测试指令,测试终端在接收到该启动测试指令之后,测试终端中的测试程序开始执行。
[0062]步骤304,测试终端向被测试程序发送测试指令,以便被测试程序执行测试指令;
[0063]测试终端中的测试程序开始执行后,可以向被测试程序发送测试指令,以便被测试程序执行测试指令。比如,被测试程序是智能手机上的短信应用程序,测试程序可以向该短信应用程序发送一个用于发送短信的测试指令,则该短信应用程序可以根据该测试指令向目标发送短信。进一步地,测试程序向被测试程序发送的测试指令可以是一系列具有时序关系的组合测试指令,被测试程序可以根据该组合测试指令执行一系列的操作来实现某一项或者多项功能。此时,本步骤具体可以包括:向被测试程序循环发送组合测试指令,组合测试指令包括至少一个按照预定顺序排列的相同或不同的测试指令。比如,被测试程序依然是智能手机上的短信应用程序,测试程序可以向该短信应用程序发送一个用于发送短信的组合测试指令,该组合测试指令可以包括:填写收信人的测试指令、填写短信内容的测试指令、发送短信的测试指令。其中,填写收信人的测试指令可以每次不同,如发送给不同的收信人;填写短信内容的测试指令可以每次不同,如发送诸如文本、图片、音频和表情等不同内容或者不同信息量的短信。在诸如稳定性测试的需要多次重复测试的测试过程中,测试程序可以每次都发送一组组合测试指令给短信应用程序,然后下次发送相同或者不同的组合测试指令给该短信应用程序,每隔一组或者多组组合测试指令可以进行一次循环。
[0064]步骤306,测试终端根据被测试程序的执行过程,输出测试日志;
[0065]在被测试程序执行测试指令的过程中,测试程序可以根据被测试程序的执行过程输出测试日志。具体地讲,对于被测试程序每次执行一组组合测试指令时,均需要输出至少一次测试日志。
[0066]步骤308,判断被测试程序的进程是否存在,且判断测试终端是否正常输出测试日志;
[0067]监控终端可以每隔预定时间间隔来通过两个方面来判断测试终端中的测试过程是否停止:第一,监控终端可以判断被测试程序的进程是否存在来判断测试终端中的测试过程是否停止,也即,如果被测试程序的进程不存在,则表示测试终端中的本次测试过程已经停止;第二,监控终端可以判断测试终端是否正常输出测试日志来判断测试终端中的测试过程是否停止,也即,如果监控终端判断被测试程序的进程仍然存在(但是可能处于无响应的状态),但是测试终端已经不在正常输出测试日志了,则表示测试终端中的本地测试过程已经停止。在稳定性测试中,测试终端中的本地测试过程已经停止通常都是由被测试程序的崩溃引起的。
[0068]步骤310,如果判断被测试程序的进程不存在,或者判断测试终端不正常输出测试日志,则向测试终端发送启动测试指令,以便测试终端执行下一次对被测试程序的测试过程。
[0069]如果监控终端判断被测试程序的进程不存在,或者判断测试终端不正常输出测试日志,均表示测试终端中的本地测试过程已经停止,此时监控终端可以向测试终端发送启动测试指令,以便测试终端执行下一次对被测试程序的测试过程。测试终端执行下一次对被测试程序的测试过程,与步骤302至步骤308基本相同。
[0070]步骤312,监控终端记录当前时间和当前判断日志作为被测试程序的崩溃记录。
[0071]在监控终端判断到被测试程序的进程不存在,或者判断测试终端不正常输出测试日志时,此时均表示被测试程序已经崩溃,监控终端可以记录当前时间和当前判断到被测试程序崩溃的日志作为被测试程序的崩溃记录。
[0072]综上所述,本实施例中的测试方法,通过增加监控终端来监控和控制在测试终端上的对被测试程序的测试过程,解决了现有测试方法的测试效率较低且需要工程师一直监测测试过程的问题,使得在需要多次重复测试的测试过程中可以达到自动执行、自动循环的测试效果。同时,还可以通过组合测试指令来实现对被测试程序进行固定步骤的自动测试;此外,还可以结合“被测试程序的进程”和“测试程序输出的测试日志”两方面来判断被测试程序是否崩溃,实现更为准确地判断以便循环执行测试过程。最后,还通过记录被测试程序的崩溃记录的方式,来达到使得工程师更方便地获得测试结果的效果。
[0073]实施例三
[0074]请参考图4,其示出了本发明实施例三提供的测试系统的结构方框图。该测试系统可以包括:测试终端420和监控终端440。
[0075]测试终端420用于执行对被测试程序的测试过程。
[0076]监控终端440用于判断测试过程是否停止,如果停止,则向测试终端发送启动测试指令,以便测试终端执行下一次对被测试程序的测试过程。
[0077]具体地讲,测试终端420可以具体包括:启动接收模块422、指令发送模块424和日志输出模块426。其中,启动接收模块422用于接收监控终端的启动测试指令;指令发送模块424用于向被测试程序发送测试指令,以便被测试程序执行测试指令;日志输出模块426用于根据被测试程序的执行过程,输出测试日志。
[0078]进一步地,指令发送模块424可以具体包括:组合指令发送单元424a,如图5所示。组合指令发送单元424a用于向被测试程序循环发送组合测试指令,组合测试指令包括至少一个按照预定顺序排列的相同或不同的测试指令。
[0079]具体地讲,监控终端440具体包括:测试判断模块442和启动发送模块444。其中,测试判断模块442用于判断被测试程序的进程是否存在,且判断测试终端是否正常输出测试日志;启动发送模块444用于如果测试判断模块442判断被测试程序的进程不存在,或者判断测试终端不正常输出测试日志,则向测试终端发送启动测试指令,以便测试终端执行下一次对被测试程序的测试过程。[0080]监控终端440还可以包括:日志记录模块446,如图6所示。其中,日志记录模块446用于记录当前时间和当前判断日志作为被测试程序的崩溃记录。
[0081]综上所述,本实施例中的测试系统,通过增加监控终端来监控和控制在测试终端上的对被测试程序的测试过程,解决了现有测试方法的测试效率较低且需要工程师一直监测测试过程的问题,使得在需要多次重复测试的测试过程中可以达到自动执行、自动循环的测试效果。同时,还可以通过组合测试指令来实现对被测试程序进行固定步骤的自动测试;此外,还可以结合“被测试程序的进程”和“测试程序输出的测试日志”两方面来判断被测试程序是否崩溃,实现更为准确地判断以便循环执行测试过程。最后,还通过记录被测试程序的崩溃记录的方式,来达到使得工程师更方便地获得测试结果的效果。
[0082]需要说明的是:上述实施例提供的测试系统在进行测试时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另夕卜,上述实施例提供的测试系统装置与测试方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0083]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0084]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种测试方法,其特征在于,所述方法包括: 测试终端执行对被测试程序的测试过程; 监控终端判断所述测试过程是否停止;如果停止,则向所述测试终端发送启动测试指令,以便所述测试终端执行下一次对所述被测试程序的测试过程。
2.根据权利要求1所述的测试方法,其特征在于,所述测试终端执行对被测试程序的测试过程,具体包括: 接收所述监控终端的启动测试指令; 向所述被测试程序发送测试指令,以便所述被测试程序执行所述测试指令; 根据所述被测试程序的执行过程,输出测试日志。
3.根据权利要求2所述的测试方法,其特征在于,所述向所述被测试程序发送测试指令,具体包括: 向所述被测试程序循环发送组合测试指令,所述组合测试指令包括至少一个按照预定顺序排列的相同或不同的测试指令。
4.根据权利要求1所述的测试方法,其特征在于,所述监控终端判断所述测试过程是否停止;如果停止,则向所述测试终端发送启动测试指令,以便所述测试终端执行下一次对被测试程序的测试过程,具体包括: 判断所述被测试程序的进程是否存在,且判断所述测试终端是否正常输出测试日志;如果判断所述被测试程序的进程不存在,或者判断所述测试终端不正常输出测试曰志,则向所述测试终端发送启动测`试指令,以便所述测试终端执行下一次对被测试程序的测试过程。
5.根据权利要求4所述的测试方法,其特征在于,所述如果判断所述被测试程序的进程不存在,或者判断所述测试终端不正常输出测试日志之后,还包括: 所述监控终端记录当前时间和当前判断日志作为被测试程序的崩溃记录。
6.一种测试系统,其特征在于,所述系统包括:测试终端和监控终端; 所述测试终端,用于执行对被测试程序的测试过程; 所述监控终端,用于判断所述测试过程是否停止;如果停止,则向所述测试终端发送启动测试指令,以便所述测试终端执行下一次对所述被测试程序的测试过程。
7.根据权利要求6所述的测试系统,其特征在于,所述测试终端,具体包括: 启动接收模块、指令发送模块和日志输出模块; 所述启动接收模块,用于接收所述监控终端的启动测试指令; 所述指令发送模块,用于向所述被测试程序发送测试指令,以便所述被测试程序执行所述测试指令; 所述日志输出模块,用于根据所述被测试程序的执行过程,输出测试日志。
8.根据权利要求7所述的测试系统,其特征在于,所述指令发送模块,具体包括: 组合指令发送单元; 所述组合指令发送单元,用于向所述被测试程序循环发送组合测试指令,所述组合测试指令包括至少一个按照预定顺序排列的相同或不同的测试指令。
9.根据权利要求6所述的测试系统,其特征在于,所述监控终端,具体包括: 测试判断模块和启动发送模块;所述测试判断模块,用于判断所述被测试程序的进程是否存在,且判断所述测试终端是否正常输出测试日志; 所述启动发送模块,用于如果所述测试判断模块判断所述被测试程序的进程不存在,或者判断所述测试终端不正常输出测试日志,则向所述测试终端发送启动测试指令,以便所述测试终端执行下一次对被测试程序的测试过程。
10.根据权利要求9所述的测试系统,其特征在于,所述监控终端,还包括: 日志记录模块; 所述日志记录模块,用于 记录当前时间和当前判断日志作为被测试程序的崩溃记录。
【文档编号】H04L12/26GK103516557SQ201210213302
【公开日】2014年1月15日 申请日期:2012年6月26日 优先权日:2012年6月26日
【发明者】边畅 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1