一种软件测试方法及装置制造方法
【专利摘要】本发明提供了一种软件测试方法及装置,该方法包括:监控被测试软件的至少一个关注模块分别对应的至少一个入口参数;如果监控到所述至少一个入口参数中的一个入口参数,启动所述入口参数所表示的关注模块;对所述关注模块进行随机测试。本发明实施例通过监控被测试软件的特定关注模块对应的入口参数,启动该特定关注模块,进而完成对该特定关注模块的随机测试,如此,实现集中测试被测试软件中的受关注模块,增加受关注模块的测试代码覆盖率以及测试时间,有效提高软件的稳定性测试。
【专利说明】一种软件测试方法及装置
【技术领域】
[0001]本发明涉及计算机【技术领域】,尤其涉及一种软件测试方法及装置。
【背景技术】
[0002]现有的手机端应用稳定性测试工具(例如,安卓系统的monkey测试)由于使用完全随机生成的操作类型进行操作,因此不支持操作业务的定制;由于只能保证在指定应用进行测试,只能全屏幕范围内随机的操作,导致了期望测试的业务场景无法被测试到,因此不能集中测试应用中的被测试模块,从而导致受到关注的被测试模块的测试代码覆盖率较低,因此只有极少占比的测试时间用于测试关注模块,只能发现极少的应用崩溃的问题。
【发明内容】
[0003]本发明实施例提供一种软件测试方法及装置,有效提高软件的稳定性测试。
[0004]为达到上述目的,本发明的实施例采用如下技术方案:
[0005]一种软件测试方法,该方法包括:
[0006]监控被测试软件的至少一个关注模块分别对应的至少一个入口参数;
[0007]如果监控到所述至少一个入口参数中的一个入口参数,启动所述入口参数所表示的关注|吴块;
[0008]对所述关注模块进行随机测试。
[0009]一种软件测试装置,该装置包括:
[0010]监控模块,用于监控被测试软件的至少一个关注模块分别对应的至少一个入口参数;
[0011]第一确定模块,用于如果监控到所述至少一个入口参数中的一个入口参数,启动所述入口参数所表示的关注模块;
[0012]第一测试模块,用于对所述关注模块进行随机测试。
[0013]本发明实施例提供的软件测试方法及装置,通过监控被测试软件的特定关注模块对应的入口参数,启动该特定关注模块,进而完成对该特定关注模块的随机测试,如此,实现集中测试被测试软件中的被测试模块,增加受到关注的被测试模块的测试代码覆盖率以及测试时间,有效提高软件的稳定性测试。
【专利附图】
【附图说明】
[0014]图1为本发明一个实施例提供的一种软件测试方法的流程图。
[0015]图2为图1所示实施例的启动关注模块进行测试的示例图。
[0016]图3为在图2所示图的基础上点击关注模块启动测试的示例图。
[0017]图4为图1所示实施例的软件测试方法的业务化操作配置测试的流程图。
[0018]图5为图4所示实施例提供的软件测试方法的业务化操作配置的示例图。
[0019]图6为本发明另一个实施例提供的一种软件测试方法的流程图。
[0020]图7为图6所示实施例的软件测试方法的指定区域范围内的测试示例图。
[0021]图8为本发明实施例的在重启被测试软件后再次进行软件测试的流程图。
[0022]图9为图8所示实施例的再次启动软件测试的操作流程图。
[0023]图10为本发明一个实施例提供的一种软件测试装置的结构示意图。
[0024]图11为本发明另一个实施例提供的一种软件测试装置的结构示意图。
【具体实施方式】
[0025]下面结合附图对本发明实施例提供的软件测试方法及装置进行详细描述。
[0026]图1为本发明一个实施例提供的一种软件测试方法的流程图,如图1所示,软件测试方法包括:
[0027]步骤101,监控被测试软件的至少一个关注模块分别对应的至少一个入口参数。
[0028]步骤102,如果监控到至少一个入口参数之一,则启动该入口参数所表示的关注模块。
[0029]步骤103,对关注模块进行随机测试。
[0030]本领域技术人员可以理解的是,由于手机端上应用的稳定性测试工具(例如,安卓手机的monkey)进行软件测试时的随机性,可能会导致测试过程中启动其它的模块进行测试,例如,某次测试中主要是针对“轻应用”模块的稳定性进行测试,但是由于测试的随机性,则启动“相册备份”等模块进行测试,如此,对于“轻应用”模块的稳定性测试来说就是完全无效的。
[0031]需要说明的是,根据本发明一实施例,关注模块为本次测试中针对性测试的应用模块,例如,手机端上百度网盘应用里的“轻应用”模块,“相册备份”模块等,在此仅为对关注模块的示例性说明,实际测试过程中不限于这两种模块,可以是手机端或者是其他移动终端设备上的任何一个模块。
[0032]根据本发明一实施例,在步骤101中,通过监控被测试软件的至少一个关注模块的分别对应的至少一个入口参数,以确定启动其中一个关注模块。其中,本发明实施例中所述的入口参数,包括但不限于关注模块的名称、关注模块的图标。
[0033]例如,使用参数:-apackage/activity/item[/index], item 表示关注模块的控件的名称,如果有多个名称相同的关注模块,则用[/index]表示第几个,从而保证稳定性测试工具对特定的关注模块进行测试,举例来说,在百度网盘中,前述提及的“轻应用”模块的入口可表不为:~a com.baidu.netdisk/com.baidu.netdisk.u1.MainActivity/LightAppPluginsItem View。
[0034]如果步骤101中未监控到至少一个入口参数中的任何一个入口参数,则将产生随机的操作类型,对被测试软件进行随机测试,例如安卓手机的monkey随机性地对被测软件进行测试。
[0035]如果步骤101中监控到至少一个入口参数中的一个入口参数,则在步骤102中,启动入口参数所表示的关注模块。例如,某次测试的关注模块包括“轻应用”这一模块,打开稳定性测试工具(例如,安卓手机的monkey)后,在入口界面中监控到了关注模块“轻应用”的名称,即监控到了关注模块“轻应用”的入口参数,便可启动该入口参数对应的“轻应用”模块。另一方面,在步骤102中,还可将所有的监控入口参数进行保存,以备以后测试过程中直接调用。
[0036]在步骤103中,对步骤102中启动的关注模块进行随机测试。在随机测试过程中,将再次检测当前测试界面是否是所有监控入口(本发明实施例中所述的入口参数)之一,以确保顺利完整地完成对关注模块的稳定性测试。如果检测到是所有监控入口(入口参数)之一,则点击该监控入口(入口参数)的入口项,启动关注模块界面,否则,产生随机的操作类型,随机生成操作的具体参数进行操作。
[0037]如图2中所示,为图1所示实施例的启动关注模块入口界面的示例图,如图3所示,为在图2所示图的基础上点击关注模块启动测试的示例图。
[0038]参照图2,打开稳定性测试工具(例如,安卓系统的monkey测试),启动需要测试模块(关注模块)的上一个界面,需要测试的模块为“轻应用”模块,亦即“轻应用”为关注模块,这一界面即为我们的关注模块“轻应用”的入口界面,在界面中,可以找到“轻应用”对应的入口参数(例如,名称“轻应用”),点击该入口参数即可启动“轻应用”模块,对“轻应用”模块进行稳定性测试,如图3所示。
[0039]如图4所示,为图1所示实施例的软件测试方法的业务化操作配置测试的流程图。根据本发明一实施例,在步骤103中,首先,检测是否有业务化操作配置参数,如果有,则根据业务化操作配置参数以配置的概率对关注模块进行随机测试。
[0040]参照图4,业务化操作配置测试可包括以下步骤:
[0041]步骤201,检测是否有业务化操作配置参数,如果有,则执行步骤202,否则,直接执行步骤203。
[0042]步骤202,保存所有的业务化操作对应的脚本名称,执行步骤203。
[0043]步骤203,产生随机的操作类型,执行步骤204。
[0044]步骤204,检测随机的操作类型是否为业务操作,如果是,则执行步骤205,否则,执行步骤206。
[0045]步骤205,根据业务化操作配置参数对关注模块进行业务化操作,返回执行步骤203。
[0046]步骤206,在随机产生的操作类型下,随机生成操作的具体参数进行操作,返回执行步骤203。
[0047]本领域技术人员可以理解的是,稳定性测试即是模拟用户的随机操作(例如,在屏幕上点击、拖拽等),由于这些操作均是随机的,所以有的测试场景比较难以达到,相应场景的功能则不能被测试到,则可以通过业务化操作配置对随机操作进行限定,从而制造出相应的场景使其对应的功能能够被测试到。
[0048]如图5所示,为图4所示实施例提供的软件测试方法的业务化操作配置的示例图。参照图5,在图3所示的启动关注模块“轻应用”之后,在对“轻应用”这一关注模块进行稳定性测试的过程中,希望这次测试一定要测试到“轻应用”模块的“设置”场景,即一定要启动“设置”去进行操作,就可以通过业务化操作配置“轻应用”模块的“设置”业务场景的脚本,从而实现对“设置”场景的稳定性测试。
[0049]此外,根据业务化操作配置参数以配置的概率对关注模块进行随机测试,具体地,打开稳定性测试工具后,即检测业务化操作配置参数中是否包括业务化操作占对被测试模块中的所有操作的比例值;如果有该比例值,根据该比例值对业务化操作进行测试。
[0050]其中,业务化配置参数可表示为:-m/data/local/tmp/enter.sh,可支持多个-m,即同一次测试中,可支持多个业务化操作;前述比例值可表示为:--pCt-CUStom 5,即所有业务化操作占所有操作的比例值。举例来说,某次业务化操作为启动“设置”场景,且其所占比例值如上设为5 (即,一pct-custom 5),即测试中打开“设置”场景的操作为5%,其它的操作为随机操作。
[0051]图6为本发明另一个实施例提供的一种软件测试方法的流程图。参照图6,软件测试方法还可包括如下步骤:
[0052]步骤301,监控被测试软件的至少一个关注模块分别对应的至少一个入口参数,执行步骤302。
[0053]步骤302,如果监控到至少一个入口参数中的一个入口参数,启动入口参数所表示的关注模块,执行步骤303。
[0054]步骤303,检测是否有对被测试模块进行操作的范围区域参数,如果有,则执行步骤304,否则,执行步骤305。
[0055]步骤304,保存对被测试模块进行操作的范围区域参数,执行步骤305。
[0056]步骤305,产生随机的操作类型,执行步骤306。
[0057]步骤306,检测是否有对被测试模块进行操作的范围区域参数,如果有,则执行步骤307,否则执行步骤308。
[0058]步骤307,在随机生成的操作类型下,随机生成操作的具体参数限制在指定范围内,并执行该操作,执行步骤305。
[0059]步骤308,在随机生成的操作类型下,随机生成的具体参数进行操作,执行步骤305。
[0060]步骤301和步骤302在图1所示的步骤101及步骤102中已进行详细说明,步骤305和步骤308均为现有稳定性测试的步骤,在此均不再详述。
[0061]在步骤304中,将被测试模块进行操作的范围区域参数进行保存,可用于后续测试过程中调用。
[0062]在步骤306中,重复步骤303的过程,再次检测是否有配置指定屏幕范围参数,以确保产生随机的操作类型的操作在指定屏幕范围内进行。
[0063]其中,由于稳定性测试工具的应用宿主(例如,手机)形状通常为矩形,则可将范围区域参数表示为:_I Xmin, Ymin, Xmax, Ymax,例如:-1 0,40,400,890,即指定一个可操作的矩形范围,在测试过程中,测试操作被限制在该指定范围内。本领域技术人员可以理解的是,范围区域参数可以根据应用宿主的具体形状进行调整,本发明实施例仅作为示例性进行说明,而不是作为对范围区域参数的限定。
[0064]如果步骤306中确定配置有指定屏幕范围参数,则在步骤307中将操作的具体参数限制在该指定屏幕范围内进行,从而实现在指定屏幕范围的稳定性测试。步骤307完成后,返回步骤305,再次循环进行测试,从而保障完成在该指定屏幕范围内的各类操作类型,且保障在整个稳定性测试过程,不会操作到指定的范围以外,使测试更加有效。
[0065]如图7所示,为图6所示实施例的软件测试方法的指定区域范围内的测试示例图。
[0066]参照图7,在进行“轻应用”模块的稳定性测试的时候,只关注“轻应用”模块中网页上的内容(如图中所示的粗线框内),而不需要操作其下面的toolbar(工具栏),此时,如果设置指定屏幕范围参数为[xl,yl, x2, y2](如图中所示的粗线框内),即可使用图5所示的实施例的软件测试方法,实现指定范围[xl,yl,x2,y2]的屏幕上进行测试操作的功能。
[0067]图8为本发明实施例的在重启被测试软件后再次进行软件测试的流程图。参照图8,在图1和图6所示实施例的基础之上,在重启所述被测试软件后,软件测试方法还可包括如下步骤:
[0068]步骤401,确定启动当前被测试模块的界面的已重试次数,执行步骤402。
[0069]步骤402,确定当前已重试次数是否超过设定次数,如果是,执行步骤403,否则,执行步骤404。
[0070]步骤403,根据随机产生的操作类型对被测试模块进行测试。
[0071]步骤404,执行按照设定的预处理配置文件里的配置参数进行操作从而启动到关注模块的步骤,对关注模块进行测试。
[0072]根据本发明一实施例,在步骤404中,具体的步骤即是按照重新启动到关注模块预处理配置文件中的设定的操作启动关注模块,需要说明的是,预处理配置文件即用于存储从被测应用打开之后启动到关注模块所需的所有操作。
[0073]本领域技术人员可以理解的是,在首次打开安卓稳定性测试工具对关注模块进行测试,或着,在测试过程中,被测试的网盘崩溃了,需要重新启动网盘启动到关注模块进行测试,无论是上述任何一种情况,均需要进行很多步的操作才能启动关注模块,为了确保重启被测试软件后再次进行软件测试时,能够启动重启前测试的关注模块,根据本发明一实施例,采用设定次数的方式,在重新启动失败的情况下(例如,当前网络不稳定,导致关注模块界面未能加载成功,此时,则不能顺利启动该关注模块进行测试),能够多次重试启动重启前测试的关注模块,例如,可以将重启被测试软件后再次进行该软件(或关注模块)测试的参数设定为:_r/data/local/tmp/reenter_net.txt - e 3,其中,3表示已重试次数。
[0074]为使本技术方案更容易理解,如图9所示,为图8所示实施例的再次启动软件测试的操作流程图。
[0075]参照图9,再次启动软件测试的具体操作步骤如下:
[0076]步骤501,确定是否有配置重新启动关注模块的参数,如果有,执行步骤502,否贝1J,执行步骤508。其中,重新启动到关注模块的参数为_r/data/local/tmp/reenter_net.txt,包括但不限于,关注模块的名称及关注模块的图标。
[0077]步骤502,保存重新启动关注模块的配置文件的名称,执行步骤503。
[0078]步骤503,检测被测试的应用是否已经打开,如果是,执行步骤504,否则执行步骤505。
[0079]步骤504,关闭被测试的应用,执行步骤505。
[0080]步骤505,打开被测试的应用,执行步骤506。
[0081]步骤506,按照配置文件中的重新启动关注模块的配置参数进行操作,执行步骤507。
[0082]例如,配置文件中的配置参数指导启动“百度云”中的“轻应用”模块进行测试,且对“轻应用”模块的“设置”进行测试,在开始测试时,将会打开“百度云”,根据入口参数找到“轻应用”模块,并对“轻应用”模块的“设置”工具栏进行测试。
[0083]步骤507,检测操作完成后的当前界面是否为期望被测试的关注模块界面,如果是,执行步骤508,否则,执行步骤509。
[0084]本领域技术人员可以理解的是,在进行测试时,可能会对某一关注模块的不同界面上的内容进行测试,所以测试完成后,将不是在关注模块的入口界面,也可能是跳转到其他非关注模块界面,通过执行步骤507,以保证下一检测操作仍然在期望被测试的关注模块界面,从而实现对特定关注模块的稳定性测试。
[0085]步骤508,产生随机的操作类型,执行步骤510。
[0086]步骤509,确定重新启动关注模块的次数是否超过设定次数,如果是,执行步骤508,否则,执行步骤503。
[0087]步骤510,在随机生成的操作类型下,根据随机生成操作的具体参数进行操作。
[0088]以如图2和图3所示的对“轻应用”模块进行稳定性测试为例,对图9所示的操作步骤进一步进行示例性说明。
[0089]本领域技术人员可以理解的是,首次去打开测试时,是需要很多步的操作才能够启动到“轻应用”模块中,或者测试过程中被测试的网盘崩溃了,需要重启再启动网盘启动至IJ“轻应用”进行测试。根据本发明一实施例,可通过图1所示实施例的监控入口参数,以保证在进行稳定测试前都能启动到“轻应用”,且保证所有的稳定性测试都是在“轻应用”模块里进行。
[0090]根据本发明另一实施例,在开始一次稳定性测试前,可以按照配置文件中存储的操作步骤,解析启动到关注界面需要进行的操作,按操作一步一步地启动到关注模块的界面,再开始真正的稳定性测试。
[0091]例如,打开应用入口界面,找到被测试应用“百度云”,将其打开,启动“百度云”首界面,进行登录操作,登录成功后进行设置操作,经过前述这一系列操作后,启动关注模块“轻应用”入口界面,检测“轻应用”的入口参数(具体可以参考如图1所示实施例的技术方案),如检测到,则点击“轻应用”,开始对关注模块“轻应用”进行稳定性测试。
[0092]在稳定性测试过程中,可能会因为网络不稳定等问题导致被测试应用或者关注模块未能加载成功,从而影响对其的稳定性测试,此时,便可通过图8所示实施例的技术方案,通过设定重试次数,使稳定性测试进行多次重新启动操作,以保证完成对关注模块的稳定性测试。
[0093]反之,如果不设定重试次数,则稳定性测试只进行一次重新启动操作,如果此次重新启动未能成功,则将随机性对其他非关注模块进行测试,从而不能集中测试应用中的被测试模块,且期望测试的业务场景无法被测试到。
[0094]本发明实施例提供的软件测试方法,通过监控被测试软件的特定关注模块对应的入口参数,启动该特定关注模块,进而完成对该特定关注模块的随机测试,如此,实现集中测试被测试软件中的被测试模块,增加受关注模块的测试代码覆盖率以及测试时间,有效提高软件的稳定性测试。
[0095]图10为本发明一个实施例提供的一种软件测试装置的结构示意图;如图10所示,本发明实施例包括:
[0096]监控模块11,用于监控被测试软件的至少一个关注模块分别对应的至少一个入口参数;
[0097]第一确定模块12,用于如果监控到所述至少一个入口参数中的一个入口参数,启动所述入口参数所表示的关注模块;
[0098]第一测试模块13,用于对所述关注模块进行随机测试。
[0099]进一步地,第一测试模块13包括:
[0100]第一检测单元(图中未示出),用于检测是否有业务化操作配置参数;
[0101]第一测试单元(图中未示出),用于如果有业务化操作配置参数,根据所述业务化操作配置参数以配置的概率对所述关注模块进行包含所述业务化操作的随机测试。
[0102]进一步地,所述第一测试单元包括:
[0103]第二检测子单元(图中未示出),用于检测所述业务化操作配置参数中是否包括业务化操作占对所述被测试模块中的所有操作的比例值;
[0104]第二测试子单元(图中未示出),用于如果有所述比例值,根据所述比例值对所述业务化操作进行测试。
[0105]本发明实施例的有益技术效果请参见上述图1和图4所示实施例的有益技术效果,在此不再详述。
[0106]图11为本发明另一个实施例提供的一种软件测试装置的结构示意图;如图11所示,在上述图10所示实施例的基础上,本发明实施例中的软件测试装置10包括:
[0107]检测模块14,用于检测是否有对所述被测试模块进行操作的范围区域参数;
[0108]第二测试模块15,用于如果有所述范围区域参数,在所述范围区域参数所表示的区域内对所述关注模块进行随机测试。
[0109]第二确定模块16,用于确定启动所述当前被测试模块的界面的已重试次数;
[0110]第三测试模块17,用于如果所述已重试次数超过设定次数,根据随机产生的操作类型对所述被测试模块进行测试;
[0111]第四测试模块18,用于如果所述已重试次数未超过所述设定次数,执行所述监控被测试软件的至少一个关注模块分别对应的至少一个入口参数的步骤,对所述关注模块进行测试。
[0112]本发明实施例的有益技术效果请参见上述图6和图9所示实施例的有益技术效果,在此不再详述。
[0113]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
【权利要求】
1.一种软件测试方法,其特征在于,所述方法包括: 监控被测试软件的至少一个关注模块分别对应的至少一个入口参数; 如果监控到所述至少一个入口参数中的一个入口参数,启动所述入口参数所表示的关注模块; 对所述关注模块进行随机测试。
2.根据权利要求1所述的方法,其特征在于,所述对所述关注模块进行随机测试的步骤包括: 检测是否有业务化操作配置参数; 如果有业务化操作配置参数,根据所述业务化操作配置参数以配置的概率对所述关注模块进行包含所述业务化操作的随机测试。
3.根据权利要求2所述的方法,其特征在于,所述根据所述业务化操作配置参数以配置的概率对所述关注模块进行随机测试的步骤包括: 检测所述业务化操作配置参数中是否包括业务化操作占对所述被测试模块中的所有操作的比例值; 如果有所述比例值,根据所述比例值对所述业务化操作进行测试。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括: 检测是否有对所述被测试模块进行操作的范围区域参数; 如果有所述范围区域参数,在所述范围区域参数所表示的区域内对所述关注模块进行随机测试。
5.根据权利要求1-4任一所述的方法,其特征在于,在重启所述被测试软件后,所述方法还包括: 确定启动所述当前被测试模块的界面的已重试次数; 如果所述已重试次数超过设定次数,根据随机产生的操作类型对所述被测试模块进行测试; 如果所述已重试次数未超过所述设定次数,执行所述监控被测试软件的至少一个关注模块分别对应的至少一个入口参数的步骤,对所述关注模块进行测试。
6.一种软件测试装置,其特征在于,所述装置包括: 监控模块,用于监控被测试软件的至少一个关注模块分别对应的至少一个入口参数;第一确定模块,用于如果监控到所述至少一个入口参数中的一个入口参数,启动所述入口参数所表示的关注模块; 第一测试模块,用于对所述关注模块进行随机测试。
7.根据权利要求6所述的装置,其特征在于,所述第一测试模块包括: 第一检测单元,用于检测是否有业务化操作配置参数; 第一测试单元,用于如果有业务化操作配置参数,根据所述业务化操作配置参数以配置的概率对所述关注模块进行包含所述业务化操作的随机测试。
8.根据权利要求7所述的装置,其特征在于,所述第一测试单元包括: 第二检测子单元,用于检测所述业务化操作配置参数中是否包括业务化操作占对所述被测试模块中的所有操作的比例值; 第二测试子单元,用于如果有所述比例值,根据所述比例值对所述业务化操作进行测试。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括: 检测模块,用于检测是否有对所述被测试模块进行操作的范围区域参数; 第二测试模块,用于如果有所述范围区域参数,在所述范围区域参数所表示的区域内对所述关注模块进行随机测试。
10.根据权利要求6-9任一所述的装置,其特征在于,在重启所述被测试软件后,所述装置还包括: 第二确定模块,用于确定启动所述当前被测试模块的界面的已重试次数; 第三测试模块,用于如果所述已重试次数超过设定次数,根据随机产生的操作类型对所述被测试模块进行测试; 第四测试模块,用于如果所述已重试次数未超过所述设定次数,执行所述监控被测试软件的至少一个关注模块分别对应的至少一个入口参数的步骤,对所述关注模块进行测试。
【文档编号】G06F11/36GK104346279SQ201410584983
【公开日】2015年2月11日 申请日期:2014年10月27日 优先权日:2014年10月27日
【发明者】李向燕, 林荣文, 王磊 申请人:百度在线网络技术(北京)有限公司