一种软件测试方法和装置制造方法

文档序号:6501149阅读:320来源:国知局
一种软件测试方法和装置制造方法
【专利摘要】本发明属于软件测试领域,提供了一种软件测试方法和装置,该方法包括:a)、接收测试用例和测试参数;b)、使用所述测试用例加载所述测试参数执行漏洞测试;c)、判断测试次数是否大于预设的最大测试次数;d)、如果所述测试次数小于或等于所述最大测试次数,将所述测试参数进行变换组合得到新的测试参数,并返回步骤b)。本发明实施例能够对输入的测试参数进行变换组合,可以自动生成新的测试参数,自动进行多次的漏洞测试,从而有效的解决现有技术设置好测试参数后无法发现测试参数范围外的漏洞的问题,不需要人工进行测试参数的增加,能够提高测试效率和测试的便利性。
【专利说明】一种软件测试方法和装置

【技术领域】
[0001]本发明属于软件测试领域,尤其涉及一种软件测试方法和装置。

【背景技术】
[0002]为使软件或者系统等产品能够正常运行或者防止非法用户入侵,在软件或系统投入使用前或者投入使用时,需要对产品进行测试,以提高其稳定性和安全性。
[0003]如图1为现有的软件产品测试流程示意图。在进行软件产品的测试前,测试人员设计好测试用例和准备好测试参数,然后启动自动化测试系统,由系统执行各个测试参数下的测试用例,在系统执行测试用例完毕后,输出测试报告。
[0004]采用上述测试方法,在设置详尽的测试参数以后,可以较好的完成对软件产品的漏洞测试。但是,这种方法一旦由用户设定好测试参数后,这些测试参数是固定的,系统无法发现测试用例设置的测试参数以外的软件产品的漏洞,测试效率不高,如果优化测试参数,需要人工进行添加和维护,操作较为麻烦。


【发明内容】

[0005]本发明实施例的目的在于提供一种软件测试方法,以解决现有技术中软件产品测试时,设置好测试参数后无法发现测试参数范围以外的漏洞的问题。从而提高测试效率和测试的便利性。
[0006]本发明实施例是这样实现的,一种软件测试方法,所述方法包括下述步骤:
[0007]a)、接收测试用例和测试参数;
[0008]b)、使用所述测试用例加载所述测试参数执行漏洞测试;
[0009]c)、判断测试次数是否大于预设的最大测试次数;
[0010]d)、如果所述测试次数小于或等于所述最大测试次数,将所述测试参数进行变换组合得到新的测试参数,并返回步骤b)。
[0011]本发明实施例的另一目的在于提供一种软件测试装置,所述装置包括:
[0012]接收单元,用于接收测试用例和测试参数;
[0013]漏洞测试的执行单元,用于使用所述测试用例加载所述测试参数执行漏洞测试;
[0014]判断单元,用于判断测试次数是否大于预设的最大测试次数;
[0015]测试参数变换单元,用于如果所述测试次数小于或等于所述最大测试次数,将所述测试参数进行变换组合得到新的测试参数。
[0016]在本发明实施例中,在接收测试用例和测试参数后,使用所述测试用例加载所述测试参数执行漏洞测试,然后对测试参数进行变换组合后重新进行测试,直到测试的次数达到预设的最大测试次数。本发明实施例能够对输入的测试参数进行变换组合,可以自动生成新的测试参数,自动进行多次的漏洞测试,从而有效的解决现有技术设置好测试参数后无法发现测试参数范围外的漏洞的问题,不需要人工进行测试参数的增加,能够提高测试效率和测试的便利性。

【专利附图】

【附图说明】
[0017]图1是本发明第一实施例提供的软件测试的实现流程图;
[0018]图2是本发明第二实施例提供的软件测试的实现流程图;
[0019]图3为本发明第二实施例提供的软件测试的又一实现流程图;
[0020]图4是本发明第三实施例提供的软件测试的结构框图。

【具体实施方式】
[0021]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0022]在本发明实施例中,在接收测试用例和测试参数后,使用所述测试用例加载所述测试参数执行漏洞测试,然后对测试参数进行变换组合后重新进行测试,直到测试的次数达到预设的最大测试次数。由于其能够对输入的测试参数进行变换组合,可以自动生成新的测试参数,自动进行多次的漏洞测试,从而有效的解决现有技术设置好测试参数后无法发现测试参数范围外的漏洞的问题,不需要人工进行测试参数的增加,能够提高测试效率和测试的便利性。而设置最大测试次数,可以避免系统作过多重复测试操作,节省系统资源。在测试后对测试参数分析,过滤掉部分未出现异常的测试参数,能够对测试参数进行更好的优化,进一步提高测试效率。
[0023]实施例一:
[0024]图1示出了本发明实施例一提供的软件测试,特别是在浸透测试中的实现流程,详述如下:
[0025]在步骤SlOl中,接收测试用例和测试参数。
[0026]具体的,本发明所述测试用例,是指为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。测试参数是指用于测试用例输入的测试参数。而渗透测试,是为了证明网络防御按照预期计划正常运行而提供的一种机制。
[0027]所接收的测试用例和测试参数,为软件测试人员预先制定的,根据不同的软件测试设置不同的测试用例,或者在同一软件的不同阶段制作不同的测试用例和使用不同的测试参数。
[0028]在步骤S102中,使用所述测试用例加载所述测试参数执行漏洞测试。
[0029]具体的,对于设置有多个测试参数的测试过程,由测试用例逐个加载所述测试参数执行漏洞测试,根据测试用例的执行条件和预期结果,可以判断所述测试参数是否属于出现异常的测试参数或者属于未出现异常的测试参数。
[0030]在步骤S103中,判断测试次数是否大于预设的最大测试次数。
[0031]具体的,预设的最大测试次数一般可根据测试的具体情况灵活设定,考虑到测试参数重新变换组合的可能性,可根据测试参数的个数设定与测试参数的个数相近。如某个测试用例输入的测试参数为10个,可设置最大测试次数为10次,当然其并不局限于此,具体测试还应以具体情况而定。
[0032]在每执行步骤S102所述的漏洞测试后,计数器对测试次数加I操作,然后执行本步骤所述的比较操作。
[0033]在步骤S104中,如果所述测试次数小于或等于所述最大测试次数,将所述测试参数进行变换组合得到新的测试参数,并返回步骤102采用新的测试参数重新执行漏洞测试。
[0034]具体的,经过步骤S103所述的判断步骤,当测试次数不大于所述预设的最大次数时,表示还可以进行下一次的测试操作。
[0035]在所述测试次数小于或等于所述最大测试次数,所述测试参数的变换组合可以包括下面各参数中的一种或多种:
[0036]所述测试次数小于或等于所述最大测试次数时的测试参数;
[0037]将所述测试参数截断后进行随机组合;
[0038]将所述测试参数的一部分用随机数代替,得到新的测试参数。
[0039]关于对所述参数截断后进行随机组合举例如下:测试次数小于或等于所述最大测试次数时的测试参数包括两个,分别为X和Y,测试参数X包括[a,b,c,d]四个数值,测试参数Y包括[e,f,g,h]四个数值,对测试参数截断后重新组合,如对X和Y的中间截断,重新组合后得到测试参数集合:[a, b, g, h]、[e, f, c, d]、[a, b, e, f]、[c, d, g, h],当然也可以有多种截断方式,如将测试参数X的中的一个或者三个值用测试参数Y中的相应个数的值代替,在此不罗列。
[0040]关于将将所述测试参数的一部分用随机数代替举例如下:测试次数小于或等于所述最大测试次数时的测试参数包括两个,分别为X和Y,测试参数X包括[a,b,c,d]四个数值,测试参数Y包括[e,f,g,h]四个数值,那么,可以对测试参数中的一个、两个、三个或者四个数值进行随机变换,得到随机产生的数值所替换的新的测试参数,如随机产生的新的测试参数为[I,m, η, ο]。
[0041]在本发明实施例中,在执行漏洞测试后,可对测试参数进行变换组合,生成新的测试参数继续对软件进行测试,直到达到最大测试次数,和现有技术的漏洞测试方式相比,其测试参数可以自动生成,可以更为全面的对软件进行测试,测试方便的同时,也可提高测试效率。
[0042]实施例二:
[0043]图2示出了本发明第二实施例提供的软件测试方法和流程示意图,详述如下:
[0044]在步骤S201中,设置最大测试次数和/或设置无效参数最大执行次数。
[0045]具体的,所述最大测试次数,是指本发明实施例中执行漏洞测试次数的最大值。所述无效参数,是指将测试参数经过测试用例的执行条件的漏洞测试操作后,其输出结果与预期结果相符,没有出现异常的那些测试参数。无效参数的最大执行次数,其设定的值一般比最大执行次数的值小。
[0046]在步骤S202中,接收测试用例和测试参数。
[0047]在步骤S203中,使用所述测试用例加载所述测试参数执行漏洞测试。
[0048]在步骤S204中,判断测试次数是否大于预设的最大测试次数。
[0049]步骤S202-S204与实施例一所述的步骤S101-S103相同,在此不作重复赘述。
[0050]在步骤S205中,如果所述测试次数小于或等于所述最大测试次数,获取执行漏洞测试时未出现异常的测试参数集合。
[0051]具体的,在漏洞测试过程中,对于输入的测试参数,在完成测试用例中制定的执行条件后,有可能得到的不是预期的结果,对于执行测试用例中的执行条件得到不符合预期结果的测试参数,我们称之为出现异常的测试参数,对应的,对于那些执行测试用例的执行条件符合预期结果的测试参数,我们称之为未出现异常的测试参数。
[0052]预期结果和执行条件以及输入的测试参数,在步骤S202由用户输入或者制定。
[0053]在步骤S206中,将所述未出现异常的测试参数集合中的各测试参数的执行次数与预设的无效参数最大执行次数相比较,过滤掉所述未出现异常的测试参数集合中超过预设的无效参数最大执行次数的测试参数。
[0054]由于在步骤S201中设置了无效参数最大执行次数,将未出现异常的测试参数的执行次数与所述无效参数最大执行次数比较,若大于所述无效参数最大执行次数,由于其未发现软件漏洞,可对其进行过滤处理。
[0055]如果未出现异常的参数的执行次数小于所述无效参数最大执行次数,则对所述未出现异常的测试参数的执行次数加一。
[0056]在步骤S207中,将所述测试参数进行变换组合得到新的测试参数,并将所述新的测试参数返回步骤S203。
[0057]具体的,将所述测试参数进行变换组合得到新的测试参数,所述新的测试参数可以包括以下一种或多种:
[0058]将所述未出现异常的测试参数集合中未超过预设的无效参数最大执行次数的测试参数集合D ;
[0059]发现异常的参数集合B;
[0060]将所述测试参数集合D和测试参数集合B的测试参数截断后进行随机组合得到的新的测试参数;
[0061]和/或将所述测试参数集合D和测试参数集合B的测试参数的一部分用随机数代替,得到新的测试参数。
[0062]在步骤S208中,如果所述测试次数大于所述最大测试次数,记录测试结果并输出测试报告。
[0063]在超过设置的最大测试测试次数后,表明当前测试完成,将记录的测试结果输出,得到测试报告。
[0064]为便于理解本实施例所述方案,现对照图3进一步说明如下:
[0065]在301中,设定测试数据,所述测试数据包括原始测试参数集合A、无效参数最大执行次数和执行最大轮数。
[0066]在302中,接收测试用例。所述测试用例为对系统进行测试所选定的与测试参数相对应的测试用例。
[0067]在303中,在所述待测试的系统上加载所述测试参数,执行所述测试用例。
[0068]在304中,判断是否达到最大执行次数,如果是则转到步骤S305,否则转至306。
[0069]在305中,输出测试报告,所述测试报告包括是否发现异常和引起异常的测试参数及异常的结果等。
[0070]在306中,对所述测试参数进行分类,得到发现异常的测试参数集合B和未发现异常的测试参数集合C。
[0071 ] 在307中,对所述未发现异常的测试参数集合C的执行次数进行比较,过滤掉超过最大无效执行次数的测试参数,得到集合D。
[0072]在308中,合并发现异常的测试参数集合B和未发现异常的测试参数中参数集合D,所述参数集合D已过滤掉超过最大无效执行次数的测试参数,由参数集合B和参数集合D合并得到测试参数集合E。
[0073]在309中,对集合E的测试参数截断,相互随机组合得到集合El。
[0074]在310中,对集合E中的测试参数的部分值替换为随机值得到集合E2。
[0075]在311中,由测试参数集合E、E1、E2得到新的测试参数集合F,并返回303中加载新的测试参数集合F。
[0076]本发明实施例中,在接收测试用例和测试参数后,使用所述测试用例加载所述测试参数执行漏洞测试,然后对测试参数进行变换组合后重新进行测试,直到测试的次数达到预设的最大测试次数。由于其能够对输入的测试参数进行变换组合,可以自动生成新的测试参数,自动进行多次的漏洞测试,从而有效的解决现有技术设置好测试参数后无法发现测试参数范围外的漏洞的问题,不需要人工进行测试参数的增加,能够提高测试效率和测试的便利性。而设置最大测试次数,可以避免系统作过多重复测试操作,节省系统资源。在测试后对测试参数分析,过滤掉部分未出现异常的测试参数,能够对测试参数进行更好的优化,进一步提高测试效率。
[0077]实施例三:
[0078]图3示出了本发明第三实施提供了软件测试的装置的结构框图,详细描述如下:
[0079]本发明实施例所述的软件测试装置,包括接收单元401、漏洞测试的执行单元402、判断单元403和测试参数变换单元404,其中
[0080]所述接收单元401,用于接收测试用例和测试参数;
[0081]漏洞测试的执行单元402,用于使用所述测试用例加载所述测试参数执行漏洞测试;
[0082]判断单元403,用于判断测试次数是否大于预设的最大测试次数;
[0083]测试参数变换单元404,用于如果所述测试次数小于或等于所述最大测试次数,将所述测试参数进行变换组合得到新的测试参数。
[0084]为有效的控制测试次数和得到测试结果,所述装置还可包括:记录输出单元405,用于如果所述测试次数大于所述最大测试次数,记录测试结果并输出测试报告。
[0085]为对测试参数进行有效的筛选和优化,所述装置还包括:
[0086]设置单元406,用于设置最大测试次数和/或设置无效参数最大执行次数。
[0087]测试参数获取单元407,用于获取执行漏洞测试时未出现异常的测试参数集合;
[0088]测试参数过滤单元408,用于将所述未出现异常的测试参数集合中的各测试参数的执行次数与预设的无效参数最大执行次数相比较,过滤掉所述未出现异常的测试参数集合中超过预设的无效参数最大执行次数的测试参数。
[0089]在本发明实施例中,所述测试参数变换单元404具体为:将所述测试参数随机组合和/或将所述测试参数用随机数代替,得到新的测试参数,并发送至漏洞测试的执行单元402重新进行测试。
[0090]本发明实施例所述的软件测试装置与实施例2所述的软件测试方法相对应,在此不作重复赘述。
[0091]值得注意的是,上述装置和系统实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0092]另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如R0M/RAM、磁盘或光盘等。
[0093]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种软件测试方法,其特征在于,所述方法包括: a)、接收测试用例和测试参数; b)、使用所述测试用例加载所述测试参数执行漏洞测试; c)、判断测试次数是否大于预设的最大测试次数; d)、如果所述测试次数小于或等于所述最大测试次数,将所述测试参数进行变换组合得到新的测试参数,并返回步骤b)。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 如果所述测试次数大于所述最大测试次数,记录测试结果并输出测试报告。
3.根据权利要求1-2任一项所述的方法,其特征在于,所述步骤如果所述测试次数小于或等于所述最大测试次数,将所述测试参数进行变换组合得到新的测试参数具体为: 将所述测试参数截断后进行随机组合,和/或将所述测试参数的一部分用随机数代替,得到新的测试参数。
4.根据权利要求1所述的方法,其特征在于,在所述将所述测试参数进行变换组合得到新的测试参数步骤前,还包括: 获取执行漏洞测试时 未出现异常的测试参数集合; 将所述未出现异常的测试参数集合中的各测试参数的执行次数与预设的无效参数最大执行次数相比较,过滤掉所述未出现异常的测试参数集合中超过预设的无效参数最大执行次数的测试参数。
5.根据权利要求4所述的方法,其特征在于,所述步骤如果所述测试次数小于或等于所述最大测试次数,将所述测试参数进行变换组合得到新的测试参数具体为: 得到未出现异常的测试参数集合中未超过预设的无效参数最大次数的测试参数集合A和发现异常的参数集合B,将参数集合A和参数集合B合并得到合并参数集,对合并参数集截断后进行随机组合和/或对合并参数集的参数的一部分进行随机数据代替,得到新的测试参数集合。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括: 设置最大测试次数或设置无效参数最大执行次数。
7.一种软件测试装置,其特征在于,所述装置包括: 接收单元,用于接收测试用例和测试参数; 漏洞测试的执行单元,用于使用所述测试用例加载所述测试参数执行漏洞测试; 判断单元,用于判断测试次数是否大于预设的最大测试次数; 测试参数变换单元,用于如果所述测试次数小于或等于所述最大测试次数,将所述测试参数进行变换组合得到新的测试参数。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括: 记录输出单元,用于如果所述测试次数大于所述最大测试次数,记录测试结果并输出测试报告。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括: 测试参数获取单元,用于获取执行漏洞测试时未出现异常的测试参数集合; 测试参数过滤单元,用于将所述未出现异常的测试参数集合中的各测试参数的执行次数与预设的无效参数最大执行次数相比较,过滤掉所述未出现异常的测试参数集合中超过预设的无效参数最大执行次数的测试参数。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括: 设置单元,用于设置最 大测试次数或设置无效参数最大执行次数。
【文档编号】G06F11/36GK104077215SQ201310101079
【公开日】2014年10月1日 申请日期:2013年3月26日 优先权日:2013年3月26日
【发明者】谢俊 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1