一种系统测试的方法和装置制造方法

文档序号:6488621阅读:208来源:国知局
一种系统测试的方法和装置制造方法
【专利摘要】本发明提供了一种系统测试的方法和装置,针对包含一个以上的模块且用于确定对象状态的被测试系统,其中装置包括:主动验证模块,用于获取被测试系统的输出数据(key,value),key为被测试系统处理的对象,value为对象状态;将策略收集模块得到的状态数据(value’)与value进行比较,并根据比较结果确定被测试系统输出数据的正确性;属性获取模块,用于获取key对应的服务器针对key返回的属性数据(raw?value);策略收集模块,用于依据预设的属性数据与状态数据之间的转换策略,将raw?value转换为value’。本发明无需构造覆盖所有策略的用例输入和预期结果,降低了设计成本和复杂度。
【专利说明】一种系统测试的方法和装置【【技术领域】】
[0001]本发明涉及计算机应用【技术领域】,特别涉及一种系统测试的方法和装置。
【【背景技术】】
[0002]在对于多模块组成的用于确定对象状态的系统进行测试时,现有的测试方法主要是构造不同的用例输入,经过被测试系统多模块处理后,获取被测试系统的输出数据,将输出数据与预期结果进行比对来验证被测试系统的功能是否达到预期。
[0003]可以看出,现有的上述测试方法需要人工构造输入和预期结果,且对于多个模块策略交织较复杂的系统,往往需要先验证模块间的接口,再设计复杂的用例来覆盖所有的策略,设计成本和复杂度高。另外,如果系统处理的是海量数据,则设计成本和复杂度更高,且实时验证输出结果困难。

【发明内容】

[0004]本发明提供了一种系统测试的方法和装置,对多模块组成的用于确定对象状态的系统进行测试时,降低设计成本和复杂度。
[0005]具体技术方案如下:
[0006]一种系统测试的方法,针对包含一个以上的模块且用于确定对象状态的被测试系统,该方法包括:
[0007]S1、获取被测试系统的输出数据,所述输出数据包括key和value,所述key为被测试系统处理的对象,所述value为对象状态;
[0008]S2、获取所述key对应的服务器针对所述key返回的属性数据raw value ;
[0009]S3、依据预设的属性数据与状态数据之间的转换策略,将所述raw value转换为状态数据value’ ;
[0010]S4、比较所述value和value’,并根据比较结果确定被测试系统输出数据的正确性。
[0011]根据本发明一优选实施例,所述key为统一资源定位符url ;所述value为链接状态、网站类型或者页面类型。
[0012]根据本发明一优选实施例,所述value为链接状态时,所述raw value为服务器的返回码;
[0013]所述value为网站类型或者页面类型时,所述raw value为服务器返回的页面特征。
[0014]根据本发明一优选实施例,所述转换策略包括:属性数据的某个值达到预设次数时对应一种状态数据;则,
[0015]在所述步骤S2中还包括:依据所述转换策略中的预设次数确定获取所述rawvalue的次数,并按照确定的次数获取所述raw value,获取所述raw value的次数大于或等于所述预设次数。[0016]根据本发明一优选实施例,在所述步骤S2中还包括:将获取的所述key对应的rawvalue存储在状态词典中;
[0017]在所述步骤S3中依据所述状态词典中所述key对应的raw value执行所述转换的步骤,并将转换得到的value’存储在链接状态库中;
[0018]在所述步骤S4中从所述链路状态库中查询所述value ’。
[0019]一种系统测试的装置,针对包含一个以上的模块且用于确定对象状态的被测试系统,该装置包括:
[0020]主动验证模块,用于获取被测试系统的输出数据,所述输出数据包括key和value,所述key为被测试系统处理的对象,所述value为对象状态;将策略收集模块得到的value’与所述value进行比较,并根据比较结果确定被测试系统输出数据的正确性;
[0021]属性获取模块,用于获取所述key对应的服务器针对所述key返回的属性数据rawvalue ;
[0022]策略收集模块,用于依据预设的属性数据与状态数据之间的转换策略,将所述rawvalue转换为状态数据value’。
[0023]根据本发明一优选实施例,所述key为统一资源定位符url ;所述value为链接状态、网站类型或者页面类型。
[0024]根据本发明一优选实施例,所述value为链接状态时,所述raw value为服务器的返回码;
[0025]所述value为网站类型 或者页面类型时,所述raw value为服务器返回的页面特征。
[0026]根据本发明一优选实施例,所述转换策略包括:属性数据的某个值达到预设次数时对应一种状态数据;
[0027]所述主动验证模块,还用于依据所述转换策略中的预设次数确定获取所述rawvalue的次数,调用所述属性获取模块执行确定次数的获取raw value的操作,获取所述raw value的次数大于或等于所述预设次数。
[0028]根据本发明一优选实施例,所述属性获取模块将获取的所述key对应的rawvalue存储在状态词典中;
[0029]所述策略收集模块依据所述状态词典中所述key对应的raw value执行所述转换的步骤,并将转换得到的value’存储在链接状态库中;
[0030]所述主动验证模块调用所述属性获取模块执行确定次数的获取raw value的操作后,从所述链接状态库中查询所述value’。
[0031]由以上技术方案可以看出,本发明转换了思路不采用传统的构造用例输入以及比对预期结果的方式,而是直接获取被测试系统的输出数据作为测试装置的输入数据,依据被测试系统的输出数据通过外部工具重新获取对象的状态,将重新获取的状态与被测试系统的输出数据中对象的状态进行比对,从而得到测试结果。无需构造覆盖所有策略的用例输入和预期结果,降低了设计成本和复杂度,特别对于系统处理的是海量数据的情况效果尤为关出。
【【专利附图】

【附图说明】】[0032]图1为本发明实施例提供的被测试系统和测试装置的关系图;
[0033]图2为本发明实施例一提供的测试装置的结构示意图;
[0034]图3为本发明实施例二提供的系统测试方法的流程图。
【【具体实施方式】】
[0035]为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
[0036]图1为本发明实施例提供的被测试系统和测试装置的关系图,其中本发明实施例涉及的被测试系统包含一个以上的模块且用于确定对象状态,被测试系统的输出数据(key, value),其中key为被测试系统处理的对象,value为被测试系统确定的对象状态。
[0037]例如,如果被测试系统为死链挖掘系统,则其用于确定链接是否为死链这样一种客观状态,输出数据为(key, value), key为链接url, value为指示是否为死链的值,例如value为I指示死链,value为O指示非死链。
[0038]再例如,如果被测试系统为空白页面判别系统,则其用于确定链接是否指向空白页面,输出数据为(key, value), key为链接url, value为指示是否为空白页面的值。
[0039]再例如,如果被测试系统为色情网站挖掘系统,则其用于确定站点是否为色情网站,贝1J输出数据为(key, value), key为站点url, value为指示是否为色情网站的值。
[0040]测试装置的工 作原理是直接获取被测试系统的输出数据作为测试装置的输入数据,依据被测试系统的输出数据通过外部工具重新获取对象的状态,将重新获取的状态与被测试系统的输出数据中对象的状态进行比对,若一致则说明被测试系统的输出正确。下面通过实施例一对测试装置进行详细描述。
[0041]实施例一、
[0042]图2为本发明实施例一提供的测试装置的结构示意图,如图2所示,该测试装置包括:主动验证模块200、属性获取模块210和策略收集模块220。
[0043]主动验证模块200获取被测试系统的输出数据(key,value),将key提供给属性获取模块210。也就是说,被测试系统的输出数据作为测试装置的输入,无需额外人工构造输入。
[0044]属性获取模块210获取key对应的服务器针对该key返回的属性数据(rawvalue)。此处可以采用调用外部工具的方式依据key向对应的服务器发送请求,通常key为url,服务器返回的通常是诸如代表获取网页成功的200、代表无法找到服务器的400、代表找不到网页的404等返回码,或者是诸如页面内容、页面快照、页面摘要、页面标题等页面特征。
[0045]通常如果value为链接状态时,raw value为服务器的返回码,例如,value为url是否为死链,raw value可以是将包含url的请求发送给服务器后,服务器的返回码,诸如200、400、404 等。
[0046]如果value为网站类型或者页面类型时,raw value为服务器返回的页面特征。例如,value为url是否为空白页,raw value可以是将包含url的请求发送给服务器后,服务器返回的页面内容。再例如,value为url是否为色情网站,raw value可以是将包含url的请求发送给服务器后,服务器返回的诸如图片、关键字等页面特征。[0047]策略收集模块220依据预设的属性数据与状态数据之间的转换策略,将rawvalue转换为状态数据(value’)。
[0048]此处的转换策略可以是静态预置的,也可以提供用户接口供用户进行动态设置。转换策略可以是返回码值对应的链路状态、页面特征对应的网站类型或者页面特征对应的页面类型。例如,400、404对应的链路状态为死链,还可以进一步划分更细的粒度,根据不同的返回值确定出具体是协议死链还是内容死链。再例如,包含某些预设黄色关键字的页面内容对应的网站类型为黄色网站。
[0049]主动验证模块200获取策略收集模块220得到的value’,将其与value进行比较,根据比较结果确定被测试系统输出数据的正确性。
[0050]另外,转换策略中除了存在上述对应关系之外,还可能会存在次数要求,即只有当属性数据的某个值达到预设次数要求时确定其对应一种状态数据,例如,当针对某个url的返回值为404的次数超过3次确认其为死链。对应这种情况主动验证模块200需要依据转换策略中的预设次数确定获取raw value的次数,该获取raw value的次数大于或者等于预设次数,在调用属性获取模块210时,使属性获取模块210按照确定的次数获取rawvalue。例如,属性获取模块210向对应的服务器发送3次包含url的请求,从而从服务器获取3次返回值,如果3次的返回值均为404,则确认该url为死链状态。
[0051]属性获取模块210可以将服务器返回的raw value存储在状态词典中。状态词典中存储有url及其对应的raw value,每次获取的结果都会存入状态词典。
[0052]策略收集模块220可以依据状态词典中该key对应的raw value执行转换的步骤,并将转换得到的value’存储在链接状态库中。链接状态库中存储有url及其对应value’,每次轮询后转换得到的value’都会用于更新链接状态库。除此之外链接状态库中还可以包括:url的类型、value’的更新时间、raw value、raw value的获取时间、当前进程号等。
[0053]主动验证模块200调用属性获取模块210获取相应次数的raw value后,从链接状态库中获取value’。
[0054]具体地,策略收集模块220周期性地对状态词典进行轮询,按照url对应的rawvalue转换为url的状态数据value’并存储在链接状态库中,例如当返回值404在3次之内时,策略收集模块220进行轮询时,转换的value ’为O,当返回值404达到3次时,策略收集模块220进行轮询时,转换的value’更新为I。由于获取raw value的次数达到3次,主动验证模块200查询链接状态库时,确定url对应的value’为1,然后执行与value进行比较的操作。
[0055]主动验证模块200在根据比较结果确定被测试系统输出数据的正确性时,如果value和value’相同,则确定被测试系统对该url的状态确定正确。
[0056]下面结合一个具体的实例对上述装置进行详细描述,假设被测试系统为死链挖掘系统,其输出数据(key, value)中,key为url, value为代表该url是否为死链的值。
[0057]主动验证模块200获取被测试系统的输出数据(key, value),假设为(www.baidu.com/test, I),含义是 www.baidu.com/test 是一条死链。主动验证模块 200 将 www.baidu.com/test提供给属性获取模块210。假设依据策略收集模块220中的转换策略确定需要获取返回码的次数为3,则调用属性获取模块210获取3次誦.baidu.com/test对应的返回码。[0058]属性获取模块210将包含www.baidu.com/test的请求发送给http服务器去获取返回码,共获取3次,将获取到的返回码作为www.baidu.com/test对应的raw value存至状态词典中。
[0059]策略收集模块220周期性地对状态词典进行轮询,依据预设的属性数据与状态数据之间的转换策略,假设转换策略中包括:raw value的值为404的数量达到3次时将rawvalue转换为值为I的value’,将每次转换得到的该url对应的value’更新至链接状态库。如果确定出状态词典中www.baidu.com/test对应的raw value的值为404的次数为3时,则更新链接状态库中www.baidu.com/test对应的value’的值为I。
[0060]主动验证模块200在调度属性获取模块210执行3次raw value的获取之后,从链接状态库中获取WWW.baidu.com/test对应的value’,将其与被测试系统输出的value进行比较,如果一致,则说明该被测试系统对该www.baidu.com/test状态判定正确。如果不一致,可以说明该被测试系统对该www.baidu.com/test状态判定错误,或者采用诸如人工验证等其他方式进行进一步的测试。
[0061]可以看出上述的主动验证模块200是主进程,负责数据的获取,属性获取模块获取raw value的调度和调度次数、value’和value的比对以及测试结果的输出。
[0062]上述装置可以在测试系统中的后台运行,用户可以通过前台设置转换策略,后台经过测试之后,向前台返回测试结果。
[0063]实施例二、
[0064]在本实施例中对上述装置所对应的方法流程进行描述,同样,本实施例所提供的方法针对包含一个以上的模块且用于确定对象状态的被测试系统,如图3所示,该系统测试的方法包括以下步骤:
[0065]步骤301:获取被测试系统的输出数据(key, value)。
[0066]其中key为被测试系统处理的对象,通常为url。value为对象状态,例如可以为链接状态、网站类型或者页面类型等。
[0067]步骤302:获取key对应的服务器针对该key返回的属性数据(raw value)。
[0068]本步骤可以通过调用外部工具的方式获得,即调用外部工具向key对应的服务器发送包含该key的请求,服务器接收到请求会针对该key返回raw value。
[0069]通常如果value为链接状态时,raw value为服务器的返回码,例如,value为url是否为死链,raw value可以是将包含url的请求发送给服务器后,服务器的返回码,诸如200、400、404 等。
[0070]如果value为网站类型或者页面类型时,raw value为服务器返回的页面特征。例如,value为url是否为空白页,raw value可以是将包含url的请求发送给服务器后,服务器返回的页面内容。再例如,value为url是否为色情网站,raw value可以是将包含url的请求发送给服务器后,服务器返回的诸如图片、关键字等页面特征。
[0071]步骤303:依据预设的属性数据与状态数据之间的转换策略,将raw value转换为状态数据(value’)。
[0072]转换策略可以是静态预置的,也可以提供用户接口供用户进行动态设置。
[0073]转换策略可以是返回码值对应的链路状态、页面特征对应的网站类型或者页面特征对应的页面类型。例如,400、404对应的链路状态为死链,还可以进一步划分更细的粒度,根据不同的返回值确定出具体是协议死链还是内容死链。再例如,包含某些预设黄色关键字的页面内容对应的网站类型为黄色网站。
[0074]步骤304:比较value和value’,并根据比较结果确定被测试系统输出数据的正确性。
[0075]在根据比较结果确定被测试系统输出数据的正确性时,如果value和value’ 一致,则确定被测试系统对该url的状态确定正确。如果不一致,可以说明该被测试系统对该url的状态判定错误,或者采用诸如人工验证等其他方式进行进一步的测试。
[0076]除此之外,在上述步骤303中涉及的转换策略可以包括:属性数据的某个值达到预设次数时对应一种状态数据,此时在步骤302中可以依据转换策略中的预设次数确定获取raw value的次数,并按照确定的次数获取raw value,其中获取raw value的次数大于或等于上述的预设次数。
[0077]在获取key对应的raw value之后,可以将raw value存储在状态词典中,然后依据状态词典中该key对应的raw value执行转换的步骤,并将转换得到的value’存储在链接状态库中,在比较value和value’之前,从链接状态库中查询该key对应的value’。具体地,可以采用对状态词典进行轮询的方式,利用每次轮询转换得到的value’更新链路状态库。
[0078]如果被测试系统的输出数据是海量的数据,可以针对海量的输出数据逐一执行上述测试流程,也可以通过采样的方式从中抽取出部分输出数据逐一执行上述测试流程。针对一种类型的被测试系统往往仅需要进行一次转换策略的设置和外部工具的部署。
[0079]由以上描述可以看出,本发明提供的方法和装置具备以下优点:
[0080]I)本发明转换思路不采用传统的构造用例输入以及比对预期结果的方式,而是直接获取被测试系统的输出数据作为测试装置的输入数据,依据被测试系统的输出数据通过外部工具重新获取对象的状态,将重新获取的状态与被测试系统的输出数据中对象的状态进行比对,从而得到测试结果。无需构造覆盖所有策略的用例输入和预期结果,降低了设计成本和复杂度,特别对于系统处理的是海量数据的情况效果尤为突出。
[0081]2)本发明提供的方式采用直接获取被测试系统输出数据的方式进行测试,能够实时地实现对被测试系统的测试监控。
[0082]3)经验证,本发明在流式系统测试中有较好的收益:评估效率由传统测试方式的100条/天提升到36万条/小时,当然这个在一定程度上也取决于外部工具的速度和部署情况;本发明不仅在系统测试时使用,在开发调研、产品评估中也频繁使用,从产品和测试方法收益都较明显,推动了产品升级和效果验证。
[0083]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种系统测试的方法,针对包含一个以上的模块且用于确定对象状态的被测试系统,其特征在于,该方法包括: 51、获取被测试系统的输出数据,所述输出数据包括key和value,所述key为被测试系统处理的对象,所述value为对象状态; 52、获取所述key对应的服务器针对所述key返回的属性数据rawvalue ; 53、依据预设的属性数据与状态数据之间的转换策略,将所述rawvalue转换为状态数据 value,; 54、比较所述value和value’,并根据比较结果确定被测试系统输出数据的正确性。
2.根据权利要求1所述的方法,其特征在于,所述key为统一资源定位符url;所述value为链接状态、网站类型或者页面类型。
3.根据权利要求2所述的方法,其特征在于,所述value为链接状态时,所述rawvalue为服务器的返回码; 所述value为网站类型或者页面类型时,所述raw value为服务器返回的页面特征。
4.根据权利要 求1所述的方法,其特征在于,所述转换策略包括:属性数据的某个值达到预设次数时对应一种状态数据;则, 在所述步骤S2中还包括:依据所述转换策略中的预设次数确定获取所述raw value的次数,并按照确定的次数获取所述raw value,获取所述raw value的次数大于或等于所述预设次数。
5.根据权利要求4所述的方法,其特征在于,在所述步骤S2中还包括:将获取的所述key对应的raw value存储在状态词典中; 在所述步骤S3中依据所述状态词典中所述key对应的raw value执行所述转换的步骤,并将转换得到的value’存储在链接状态库中; 在所述步骤S4中从所述链路状态库中查询所述value’。
6.一种系统测试的装置,针对包含一个以上的模块且用于确定对象状态的被测试系统,其特征在于,该装置包括: 主动验证模块,用于获取被测试系统的输出数据,所述输出数据包括key和value,所述key为被测试系统处理的对象,所述value为对象状态;将策略收集模块得到的value’与所述value进行比较,并根据比较结果确定被测试系统输出数据的正确性; 属性获取模块,用于获取所述key对应的服务器针对所述key返回的属性数据rawvalue ; 策略收集模块,用于依据预设的属性数据与状态数据之间的转换策略,将所述rawvalue转换为状态数据value’。
7.根据权利要求6所述的装置,其特征在于,所述key为统一资源定位符url;所述value为链接状态、网站类型或者页面类型。
8.根据权利要求7所述的装置,其特征在于,所述value为链接状态时,所述rawvalue为服务器的返回码; 所述value为网站类型或者页面类型时,所述raw value为服务器返回的页面特征。
9.根据权利要求6所述的装置,其特征在于,所述转换策略包括:属性数据的某个值达到预设次数时对应一种状态数据;所述主动验证模块,还用于依据所述转换策略中的预设次数确定获取所述raw value的次数,调用所述属性获取模块执行确定次数的获取raw value的操作,获取所述rawvalue的次数大于或等于所述预设次数。
10.根据权利要求9所述的装置,其特征在于,所述属性获取模块将获取的所述key对应的raw value存储在状态词典中; 所述策略收集模块依据所述状态词典中所述key对应的raw value执行所述转换的步骤,并将转换得到的value’存储在链接状态库中; 所述主动验证模块调用所述属性获取模块执行确定次数的获取raw value的操作后,从所述链接状态库中查询所述v`alue’。
【文档编号】G06F11/36GK103678072SQ201210326539
【公开日】2014年3月26日 申请日期:2012年9月5日 优先权日:2012年9月5日
【发明者】秦灵伶, 刘哲文, 李正文 申请人:百度在线网络技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1