业务软件的测试方法及装置、存储介质、计算机设备与流程

文档序号:17357938发布日期:2019-04-09 21:51阅读:192来源:国知局
业务软件的测试方法及装置、存储介质、计算机设备与流程

本申请涉及软件测试技术领域,尤其是涉及到一种业务软件的测试方法及装置、存储介质、计算机设备。



背景技术:

在产品研发过程中,每当软件发生变化时,就必须重新测试现有的功能,以确认修改是否达到了预期的目的,检查修改是否损害了原有的正常功能,因此,为了验证修改的正确性及其影响就需要进行回归测试。

对于某些业务软件(如贷款软件等)来说,软件的各功能接口需要从数据库中调用客户基本信息以及从第三方数据系统中调用征信信息、欺诈信息等实现相应功能。现有技术对贷款软件的测试过程中,通常利用数据库中客户基本信息,以及通过测试接口调用的第三方数据源客户信息作为入参,将数据库中保存的接口返回数据作为出参进行回归测试,而测试接口对于入参与出参之间的映射关系是固定的,当第三方数据源客户信息发生改变时,测试接口将会发生映射失败、回归不通过的现象,导致测试人员无法分辨回归测试不通过是因为第三方数据源客户信息发生改变造成的还是软件代码编写错误造成的,影响测试效果。



技术实现要素:

有鉴于此,本申请提供了一种业务软件的测试方法及装置、存储介质、计算机设备,利用业务软件数据库中的用户数据和对应的第三方数据源数据建立测试用例,避免使用待测接口调用数据进行测试,避免了因第三方数据源数据发生改变导致的测试失败,提高了测试效率。

根据本申请的一个方面,提供了一种业务软件的测试方法,其特征在于,包括:

接收测试版本业务软件的代码;

根据所述测试版本业务软件代码以及原版本业务软件代码,按照测试计划生成测试任务,所述测试任务包括待测接口;

获取所述原版本业务软件对应的数据库中所述待测接口的返回数据、与所述待测接口相关的用户数据以及第三方数据源数据,建立测试用例;

根据所述测试用例对所述待测接口进行测试;

管理测试结果。

根据本申请的另一方面,提供了一种业务软件的测试装置,其特征在于,包括:

代码接收单元,用于接收测试版本业务软件的代码;

测试任务生成单元,用于根据所述测试版本业务软件代码以及原版本业务软件代码,按照测试计划生成测试任务,所述测试任务包括待测接口;

测试用例建立单元,用于获取所述业务软件对应的数据库中所述待测接口的返回数据、与所述待测接口相关的用户数据以及第三方数据源数据,建立测试用例;

测试单元,用于根据所述测试用例对所述待测接口进行测试;

测试结果管理单元,用于管理测试结果。

依据本申请又一个方面,提供了一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述业务软件的测试方法。

依据本申请再一个方面,提供了一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述业务软件的测试方法。

借由上述技术方案,本申请提供的一种业务软件的测试方法及装置、存储介质、计算机设备,根据测试版本和原版本的业务软件代码,按照测试计划分析待测接口,并从原版本业务软件的数据库中获取与待测接口相关的用户数据、第三方数据源数据以及待测接口的返回数据,从而建立测试用例对待测接口进行测试,与现有技术中利用待测接口调用的第三方数据源数据进行接口回归测试导致测试不通过时无法定位问题相比,本申请通过获取数据库中的与待测接口相关的用户数据和第三方数据源数据建立测试用例,如果测试结果与数据库中记录的接口返回数据不同,那么能够快速锁定代码问题,提高了测试效率,减轻了测试人员的工作量。

上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1示出了本申请实施例提供的一种业务软件的测试方法的流程示意图;

图2示出了本申请实施例提供的另一种业务软件的测试方法的流程示意图;

图3示出了本申请实施例提供的一种业务软件的测试装置的结构示意图;

图4示出了本申请实施例提供的另一种业务软件的测试装置的结构示意图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

在本实施例中提供了一种业务软件的测试方法,如图1所示,该方法包括:

步骤101,接收测试版本业务软件代码。

当业务软件产生新版本时,需要对新版本的业务软件进行测试,软件的功能是通过代码实现的,因此需要根据新版本也即测试版本业务软件的代码进行分析,从而完成软件的测试。

步骤102,根据测试版本业务软件代码以及原版本业务软件代码,按照测试计划生成测试任务,测试任务包括待测接口。

以测试版本业务软件代码和原版本业务软件代码作为依据进行分析,按照测试计划生成测试任务,软件的功能是通过代码实现接口调用完成的,因此一般先根据两个版本业务软件代码得出两个版本软件的调用接口,从而对调用接口所对应的相关代码进行分析,一般可得出以下几种情况:第一,对于相同的调用接口,两个版本软件对应的相关代码也相同;第二,对于相同的调用接口,两个版本软件对应的相关代码不同;第三,测试版本与原版本业务软件相比具有新增的调用接口。通常为了缩短测试时间,对于第一种情况中的调用接口不进行测试,测试计划一般可以包括第二和第三种情况中的调用接口,而本申请将第二中情况中的调用接口作为待测接口,以便对这部分的调用接口进行测试,从而确认测试版本业务软件是否损害了原版本业务软件的已有功能。

步骤103,获取原版本业务软件对应的数据库中待测接口的返回数据、待测接口对应的用户数据以及第三方数据源数据,建立测试用例。

在确定待测接口后,在原版本业务软件对应的数据库中,获取待测接口的返回数据也即为待测接口的输出数据,以及获取待测接口的输入数据,从而根据待测接口的输入和输出数据建立测试用例。对于业务软件对应的待测接口来说,输入数据通常包括从数据库中获取的由客户提供的客户基本信息数据即用户数据以及由待测接口从第三方数据源调用的客户相关数据即第三方数据源数据,而由于原版本软件通过待测接口对第三方数据源的调用时间与测试时间存在时间差,在调用时间至测试时间的时间段内,第三方数据源中的客户相关数据可能已经发生变化,因此如果测试过程中再将通过待测接口调用所得到的第三方数据源数据作为待测接口的输入数据,接口返回数据作为预期结果,显然无法得到与接口返回数据相同的预期结果,从而导致测试失败。

例如,9月业务软件产生了测试版本,需要对风险评估接口进行测试,数据库中数据显示客户甲在7月申请贷款时,填写了个人基本信息,风险评估接口从第三方数据源处调用了客户甲的欺诈信息,客户甲的7月份的欺诈信息显示客户没有欺诈行为,风险评估接口根据客户甲的个人基本信息和欺诈信息输出客户甲无还款风险的结论,而在8月时,第三方数据源记录了客户甲的严重欺诈行为,若在9月进行测试时,根据数据库中的客户基本信息和9月风险评估接口调用的客户甲的欺诈信息作为输入数据,显然无法得出客户甲无还款风险的结论,但是对于是新版本软件代码出现问题导致测试结果与预期不一致,还是测试输入数据与原有输入数据不一致导致测试结果与预期不同是无法确定的,还需要测试人员进行分辨,影响测试效率。

所以,本申请通过获取数据库中的与待测接口相关的用户数据和第三方数据源数据建立测试用例,如果测试结果与预期不同能够快速锁定代码问题,提高了测试效率。

步骤104,根据测试用例对待测接口进行测试。

待测接口可以为多个,利用测试用例分别对对应的待测接口进行测试,将测试用例中的相关数据输入至待测接口中,得到输出数据。

步骤105,管理测试结果。

根据测试用例和输出数据,分析输出数据与预期是否相同,从而得出测试用例执行是否通过的测试结果,以便测试人员及时发现测试版本业务软件可能存在代码编写错误等问题,进行问题排查。

通过应用本实施例的技术方案,根据测试版本和原版本的业务软件代码,按照测试计划分析待测接口,并从原版本业务软件的数据库中获取与待测接口相关的用户数据、第三方数据源数据以及待测接口的返回数据,从而建立测试用例对待测接口进行测试,与现有技术中利用待测接口调用的第三方数据源数据进行接口回归测试导致测试不通过时无法定位问题相比,本申请通过获取数据库中的与待测接口相关的用户数据和第三方数据源数据建立测试用例,如果测试结果与数据库中记录的接口返回数据不同,那么能够快速锁定代码问题,提高了测试效率,减轻了测试人员的工作量。

进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例的具体实施过程,以贷款软件为例,提供了另一种贷款软件的测试方法,如图2所示,该方法包括:

步骤201,接收测试版本业务软件代码。

接收测试人员上传的测试版本贷款软件的代码,为测试任务的生成提供依据。

步骤202,根据测试版本以及原版本的业务软件代码,获取测试版本与原版本的业务软件的相同调用接口。

分别根据测试版本的软件代码和原版本的软件代码分析测试版本软件对应的调用接口(或调用模块)和原版本软件对应的调用接口(或调用模块),其中,由于贷款软件的某些功能是通过调用多个功能接口组成的接口模块实现的,因此为了测试该功能需要对相应的功能模块进行测试,也即通过测试版本软件代码和原版本软件代码分析相应的调用模块,为了方便描述下文将通过代码分析出的调用接口和调用模块统一称为调用接口。分析两个版本软件代码对应的相同调用接口后,从上述调用接口中找出两个版本软件共同调用的接口,以便对这些接口进行测试从而测试版本贷款软件是否损害了原版本贷款软件的已有功能。

步骤203,若与相同调用接口相应的测试版本业务软件代码和原版本业务软件代码不同,则将相同调用接口作为待测接口,生成测试任务。

根据上述相同的调用接口,获取与调用接口对应的测试版本软件代码和原版本软件代码,如果两个版本的软件代码不同,说明需要对该调用接口进行测试,也即将相同的调用接口作为待测接口,进而根据待测接口生成测试任务,以便比较测试版本贷款软件和原版本贷款软件接口调用情况以测试测试版本贷款软件是否损害了原版本贷款软件的已有功能。

步骤204,根据待测接口,在数据库中获取待测接口的返回数据以及对应的时间戳。

原版本贷款软件数据库中记录了与贷款软件对应的接口全部相关数据,这些数据中包括了待测接口的返回数据,接口的返回数据也可以称为接口的输出数据,例如对于风险评估接口来说,风险评估接口通过调用客户的个人基本信息以及客户的欺诈信息从而输出客户的风险评分,而风险评估接口被调用后客户的风险评分信息会保存在数据库中,因此在数据库中获取风险评估接口的返回数据就相当于获取风险评估接口输出的客户风险评分,而获取接口返回数据的同时还获取返回数据对应的时间戳是为了后续在获取待测接口的输入数据时,能够保证输入数据和输出数据的一致性。

步骤205,根据时间戳,在数据库中获取与待测接口对应的用户数据以及第三方数据源数据。

根据与接口返回数据对应的时间戳以及接口返回数据中所包含的用户身份信息,在数据库中根据时间戳和用户身份信息找出与待测接口对应的用户数据以及第三方数据源数据,具体地,先根据用户身份信息查找数据库中记录的该用户的全部的用户数据以及第三方数据源数据,再按照时间戳选取全部的用户数据以及第三方数据源数据中,截止至时间戳时间之前的最新的用户数据以及第三方数据源数据,作为与待测接口对应的用户数据以及第三方数据源数据,从而保证接口返回数据即待测接口的输出数据与用户数据和第三方数据源数据即待测接口的输入数据是对应的。

例如,获取到的风险评估接口的接口返回数据为客户甲的风险评分,对应的时间戳为7月2日,则根据时间戳信息即7月2日和客户甲的身份信息,在数据库中查找客户甲在7月2日及7月2日之前最后一次提交的个人基本信息,以及待测接口在7月2日从第三方数据源处获取的客户甲的欺诈信息,将获取到的客户甲的个人基本信息作为用户数据,将获取到的客户甲的欺诈信息作为第三方数据源数据。

在上述任一实施例中,具体地,当业务软件为贷款软件时,第三方数据源数据包括但不限于以下任意一种或其组合:用户的征信数据、社会保险数据以及公积金数据。

在上述实施例中,贷款软件因为需要对用户的信用、风险、偿还能力等进行评估,因此需要调用的第三方数据源可以包括人民银行个人征信数据、用户的社会保险数据、用户的公积金数据等等,另外第三方数据源数据还可以包括公安系统、法院系统等等提供的用户的违规违法数据。

另外,用户数据可以包括客户基本信息数据(如姓名、性别、手机号、身份证号、住址、单位、联系人姓名等)、客户财产信息数据(如银行卡号、车牌号、房产号等等)。

步骤206,将用户数据以及第三方数据源数据作为输入数据、待测接口作为执行条件以及返回数据作为预期结果,建立测试用例。

根据在数据库中获取的用户数据、第三方数据源数据、待测接口返回数据以及待测接口建立测试用例,其中,用户数据以及第三方数据源数据作为输入数据,待测接口作为执行条件,待测接口返回数据作为预期结果,从而在后续的测试过程中将测试用例中的输入数据输入至待测接口中得到测试结果,以便将测试结果和预期结果进行比较,得出测试结论。将数据库中获取的用户数据和第三方数据源数据作为输入数据,无需待测接口在测试过程中从第三方数据源处重新调取用户的第三方数据源数据,即避免了第三方数据源数据发生改变导致的测试不通过,又节约了数据调取时间,并且部分第三方数据源提供的是收费数据,通过本方案建立测试用例也能够节省成本。

步骤207,利用jenkins测试工具,根据待测接口搭建自动化测试框架。

通过jenkins测试工具,将全部待测接口的脚本集成到自动化测试框架中,以便通过自动化测试框架一次执行全部待测接口脚本,避免测试人员手动逐个执行测试任务,影响测试效率,增加人力成本。

步骤208,控制测试框架调用测试用例进行测试。

测试框架搭建完毕后,通过测试框架依次执行全部待测接口脚本,实现对全部待测接口的测试,提高测试效率,避免测试人员手动操作的麻烦。

步骤209,若测试结果与预期结果不一致,则根据待测接口对应的测试版本贷款软件代码、原版本贷款软件代码、测试结果以及测试用例输出测试报告。

若待测接口输出的测试结果与对应的预期结果不一致,说明可能存在代码编写错误的问题,为了方便测试人员排查问题,则根据待测接口信息(例如接口编号、接口名称)、待测接口对应的测试版本贷款软件代码及原版本贷款软件代码、待测接口输出的测试结果、以及待测接口对应的测试用例生成测试报告发送给测试人员,以便测试人员根据测试报告对软件可能存在的问进行分析,有助于测试人员尽快解决新版本软件存在的问题。

通过应用本实施例的技术方案,首先,通过对测试版本软件代码和原版本软件代码进行自动分析,根据测试计划找出需要进行测试的待测接口,实现了对待测接口的快速定位;其次,通过获取数据库中与待测接口相关的用户数据、第三方数据源数据以及接口返回数据,从而建立测试用例,避免了第三方数据源数据发生改变导致的测试不通过;然后,通过搭建自动化测试框架对待测接口进行测试,减少了测试人员的工作量,提高了测试效率;最后,通过对比测试结果和预期结果,并在结果不一致时输出测试报告,方便了测试人员快速定位测试版本软件存在的问题。

进一步的,作为图1方法的具体实现,本申请实施例提供了一种业务软件的测试装置,如图3所示,该装置包括:代码接收单元31、测试任务生成单元32、测试用例建立单元33、测试单元34、测试结果管理单元35。

代码接收单元31,用于接收测试版本业务软件代码;

测试任务生成单元32,用于根据测试版本业务软件代码以及原版本业务软件代码,按照测试计划生成测试任务,测试任务包括待测接口;

测试用例建立单元33,用于获取业务软件对应的数据库中待测接口的返回数据、待测接口对应的用户数据以及第三方数据源数据,建立测试用例;

测试单元34,用于根据测试用例对待测接口进行测试;

测试结果管理单元35,用于管理测试结果。

在具体的应用场景中,如图4所示,测试任务生成单元32具体包括:调用接口获取单元321、测试任务生成单元322。

调用接口获取单元321,用于根据测试版本以及所述原版本的业务软件代码,获取测试版本与原版本的业务软件的相同调用接口;

测试任务生成单元322,用于若与相同调用接口相应的测试版本业务软件代码和原版本业务软件代码不同,则将相同调用接口作为待测接口,生成测试任务。

在具体的应用场景中,如图4所示,测试用例建立单元33具体包括:接口返回数据获取单元331、第三方数据获取单元332。

接口返回数据获取单元331,用于根据待测接口,在数据库中获取待测接口的返回数据以及对应的时间戳;

第三方数据获取单元332,用于根据时间戳,在数据库中获取与待测接口对应的用户数据以及第三方数据源数据。

在具体的应用场景中,如图4所示,测试单元33具体包括:测试用例建立单元333。

测试用例建立单元333,用于将用户数据以及第三方数据源数据作为输入数据、待测接口作为执行条件以及返回数据作为预期结果,建立测试用例。

在具体的应用场景中,如图4所示,测试单元34具体包括:测试框架搭建单元341、测试子单元342。

测试框架搭建单元341,用于利用jenkins测试工具,根据待测接口搭建自动化测试框架;

测试子单元342,用于控制测试框架调用测试用例进行测试。

在具体的应用场景中,如图4所示,测试结果管理单元35具体用于:

若测试结果与预期结果不一致,则根据待测接口对应的测试版本业务软件代码、原版本业务软件代码、测试结果以及测试用例输出测试报告。

在上述任一实施例中,具体地,当业务软件为贷款软件时,第三方数据源数据包括但不限于以下任意一种或其组合:用户的征信数据、社会保险数据以及公积金数据。

需要说明的是,本申请实施例提供的一种业务软件的测试装置所涉及各功能单元的其他相应描述,可以参考图1和图2中的对应描述,在此不再赘述。

基于上述如图1和图2所示方法,相应的,本申请实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述如图1和图2所示的业务软件的测试方法。

基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。

基于上述如图1、图2所示的方法,以及图3、图4所示的虚拟装置实施例,为了实现上述目的,本申请实施例还提供了一种计算机设备,具体可以为个人计算机、服务器、网络设备等,该计算机设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1和图2所示的业务软件的测试方法。

可选地,该计算机设备还可以包括用户接口、网络接口、摄像头、射频(radiofrequency,rf)电路,传感器、音频电路、wi-fi模块等等。用户接口可以包括显示屏(display)、输入单元比如键盘(keyboard)等,可选用户接口还可以包括usb接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如蓝牙接口、wi-fi接口)等。

本领域技术人员可以理解,本实施例提供的一种计算机设备结构并不构成对该计算机设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。

存储介质中还可以包括操作系统、网络通信模块。操作系统是管理和保存计算机设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与该实体设备中其它硬件和软件之间通信。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现。通过应用本实施例的技术方案,根据测试版本和原版本的业务软件代码,按照测试计划分析待测接口,并从原版本业务软件的数据库中获取与待测接口相关的用户数据、第三方数据源数据以及待测接口的返回数据,从而建立测试用例对待测接口进行测试,与现有技术中根据利用待测接口调用的第三方数据源数据进行接口回归测试导致测试不通过无法定位问题相比,本申请通过获取数据库中的与待测接口相关的用户数据和第三方数据源数据建立测试用例,如果测试结果与数据库中记录的接口返回数据不同,那么能够快速锁定代码问题,提高了测试效率,减轻了测试人员的工作量。

本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1