掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本说明书实施例涉及大数据技术领域,特别涉及一种测试方法、装置及设备。

背景技术

随着大数据技术的深入研究与发展,HBase数据库以其海量数据下系统的高并发读写、低延迟、低成本、高可靠等方面的显著优势,被广泛地运用于大数据处理和应用中。基于HBase数据库的联机接口查询服务,也很好地满足了对于海量数据高时效读取的需求。

在实际应用中,为了保证联机接口查询的准确性,一般需要在正式应用之前通过准确、全面的测试数据和手段来实现海量数据查询的准确性。但是,由于测试数据的需求量较大,目前的测试数据一般是由相应的脚本同一生成的,这些数据在实际测试过程中存在运行失败、结果数据与预期不一致等问题,从而导致生成的测试数据无法保证完整性和一致性,极大地干扰了测试效果。因此,目前亟需一种能够保证所生成的测试数据的准确性和有效性的技术方案。

发明内容

本说明书实施例的目的是提供一种测试方法、装置及设备,以解决如何保证测试数据的有效性以改善测试效果的问题。

为解决上述技术问题,本说明书实施例提供一种测试方法,包括:确定对应于测试任务的测试场景;所述测试场景用于描述测试任务的类型和/或应用环境;根据所述测试场景生成至少两组测试数据;利用所述测试数据进行测试以获取测试结果;对所述测试结果进行评价得到评价结果;所述评价结果用于表示所述测试结果对应的漏洞情况;基于所述评价结果在所述至少两组测试数据中筛选有效测试数据。

本说明书实施例还提出一种测试装置,包括:测试场景确定模块,用于确定对应于测试任务的测试场景;所述测试场景用于描述测试任务的类型和/或应用环境;测试数据生成模块,用于根据所述测试场景生成至少两组测试数据;测试结果获取模块,用于利用所述测试数据进行测试以获取测试结果;测试结果评价模块,用于对所述测试结果进行评价得到评价结果;所述评价结果用于表示所述测试结果对应的漏洞情况;有效测试数据筛选模块,用于基于所述评价结果在所述至少两组测试数据中筛选有效测试数据。

本说明书实施例还提出一种测试设备,包括存储器和处理器;所述存储器,用于存储计算机程序指令;所述处理器,用于执行所述计算机程序指令以实现以下步骤:确定对应于测试任务的测试场景;所述测试场景用于描述测试任务的类型和/或应用环境;根据所述测试场景生成至少两组测试数据;利用所述测试数据进行测试以获取测试结果;对所述测试结果进行评价得到评价结果;所述评价结果用于表示所述测试结果对应的漏洞情况;基于所述评价结果在所述至少两组测试数据中筛选有效测试数据。

由以上本说明书实施例提供的技术方案可见,本说明书实施例在获取到测试任务对应的测试场景后,生成相应的测试数据。利用所述测试数据进行测试得到测试结果之后,可以对所述测试结果进行评价以得到评价结果,从而对测试数据的漏洞情况进行评价,并最终基于评价结果在测试数据中筛选得到有效测试数据。上述方法在生成多组测试数据后,能够基于这些测试数据的实际测试效果,对测试数据进行相应评价,从而保证了测试数据的测试效果,避免了无效测试数据对测试结果造成的干扰,有助于产品的开发和运维。

附图说明

为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本说明书实施例一种测试方法的流程图;

图2为本说明书实施例一种生成测试数据的示意图;

图3为本说明书实施例一种获取有效测试数据的示意图;

图4为本说明书实施例一种测试系统的结构示意图;

图5为本说明书实施例一种测试方法的流程示意图;

图6为本说明书实施例一种测试装置的模块图;

图7为本说明书实施例一种测试设备的结构图。

具体实施方式

下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。

为了解决上述技术问题,本说明书实施例提出了一种测试方法。所述测试方法的执行主体可以为测试设备,所述测试设备包括但不限于服务器、工控机、PC机等。如图1所示,所述测试方法可以包括以下具体实施步骤。

S110:确定对应于测试任务的测试场景;所述测试场景用于描述测试任务的类型和/或应用环境。

测试任务可以是针对某一次,或是某一个周期的,用于执行相应的测试过程的任务。

所述测试任务中包含有测试任务信息,所述测试任务信息可以直接指定所述测试任务对应的测试场景、测试数据类型等信息,所述测试任务信息也可以是描述测试目的的信息,从而基于所述测试任务信息间接地确定执行测试

测试场景可以用于描述所述测试任务对应的类型和/或应用环境,进而能够根据所述测试场景的限定来生成具体的测试数据。所述测试场景可以预先设置有相应的场景模板,从而能够根据测试任务的具体信息来确定对应的测试场景。

在一些实施方式中,所述测试场景可以包括技术类测试场景、业务类测试场景和配置类测试场景中的至少一种。技术类测试场景可以是针对具体的技术问题所设置的测试场景,例如针对测试过程中的具体的数据处理过程,以及测试验证过程等技术问题。业务类测试场景例如可以是用于执行预先设定的具体的业务的场景,所针对的测试效果例如可以是判断能否准确获取相应的业务参数,例如用于测试某项业务在线上能够准确有效地被执行。配置类测试场景可以是针对具体的业务配置信息所进行的测试,例如,可以验证业务的执行过程中具体的各项参数能够正常完成配置。

在一些实施方式中,可以基于预先设定的规则来确定对应于测试任务的测试场景。所述规则可以基于测试任务的类型或测试任务的应用场景等信息来确定所对应的测试场景。在执行具体的测试任务之前,可以预先指定有相应的规则,用于确定不同的测试任务。具体的,根据不同的测试任务的类型以及场景可以依次指定第一层规则、第二层规则和第三层规则。所述第一层规则可以用于定义测试场景的大致方向,例如,基于上述针对测试场景的实施例,所述第一层规则可以基于测试场景定义大致的测试方向。

利用一个具体的示例进行说明,所述第一层规则例如可以是在测试场景为技术类测试场景时,对应于按Region分布验证和异常测试验证;在测试场景为配置类测试场景时,对应于应用权限验证和渠道控制验证;在测试场景为业务类测试场景时,对应于渠道分类验证、营销名单验证和主键Row-key验证。

相应的,在设置有第一层规则的情况下,还可以针对所述第一层规则设置第二层规则。所述第二层规则可以是针对上述第一层规则进行进一步细分,在大致方向的基础上,确定具体的划分规则,基于所确定的具体的规则,可以进一步生成具体的测试数据。

基于上述示例进行进一步说明,在确定为按Region分布验证的情况下,可以配置为单Region倾斜分布验证和多Region平均分布验证;在确定为异常测试验证的情况下,可以配置为缺column数据验证、column字段为空验证、column格式异常验证等;在确定为应用权限验证的情况下,可以配置为具备个人客户营销权限验证、具备法人客户营销权限验证、具备自助终端营销权限验证等;在确定为渠道控制验证的情况下,可以配置为转账汇款控制验证、账户明细控制验证、理财产品控制验证和查询余额控制验证;在确定为渠道分类验证的情况下,可以配置为精准推荐产品PAD渠道验证、个人明细渠道验证等;在确定为营销名单验证的情况下,可以配置为无营销名单验证、单营销名单验证、多营销名单验证;在确定为主键Row-key验证的情况下,可以配置为客户编号#渠道#营销活动编号主键验证、客户编号#渠道主键验证、客户编号#渠道#优先级主键验证。

相应的,在获取到测试任务后,即可根据上述规则确定具体的测试场景。所述测试场景可以是对应于第一层规则的应用场景,也可以是对应于第二层规则的具体应用场景。实际应用中也可以基于需要设置其他类型的规则,并不限于上述示例,在此不再赘述。

S120:根据所述测试场景生成至少两组测试数据。

测试数据可以是应用于具体的测试过程中的数据。所述测试数据可以是模拟实际应用中的业务而生成的业务数据,也可以是对应于程序执行过程中的应用程序数据,对于具体的类型不做限制。基于所述测试数据可以执行不同的测试过程,并获取到对应的测试结果。所述测试数据中可以包括有效测试数据和无效测试数据,有效测试数据可以是能够顺利完成一次测试过程的数据,无效测试数据可以是在测试过程中出现至少一次漏洞情况的数据。

在一些实施方式中,所述测试数据可以是存储在HBase数据库中的数据。HBase数据库为关系型数据库,其中的测试数据可以按照key-value的格式进行存储,从而能够用于实现快速检索相应的测试数据。

在确定对应于测试任务的测试场景之后,可以根据测试场景确定对应的测试数据。在测试场景限定了相应的测试需求的情况下,基于所述测试场景可以生成对应的测试数据。例如可以预先设置相应的模板,用于限定不同的测试场景与不同的测试数据之间的对应关系,从而能够根据所述模板确定对应于测试场景的测试数据。

如图2所示,为基于测试场景生成测试数据的一个示例。其中,基于步骤S201设定测试场景后,可以依次选择是否为配置类测试场景或技术类测试场景或业务类测试场景。若为配置类测试场景,则执行步骤S202依据规则推演配置类测试数据;若为技术类测试场景,则执行步骤S203依据规则推演技术类测试数据;若为业务类测试场景,则执行步骤S204依据规则推演业务类测试数据。

在一些实施方式中,基于步骤S110中的具体示例,针对技术类测试场景、业务类测试场景和配置类测试场景,可以分别配置得到不同类别的测试数据。具体的,在所述测试场景为技术类测试场景的情况下,所述测试数据包括单Region倾斜分布验证数据、多Region平均分布验证数据、缺column数据验证数据、column字段为空验证数据、column格式异常验证数据中的至少一种。

在所述测试场景为业务类测试场景的情况下,所述测试数据包括精准推荐产品PAD渠道验证数据、个人明细渠道验证数据、无营销名单验证数据、单营销名单验证数据、多营销名单验证数据、客户编号及渠道及营销活动编号主键验证数据、客户编号及渠道主键验证数据、客户编号及渠道及优先级主键验证数据中的至少一种。

在所述测试场景为配置类测试场景的情况下,所述测试数据包括具备个人客户营销权限验证数据、具备法人客户营销权限验证数据、具备自助终端营销权限验证数据、转账汇款控制验证数据、账户明细控制验证数据、理财产品控制验证数据、查询余额控制验证数据中的至少一种。

上述实施方式只是针对不同测试场景所选定的具体测试数据的示意性说明,实际应用中也可以根据需求采取其他方式生成所述测试数据,在此不做赘述。

S130:利用所述测试数据进行测试以获取测试结果。

在获取到所述测试数据,可以基于所述测试数据执行相应的测试过程,并基于该测试过程获取对应的测试结果。

基于测试数据进行的测试过程可以是预先设定有相应的模板,从而基于所述模板,执行所述测试数据以获取到相应的测试结果。

在一些实施方式中,测试的流程可以是先基于测试数据构建测试报文,再利用预设测试规则执行所述测试报文以得到响应报文。通过将所述响应报文与预期测试结果进行比对,从而得到测试结果。

测试报文可以具有对应于相应的接口测试的报文格式,基于测试数据构建测试报文之后,能够方便有效地利用所述测试报文执行具体的测试过程。

在该实施方式中,具体的执行测试报文时,可以将应用测服务接口注册在注册中心,通过自动化测试脚本,将上述测试报文发送至注册中心,使得注册中心基于测试报文中的信息,调用服务接口返回响应报文。具体的测试过程可以通过自动化测试脚本获取每条发送报文所对应的响应报文,并存储在相应格式的存储文件中。

响应报文即为测试报文在测试过程中所得到的响应结果,用于反映测试过程的相应信息。基于上述实施方式,自动化测试脚本可以解析存储文件中的响应报文,并将分解后的响应报文逐字段与预期结果进行比对,若比对结果一致则该条报文可以被验证通过,所对应的测试结果可以为正常测试结果。

相应的,若比对结果不一致,例如在比对过程中出现了字段值不一致、字段缺失、字段冗余和字段不一致中至少一种情况时,可以将测试结果定义为异常测试结果。相应的,上述情况所对应的数据可以作为测试漏洞数据进行保存,以供后续分析过程使用。

在一些实施方式中,针对所述测试结果可以设置测试有效期限。所述测试有效期限用于限定选取测试结果的时间段。所述测试有效期限可以是相较于当前时间进行选取的,例如选取最近一个月内的数据,也可以是相较于特定时间点的期限,例如可以是在测试程序提交开始的一定时间内的数据。

具体的,所述测试有效期限例如可以设置为三个月,即从程序提交当期月度版本开始到之后的三个月为止,将该段时间内的测试结果作为后续评价过程所使用的结果,以保证测试数据的时效性。

S140:对所述测试结果进行评价得到评价结果;所述评价结果用于表示所述测试结果对应的漏洞情况。

在获取到所述测试结果后,可以对所述测试结果进行评价以得到评价结果。所述评价结果用于描述测试过程中的漏洞情况。在利用测试数据执行相应的测试过程时,可能成功完成测试,也可能无法正常完成测试,也可能在完成测试的同时出现较多的执行错误。基于具体的测试完成情况,可以进行相应的评价,以反映测试结果所对应的漏洞情况。

在一些实施方式中,获取评价结果的方式可以是先从测试结果中提取测试漏洞数据。测试漏洞数据用于描述测试过程中所出现的漏洞。具体的,所述测试漏洞数据可以包括漏洞数量和漏洞发现时间中的至少一种。所述测试漏洞数据可以反映测试过程的执行情况,从而能够基于所述漏洞数据确定评价结果。

具体的,所述测试漏洞数据可以分别对应于不同的阶段,例如,可以分别统计从程序提交到版本交付这一阶段的测试漏洞数据,并统计从版本交付到投产这个阶段的测试漏洞数据。通过分阶段获取测试漏洞数据,能够更好地针对不同阶段的测试情况进行分析,从而提高分析结果的准确性。

在一些实施方式中,获取到测试漏洞数据之后,还可以针对其中的漏洞进行评级。具体的,可以是先确定测试漏洞数据对应的漏洞数据类型,再根据所述漏洞数据类型获取对应于测试漏洞数据的漏洞评级。所述漏洞数据类型用于描述漏洞所对应的具体类型,可以预先根据历史测试情况或测试人员的经验进行设置。漏洞评级用于描述漏洞的严重程度,例如,可以包括致命程度等级、严重程度等级、一般程度等级和轻微程度等级。通过确定漏洞对应的等级,能够在后续过程中更好地实现对于漏洞的评价。

S150:基于所述评价结果在所述至少两组测试数据中筛选有效测试数据。

在获取到所述评价结果后,即可根据所述评价结果从测试数据中筛选有效测试数据。有效测试数据是在测试过程中能够取得较好的测试效果的测试数据。由于评价结果能够用于反映测试数据对应的测试结果的优劣,因此可以基于所述评价结果选取相应的有效测试数据。

在一些实施方式中,获取到所述评价结果后,可以基于所述评价结果计算对应于测试数据的有效性评分,并通过将有效性评分和有效性评分阈值进行比较的方式完成有效测试数据的筛选。有效性评分阈值用于限定有效测试数据所对应的有效性评分的最低值,具体的,可以基于历史样本数据训练得到所述有效性评分阈值,也可以基于测试人员的经验进行设置,对此不做限制。

具体的,可以利用公式

下面结合图3利用一个具体的示例进行说明。如图3所示,在分别执行步骤S301统计交付前/后问题数,步骤S302统计不同严重等级问题数,步骤S303统计测试问题总数后,执行步骤S304设定有效性阈值,之后,可以执行步骤S305计算测试数据有效性评分,并通过步骤S306判断是否低于有效性阈值,从而根据判断结果更新测试数据。

在一些实施方式中,可以将除有效测试数据以外的测试数据作为无效测试数据。无效测试数据在测试过程存在有较多的测试问题,无法获取较好的测试效果,因此,在后续过程中可以避免利用所述无效测试数据进行测试,或者直接在数据库中移除所述无效测试数据,以保证测试效果。

上述确定有效测试数据并清除无效测试数据的过程可以基于固定周期实现,例如每月或每季度对测试数据进行有效性评分,以保证数据库中的数据的有效性。

下面结合图4和图5,利用一个场景示例进行说明。如图4所示,为一种测试系统的结构图。其中,HBASE数据库集群包括控制节点和计算节点,用于存储并维护测试数据,配置数据库服务器包括调度服务器和Oracle数据库服务器,用于维护本方法的相应逻辑规则,从而执行并实现具体的测试过程。本应用部分包含有数据库服务器,用于调取前述数据库中的数据,应用服务器用于根据接收到的测试数据,执行具体的测试过程。具体的,可以是将测试数据发送至外部应用的服务化接口,从而实现接口测试,并接收这些接口所反馈的响应报文,从而完成测试过程。

如图5所示,测试方法的流程示意图。基于步骤S1定义规则库,确定测试过程的相应逻辑以及测试方法后,根据所定义的规则库,执行步骤S2,生成测试数据。利用所生成的测试数据执行步骤S3,进行接口验证,并获取对应的验证结果。之后,可以执行步骤S4,评价测试数据的有效性,通过判断数据是否低于有效性阈值,执行步骤S5,更新测试数据,从而保证了测试数据的有效性。

基于上述实施例和场景示例的介绍,可以看出,所述方法在获取到测试任务对应的测试场景后,生成相应的测试数据。利用所述测试数据进行测试得到测试结果之后,可以对所述测试结果进行评价以得到评价结果,从而对测试数据的漏洞情况进行评价,并最终基于评价结果在测试数据中筛选得到有效测试数据。上述方法在生成多组测试数据后,能够基于这些测试数据的实际测试效果,对测试数据进行相应评价,从而保证了测试数据的测试效果,避免了无效测试数据对测试结果造成的干扰,有助于产品的开发和运维。

基于图1所对应的测试方法,介绍本说明书实施例一种测试装置。如图6所示,所述测试装置包括以下模块。

测试场景确定模块610,用于确定对应于测试任务的测试场景;所述测试场景用于描述测试任务的类型和/或应用环境。

测试数据生成模块620,用于根据所述测试场景生成至少两组测试数据。

测试结果获取模块630,用于利用所述测试数据进行测试以获取测试结果。

测试结果评价模块640,用于对所述测试结果进行评价得到评价结果;所述评价结果用于表示所述测试结果对应的漏洞情况。

有效测试数据筛选模块650,用于基于所述评价结果在所述至少两组测试数据中筛选有效测试数据。

基于图4所对应的测试方法,本说明书实施例提供一种测试设备。如图7所示,所述测试设备可以包括存储器和处理器。

在本实施例中,所述存储器可以按任何适当的方式实现。例如,所述存储器可以为只读存储器、机械硬盘、固态硬盘、或U盘等。所述存储器可以用于存储计算机程序指令。

在本实施例中,所述处理器可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。所述处理器可以执行所述计算机程序指令实现以下步骤:确定对应于测试任务的测试场景;所述测试场景用于描述测试任务的类型和/或应用环境;根据所述测试场景生成至少两组测试数据;利用所述测试数据进行测试以获取测试结果;对所述测试结果进行评价得到评价结果;所述评价结果用于表示所述测试结果对应的漏洞情况;基于所述评价结果在所述至少两组测试数据中筛选有效测试数据。

需要说明的是,本说明书实施例中所描述的测试方法、装置及设备可以应用于大数据技术领域,也可以应用于除大数据技术领域外的其他任意领域,对此不做限制。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的第一硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书可用于众多第一或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。

相关技术
  • RTC模块测试方法、Android设备生产多模块自动化测试方法和装置
  • 电梯设备的测试方法和用于实施该测试方法的监控装置
技术分类

06120113117396