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

软件的测试方法及装置

文献发布时间:2023-06-19 19:28:50


软件的测试方法及装置

技术领域

本申请涉及计算机技术领域,特别涉及软件测试方法及装置。

背景技术

随着互联网技术的飞速发展,为满足不同的需求应用系统的更新也随之增加,因此,单纯的进行功能测试,大大增加了测试人员的工作量,并且无法完全覆盖应用系统的各个功能点。软件自动化测试是写一段程序去测试另一段程序是否正常的过程,把以人为驱动的测试行为转化为机器执行。

软件测试主要包括接口自动化测试和UI自动化测试,它们一般使用以下技术工具:编程语言(java/python)+测试框架(Junit/testNG/selenium/appnium)+编译工具(ant/maven)+持续集成工具(Jenkins),用编程语言和测试框架编写测试脚本,用编译工具和持续集成工具自动编译、执行。其缺点显而易见,测试数据跟测试脚本代码混杂在一起,如果新增或修改案例,都需要重新编译。

从某个数据文件(例如ODBC源文件、Excel文件、csv文件、ADO对象文件等)中读取输入、输出的测试数据,然后通过变量传入事先编制好的测试脚本中。其中这些变量被用作传递(输入/输出)用来验证应用程序的测试数据。在这个过程中,数据文件的读取、测试状态和所有测试信息都被编写进测试脚本里;测试数据只包含在数据文件中,而不是脚本里,测试脚本只是一个“驱动”,或者说是一个传送数据的机制。数据驱动脚本的另一个共同特点就是,所有在测试设计上所作的努力,最终都体现在自动化测试工具的脚本语言中,或者复制到手工和自动化测试脚本中。这意味着每个和自动化测试开发或执行有关的人必须对测试环境和自动化工具的编程语言非常精通。

这种以数据驱动方式的自动化测试框架,包括以下优点:(1)在应用程序开发的同时就可以同步建立测试脚本,而且当应用功能变动时,只需要修改业务功能部分的脚本;(2)利用模型化的设计,避免重复的脚本,减少建立或维护脚本的成本;(3)测试输入数据,验证数据和预期的测试结果与脚本分开,存放在另外的数据文件里,利于测试人员修改和维护;(4)自动化测试开发人员创建数据驱动的测试过程,测试人员创建测试数据;(5)在测试过程中收集测试结果,并在输入数据的语境中表示测试结果,这样可以简化手工结果分析。

但是,由于每个脚本都会对应多个数据文件,这些数据文件需要根据脚本的功能类别存放在各自的目录中,增加了使用的复杂性。测试人员除了需要根据不同的版本环境准备相应的测试数据,测试数据维护成本高,测试数据有效性低。

应该注意,上面对技术背景的介绍只是为了方便对本申请的技术方案进行清楚、完整的说明,并方便本领域技术人员的理解而阐述的。不能仅仅因为这些方案在本申请的背景技术部分进行了阐述而认为上述技术方案为本领域技术人员所公知。

发明内容

为了解决上述问题中的至少一个,本申请实施例提供一种软件测试方法及装置。通过在数据池中建立业务数据表,响应于测试脚本的执行,根据所述测试脚本调取的测试案件文件中的需要的测试数据信息,在所述数据池的所述业务数据表中查找所述测试案例对应的数据对象和所述数据对象的嵌套对象,获取所述测试案例对应的所述数据对象,并应用于所述测试脚本中,实现了测试数据的整合,降低了测试数据存放的复杂性以及测试数据维护的成本,并保证了测试数据的有效性。

根据本申请实施例的第一方面,提供了一种软件的测试方法,包括:

在数据池中建立业务数据表;

响应于测试脚本的执行,根据所述测试脚本调取的测试案件文件中的需要的测试数据信息,在所述数据池的所述业务数据表中查找所述测试案例对应的数据对象和所述数据对象的嵌套对象;以及

获取所述测试案例对应的所述数据对象,并应用于所述测试脚本中。

根据本申请实施例的第二方面,其中,所述方法还包括:

在所述业务数据表中未查找到所述测试案例对应的所述数据对象的情况下,从应用数据库中抽取所述测试案件文件中的所述需要的测试数据信息对应的业务数据,并存储到所述数据池中。

根据本申请实施例的第三方面,其中,所述方法还包括:

在所述业务数据表中未查找到所述测试案例对应的所述数据对象的情况下,从应用数据库中抽取所述测试案件文件中的所述需要的测试数据信息对应的业务数据,并存储到所述数据池中

根据本申请实施例的第四方面,其中,所述方法还包括:

根据所述测试案件文件中的所述需要的测试数据信息,遍历所述数据池中存放的数据,并且,从应用数据库中抽取所述测试案件文件中的所述需要的测试数据信息对应的业务数据,以更新所述业务数据表。

根据本申请实施例的第五方面,其中,根据所述测试案件文件中的所述需要的测试数据信息,遍历所述数据池中储存的数据,包括:

根据预先设置的周期,对所述数据池中的所述存储的数据进行遍历。

根据本申请实施例的第六方面,其中,所述方法还包括:

所述测试案例需要的测试数据信息包括特征字段以及属性字段,

所述业务数据表中的字段为属性字段和特征字段的并集。

根据本申请实施例的第七方面,其中,所述方法还包括:

根据所述测试案例设置配置中心、业务参数表、产品参数表、技术参数表以及对应的缓存。

根据本申请实施例的第八方面,一种软件的测试装置,其中,建立模块,其在数据池中建立业务数据表;

处理模块,其响应于测试脚本的执行,根据所述测试脚本调取的测试案件文件中的需要的测试数据信息,在所述数据池的所述业务数据表中查找所述测试案例对应的数据对象和所述数据对象的嵌套对象;以及

应用模块,其获取所述测试案例对应的所述数据对象,并应用于所述测试脚本中。

根据本申请实施例的第九方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并能够在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现本申请实施例的第一方面至第八方面中的任一方面所述软件测试方法。

根据本申请实施例的第十方面,提供一种计算机可读的存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现本申请实施例的第一方面至第八方面中的任一方面所述软件测试方法。

本申请实施例的有益效果之一在于:

通过在数据池中建立业务数据表,响应于测试脚本的执行,根据所述测试脚本调取的测试案件文件中的需要的测试数据信息,在所述数据池的所述业务数据表中查找所述测试案例对应的数据对象和所述数据对象的嵌套对象,获取所述测试案例对应的所述数据对象,并应用于所述测试脚本中,实现了测试数据的整合,降低了测试数据存放的复杂性以及测试数据维护的成本,并保证了测试数据的有效性。

参照后文的说明和附图,详细公开了本申请的特定实施方式,指明了本申请的原理可以被采用的方式。应该理解,本申请的实施方式在范围上并不因而受到限制。在所附权利要求的精神和条款的范围内,本申请的实施方式包括许多改变、修改和等同。

针对一种实施方式描述以及示出的特征信息可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征信息相组合,或替代其它实施方式中的特征信息。

应该强调,术语“包括/包含”在本文使用时指特征信息、整件、步骤或组件的存在,但并不排除一个或更多个其它特征信息、整件、步骤或组件的存在或附加。

附图说明

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

图1是本申请实施例的软件测试方法的一示意图;

图2是本申请实施例的实现步骤200的方法的一示意图;

图3是本申请实施例的软件测试方法的另一示意图;

图4是本申请实施例的软件测试方法的一实例示意图;

图5是本申请实施例的软件测试方法的一实例另一示意图;

图6是本申请实施例软件的测试装置的一构成图。

具体实施方式

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

本申请实施例提供了一种软件测试方法。图1是本申请实施例的软件测试方法的一示意图,如图1所示,该方法包括:

步骤100,在数据池中建立业务数据表;

步骤200,响应于测试脚本的执行,根据测试脚本调取的测试案件文件中的需要的测试数据信息,在数据池的业务数据表中查找测试案例对应的数据对象和数据对象的嵌套对象;

步骤300,获取测试案例对应的数据对象,并应用于测试脚本中。

这样,通过为不同变量的用户定制敏感词清单、筛查规则以及提示信息,在响应用户的操作或请求时,根据定制的信息并基于定制的规则和敏感词清单进行筛查从而输出筛选后的提示信息,实现了提示信息的灵活定制和过滤,解决了不同场景下提示信息的定制成本高、周期长的问题,并保证了向用户输出的提示信息的安全性。

下面对上述方法中的各个步骤进行具体的说明。

在步骤100中,在数据池中建立业务数据表。

也就是说,在数据池里建立业务数据表,字段是属性字段和特征字段的并集。特征字段在案例文件中也可以作为属性字段使用。

例如,以一个取款交易/接口服务为例,测试数据需要输入交易的各种业务测试数据,如“交易地区(城市)”“交易介质类型(借记卡、存折、电子无介质卡)”、“交易介质号”、“取款人姓名”、“取款人身份证号”、“交易金额”、“交易密码”。而下面这些字段则是自动获取业务数据的特征值“开户地区”、“交易账户级别(一类户、二类户、三类户)”、“取款人是否成年”、平台分支还是主机分支(通过技术参数设置)。在数据池中建立如下的表1表示的业务表:

表1

接下来,在步骤200中,响应于测试脚本的执行,根据测试脚本调取的测试案件文件中的需要的测试数据信息,在数据池的业务数据表中查找测试案例对应的数据对象和数据对象的嵌套对象。

图2是本申请实施例的实现步骤200的方法的一示意图,如图2所示,实现步骤200的方法包括:

步骤201,测试脚本根据测试案例文件,扫出案例需要使用的测试数据;

步骤202,根据特征字段的赋值,调用数据池接口;

步骤203,在数据池里找对应的数据,返回对应的数据对象;

步骤204,根据外键形成嵌套对象。例如,介质对象里根据账号和客户编号分别查询账户和客户信息的数据,形成的账户对象和客户信息对象,作为介质对象里的一个成员变量。

下面以一个取款交易/接口服务为例,测试案例文件按约定的格式,填写要查找业务数据的特征字段赋值,也在测试数据里填写对象属性值。如下表2所示:

表2

对表2测试案例对应的测试数据,如下表3所述:

表3

数据池数据对象获取的特征值赋值如下表4所示:

表4

在一些实施例中,在业务数据表中未查找到测试案例对应的数据对象的情况下,从应用数据库中抽取测试案件文件中的需要的测试数据信息对应的业务数据,并存储到数据池中。

在一些实施例中,在应用数据库中未抽取到测试案件文件中的需要的测试数据信息对应的业务数据的情况下,根据测试案件文件中的需要的测试数据信息,生成对应的业务数据并存储到数据池中。

图3是本申请实施例的软件测试方法的另一示意图,如图3所示,该方法包括图1中的步骤100至300,并且,该方法还包括:

步骤400,根据测试案件文件中的需要的测试数据信息,遍历数据池中存放的数据,并且,从应用数据库中抽取测试案件文件中的需要的测试数据信息对应的业务数据,以更新业务数据表。

在一些实施例中,根据测试案件文件中的需要的测试数据信息,遍历数据池中储存的数据,包括:根据预先设置的周期,对数据池中的存储的数据进行遍历。

例如,定时执行测试数据验证服务,该模块逐条检查数据池中的数据,根据每条记录的主键,属性值、特征值,跟应用数据库中的记录进行校验,如果对应不上,则以应用数据库的数据为准,同步数据池中数据,如果特征值不变只是属性值改了,更新属性值即可,如果特征值也发生了改变,捞取符合老特征值的数据到数据池里。

图4是本申请实施例的软件测试方法的一实例示意图,图5是本申请实施例的软件测试方法的一实例另一示意图。如图4和图5所示,该方法包括:

步骤501,数据池里建立业务数据表,字段是属性字段和特征字段的并集。特征字段在案例文件中也可以作为属性字段使用。

步骤502,测试案例文件按约定的格式,填写要查找业务数据的特征字段赋值,也在测试数据里填写对象属性值。

步骤503,测试脚本根据测试案例文件,扫出案例需要使用的测试数据,根据特征字段的赋值,调用数据池API在数据池里找对应的数据,如果能找到,返回对应的数据对象,并根据外键形成嵌套对象,如介质对象里根据账号和客户编号分别查询账户和客户信息的数据,形成的账户对象和客户信息对象,作为介质对象里的一个成员变量。

步骤504,测试脚本根据测试案例文件里填写对像的属性值,组合成被测试服务/交易的上送报文数据,调用服务进行测试验证,如果执行成功应用数据库的值有更新,识别出对数据池数据有影响的,从应用数据库里抽象相应值,更新回数据池,如取款交易减少了账户余额,则需要同步更新数据池里对应账户数据的余额。有鉴于此,应尽量少把值会经常发生变化的字段纳入数据池的表里。

在步骤503中,如果根据特征字段值在数据池找不到对应数据,从应用数据库找相应数据,能找到则抽取数据插入数据池相应表中,返回数据对象实例给测试脚本使用,否则,调用对应的应用服务,生成相应数据,如果还不满足,则在新生成数据的基础上进行修改,生成符合特征值要求的数据,抽取数据插入数据池相应表中,返回数据对象实例给测试脚本使用,如果生成数据失败,则返回明确原因告诉测试脚本,测试脚本把失败原因写入案例执行结果中。

在一些实施例中,测试案例需要的测试数据信息包括特征字段以及属性字段,

业务数据表中的字段为属性字段和特征字段的并集。

在一些实施例中,根据测试案例设置配置中心、业务参数表、产品参数表、技术参数表以及对应的缓存。

例如,在测试脚本执行时,实时修改环境中的业务参数、产品参数、技术参数、配置中心参数等,其中前三种参数在应用数据库里,有些参数还有对应的缓存数据,后一个在配置中心里。如这个测试案例里有一个“运行系统”的技术参数,在配置中心里配置了“平台/主机”开关,则根据案例文件里的数据,实时修改配置中心里的“平台/主机”开关值即可。

根据本申请实施例,通过在数据池中建立业务数据表,响应于测试脚本的执行,根据所述测试脚本调取的测试案件文件中的需要的测试数据信息,在所述数据池的所述业务数据表中查找所述测试案例对应的数据对象和所述数据对象的嵌套对象,获取所述测试案例对应的所述数据对象,并应用于所述测试脚本中,实现了测试数据的整合,降低了测试数据存放的复杂性以及测试数据维护的成本,并保证了测试数据的有效性。

本申请实施例还提供了一种软件的测试装置,其对应于以上实施例的软件测试的方法,因此该装置的实施可以参见以上实施例的软件测试方法的实施,重复之处不再赘述。

图6为本申请实施例软件的测试装置的一构成图,如图6所示,软件的测试的处理装置10包括建立模块11、处理模块12和应用模块13,其中,

建立模块11,其在数据池中建立业务数据表;

处理模块12,其响应于测试脚本的执行,根据测试脚本调取的测试案件文件中的需要的测试数据信息,在数据池的业务数据表中查找测试案例对应的数据对象和数据对象的嵌套对象;以及

应用模块13,其获取测试案例对应的数据对象,并应用于测试脚本中。

在一些实施例中,在业务数据表中未查找到测试案例对应的数据对象的情况下,从应用数据库中抽取测试案件文件中的需要的测试数据信息对应的业务数据,并存储到数据池中。

在一些实施例中,在应用数据库中未抽取到测试案件文件中的需要的测试数据信息对应的业务数据的情况下,根据测试案件文件中的需要的测试数据信息,生成对应的业务数据并存储到数据池中。

在一些实施例中,根据测试案件文件中的需要的测试数据信息,遍历数据池中存放的数据,并且,从应用数据库中抽取测试案件文件中的需要的测试数据信息对应的业务数据,以更新业务数据表。

在一些实施例中,根据测试案件文件中的需要的测试数据信息,遍历数据池中储存的数据,包括:

根据预先设置的周期,对数据池中的存储的数据进行遍历。

在一些实施例中,测试案例需要的测试数据信息包括特征字段以及属性字段,

业务数据表中的字段为属性字段和特征字段的并集。

在一些实施例中,根据测试案例设置配置中心、业务参数表、产品参数表、技术参数表以及对应的缓存。

本申请实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并能够在处理器上运行的计算机程序,其中,处理器执行计算机程序时实现软件的测试方法。

本申请实施例也提供一种计算机可读存储介质,其上存储有计算机程序,其中,计算机程序被处理器执行时实现软件测试方法。

需要说明的是,本申请中技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。

本申请实施例中的用户信息均是通过合法合规途径获得,并且对用户信息的获取、存储、使用、处理等经过用户授权同意的。

虽然本申请提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。

本领域技术人员应明白,本说明书的实施例可提供为方法、装置(系统)或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、装置(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本申请并不局限于任何单一的方面,也不局限于任何单一的实施例,也不局限于这些方面和/或实施例的任意组合和/或置换。而且,可以单独使用本申请的每个方面和/或实施例或者与一个或更多其他方面和/或其实施例结合使用。

最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围,其均应涵盖在本申请的权利要求和说明书的范围当中。

相关技术
  • 一种软件测试范围确定方法、软件测试方法和装置
  • 测试数据帧生成方法及装置、软件测试方法及装置
  • 软件测试方法、装置、计算机设备和可读存储介质
  • 软件自动测试方法及装置
  • 一种软件测试方法、装置及电子设备
  • 软件测试装置及其软件测试方法
  • 基于家用电器的软件测试方法及软件测试装置
技术分类

06120115920922