测试方法和装置与流程

文档序号:12176836阅读:139来源:国知局
测试方法和装置与流程
本申请涉及测试
技术领域
,尤其涉及一种测试方法和装置。
背景技术
:随着互联网技术的快速发展,开发人员开发出各种应用软件和应用系统以实现不用的功能和用途。在相关技术中,应用软件或者应用系统通常要先经过测试才能够正式发布,以避免在上线后出现无法正常响应用户请求的问题。目前,在进行测试时,通常是由测试人员列出所有可能的服务请求,然后将这些服务请求发送给被测试的应用软件或者应用系统进行处理,并根据处理结果得出测试结果。然而,在这样的实现方案中,极易遗漏掉某些服务请求,导致测试得到的结果不够准确,进而影响应用软件或者应用系统上线后的稳定性,影响用户体验。技术实现要素:有鉴于此,本申请提供一种测试方法和装置。具体地,本申请是通过如下技术方案实现的:一种测试方法,所述方法包括:通过被测对象提供的服务接口获取服务请求的属性信息,所述属性信息中包括有每个属性的合法取值;根据所述属性信息为所述服务请求构建正交数据集,所述正交数据集覆盖所述服务请求的每个属性的非法取值;遍历所述正交数据集以生成服务请求;根据所述服务请求对所述被测对象进行测试。可选的,所述根据所述属性信息为所述服务请求构建正交数据集的过程,包括:针对每个属性,根据所述属性的合法取值确定所述属性的非法取值;根据所有属性的非法取值构建所述正交数据集。可选的,所述在根据所述属性的合法取值确定所述属性的非法取值的过程,包括:通过枚举法和/或边界值分析法确定所述属性的非法取值。可选的,所述遍历所述正交数据集以生成服务请求,包括:根据所述正交数据集中M个属性的非法取值生成服务请求;其中,M为大于等于1的自然数,M小于等于属性数量。可选的,所述根据所述服务请求对所述被测对象进行测试,包括:发送所述服务请求给所述服务接口,并接收所述被测对象对所述服务请求的处理结果。一种测试装置,所述装置包括:获取单元,通过被测对象提供的服务接口获取服务请求的属性信息,所述属性信息中包括有每个属性的合法取值;构建单元,根据所述属性信息为所述服务请求构建正交数据集,所述正交数据集覆盖所述服务请求的每个属性的非法取值;生成单元,遍历所述正交数据集以生成服务请求;测试单元,根据所述服务请求对所述被测对象进行测试。可选的,所述构建单元,具体针对每个属性,根据所述属性的合法取值确定所述属性的非法取值,根据所有属性的非法取值构建所述正交数据集。可选的,所述构建单元,具体通过枚举法和/或边界值分析法确定所述属性的非法取值。可选的,所述生成单元,具体根据所述正交数据集中M个属性的非法取 值生成服务请求;其中,M为大于等于1的自然数,M小于等于属性数量。可选的,所述测试单元,具体发送所述服务请求给所述服务接口,并接收所述被测对象对所述服务请求的处理结果。由以上描述可以看出,本申请测试设备可以构建覆盖服务请求的每个属性的非法取值的正交数据集,从而可以通过遍历所述正交数据集生成包括所有可能的非法服务请求,在测试过程中实现了所有非法服务请求的全覆盖,提高测试结果的准确性,确保被测对象上线后的稳定性。此外,采用本申请提供的测试方案,在开发重构时,针对增加或删除的属性调整正交数据集即可,无需重构所有测试数据,大大降低了重构成本。附图说明图1是本申请一示例性实施例示出的一种测试方法的流程示意图。图2是本申请一示例性实施例示出的一种测试设备的结构示意图。图3是本申请一示例性实施例示出的一种测试装置的结构示意图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种 信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。相关技术中,对于被测的应用软件或者应用系统,进行测试的服务请求通常包括有两类:合法服务请求和非法服务请求。对于质量要求极端严苛的应用软件或者应用系统,通常要确保在测试时,能够正确处理所有可能的合法服务请求,同时也能够正确处理所有可能的非法服务请求,然后才能正式发布。一旦有些服务请求没有被测试,尤其是非法服务请求,将会干扰应用软件或者应用系统的稳定性,影响用户体验。针对上述问题,本申请提供一种测试方案,可以在进行测试时,覆盖到所有可能的非法服务请求,以确保应用程序或应用系统上线后的稳定性。下面结合具体的实施例来描述本申请的实现过程。图1是本申请一示例性实施例示出的一种测试方法的流程示意图。请参考图1,所述测试方法可以用于测试设备中,包括有以下步骤:步骤101,通过被测对象提供的服务接口获取服务请求的属性信息,所述属性信息中包括有每个属性的合法取值。在本实施例中,所述被测对象可以包括被测的应用软件或者应用系统,所述被测对象会预先定义有服务请求所需的属性信息,所述被测对象通常提供有对外交互的服务接口。其中,所述属性信息可以包括:属性的数量、每个属性的标识以及每个属性的合法取值等信息。所述服务请求是对被测对象进行测试时发送给所述服务接口的测试请求,所述服务请求中通常包括有每个必填属性的取值。在本步骤中,测试设备可以先通过被测对象提供的服务接口获取服务请求的属性信息,以便后续进行正交数据集的构建。步骤102,根据所述属性信息为所述服务请求构建正交数据集,所述正 交数据集覆盖所述服务请求的每个属性的非法取值。基于前述步骤101,测试设备在获取到服务请求的属性信息后,可以构建正交数据集,所述正交数据集是所述服务请求的属性取值的集合,包括有所述服务请求的各个属性的取值,比如:合法取值、非法取值。本申请构建的所述正交数据集可以覆盖所述服务请求的每个属性的非法取值。在本实施例中,所述正交数据集可以以表格的形式进行展现,其中,所述正交数据集的一列可以表示所述服务请求的一个属性,第一行通常是每个属性的标识,比如:属性的名称等能够唯一表示所述属性的参数,其他行是对应属性的取值。所述正交数据集的列的数量至少为所述服务请求的属性数量,即所述服务请求的每一个属性占据有所述正交数据集的一列,当然,所述正交数据集中通常还可以包括有编码列等。所述正交数据集的行的数量通常为取值最多的属性的取值数量加1。属性1属性2属性3属性41A1B1C1D12A2C2D23A3D3表1请参考表1所示的正交数据集,假设所述服务请求的属性数量为4,这4个属性的属性标识分别为:属性1、属性2、属性3以及属性4,其中,所述属性1的取值有3个,分别为:A1、A2以及A3,所述属性2的取值有1个:B1,所述属性3的取值有2个,分别为C1以及C2,所述属性4的取值有3个,分别为D1、D2以及D3,由此可以形成表1所示的正交数据集。在本实施例中,上述表1所示的正交数据集中属性1的取值A1至A3覆盖所述属性1的所有非法取值,属性2的取值B1覆盖所述属性2的所有非法取值,属性3的取值C1以及C2覆盖所述属性3的所有非法取值,属性3的取值D1至D3覆盖所述属性4的所有非法取值。在本实施例中,在构建所述正交数据集的过程中,测试设备可以针对每 个属性,根据所述属性的合法取值确定所述属性的非法取值,并根据所有属性的非法取值构建所述正交数据集。其中,针对每个属性,可以采用枚举法和/或边界值分析法等方法确定所述属性的非法取值。举例来说,假设某属性的合法取值为必填、且长度不超过8的字符串,则其非法取值为不填,即“null”或空串,或长度超过8的字符串。其中,针对必填对应的非法取值:“null”或空串,可以进行枚举;而针对长度不超过8的字符串对应的非法取值:长度超过8的字符串,可以根据边界值分析法确定所述长度不超过8的字符串对应的非法取值为任一长度为9的字符串,如“123456789”,这是因为“123456789”这个字符串覆盖了所有长度超过8的字符串,其它任何长度超过8的字符串,都和“123456789”具有同一性质——长度超过8,因此,可以将字符串“123456789”确定为合法取值“长度不超过8的字符串”对应的非法取值。也就是说所述属性的非法取值为:“null”、空串或字符串“123456789”。在本实施例中,在确定每个属性的非法取值后,根据所有属性的所有非法取值构建所述正交数据集。比如:可以将所述属性的非法取值依次添加在该属性所在列中。值得注意的是,在本实施例中,所述正交数据集可以由测试设备根据属性的合法取值自动构建,其中,针对某些特殊的非法取值,也可以由测试人员输入,本申请对此不作特殊限制。步骤103,遍历所述正交数据集以生成服务请求。基于前述步骤102,测试设备在构建所述正交数据集之后,可以遍历所述正交数据集中所有的取值以生成服务请求,由于所述正交数据集覆盖每个属性的非法取值,所以通过遍历所述正交数据集生成的服务请求包括了所有可能的非法请求。在本实施例中,测试设备可以根据所述正交数据集中M个属性的非法取值生成服务请求,其中M为大于等于1的自然数,M小于等于属性数量。比如:测试设备可以从正交数据集的第一列开始,依次选取这一列代表的属性 的每个非法取值,然后与其他列的取值进行组合以生成服务请求。仍以表1所示的正交数据集为例,假设该正交数据集中的所有取值都是对应属性的非法取值,则测试设备可以先选取属性1的非法取值A1,并基于A1与属性2至属性4的取值进行组合,以生成服务请求。然后测试设备可以选取属性1的非法取值A2,再基于A2与属性2至属性4的取值进行组合,以生成服务请求,依次类推,本申请在此不再一一赘述。值得注意的是,如果所述正交数据集中存在有某属性的合法取值,则并不影响服务请求的生成过程,测试设备可以依然按照遍历所述正交数据集的方式生成服务请求,生成的服务请求同样包括所有可能的非法服务请求。步骤104,根据所述服务请求对所述被测对象进行测试。基于前述步骤103,在生成服务请求之后,测试设备可以将所述服务请求通过所述服务接口发送给所述被测对象,所述被测对象在接收到所述服务请求后,会对所述服务请求进行处理,并向测试设备返回处理结果,测试设备可以将所述处理结果展示给测试人员。由以上描述可以看出,本申请测试设备可以构建覆盖服务请求的每个属性的非法取值的正交数据集,从而可以通过遍历所述正交数据集生成包括所有可能的非法服务请求,在测试过程中实现了所有非法服务请求的全覆盖,提高测试结果的准确性,确保被测对象上线后的稳定性。此外,采用本申请提供的测试方案,在开发重构时,针对增加或删除的属性调整正交数据集即可,无需重构所有测试数据,大大降低了重构成本。与前述测试方法的实施例相对应,本申请还提供了测试装置的实施例。本申请测试装置的实施例可以应用在测试设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在测试设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本申请测试装置所在**的一种硬件结构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的 测试设备通常根据该测试生成的实际功能,还可以包括其他硬件,对此不再赘述。图3是本申请一示例性实施例示出的一种测试装置的结构示意图。请参考图3,所述测试装置200可以包括:获取单元201、构建单元202、生成单元203以及测试单元204。其中,所述获取单元201,通过被测对象提供的服务接口获取服务请求的属性信息,所述属性信息中包括有每个属性的合法取值;所述构建单元202,根据所述属性信息为所述服务请求构建正交数据集,所述正交数据集覆盖所述服务请求的每个属性的非法取值;所述生成单元203,遍历所述正交数据集以生成服务请求;所述测试单元204,根据所述服务请求对所述被测对象进行测试。可选的,所述构建单元202,具体针对每个属性,根据所述属性的合法取值确定所述属性的非法取值,根据所有属性的非法取值构建所述正交数据集。可选的,所述构建单元202,具体通过枚举法和/或边界值分析法确定所述属性的非法取值。可选的,所述生成单元203,具体根据所述正交数据集中M个属性的非法取值生成服务请求;其中,M为大于等于1的自然数,M小于等于属性数量。可选的,所述测试单元204,具体发送所述服务请求给所述服务接口,并接收所述被测对象对所述服务请求的处理结果。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方, 或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1