单元测试方法、装置、设备、存储介质及产品与流程

文档序号:32399948发布日期:2022-12-02 18:41阅读:34来源:国知局
单元测试方法、装置、设备、存储介质及产品与流程

1.本技术属于软件测试技术领域,尤其涉及一种单元测试方法、装置、设备、存储介质及产品。


背景技术:

2.为了发现信贷系统软件的潜在风险和问题,软件测试是必不可少的一步,因此对相关测试技术也提出了更高的要求。
3.目前,信贷系统的一种本地测试方式为通过模拟报文对组件进行整体测试。但是采用模拟报文的方式,需要启动整个信贷系统,启动时间长、速度慢,从而耗费了大量的开发时间,降低了测试效率。


技术实现要素:

4.本技术实施例提供一种单元测试方法、装置、设备及计算机存储介质,能够节省开发时间,提高单元测试的效率。
5.第一方面,本技术实施例提供了一种单元测试方法,该方法包括:
6.启动信贷系统的待测试组件;
7.获取待测试组件的测试用例代码;
8.基于待测试组件的测试用例代码,创建单元测试任务;
9.执行单元测试任务,生成单元编译脚本和单元执行脚本;
10.基于单元编译脚本编译测试用例代码并生成执行文件;
11.将执行文件录入单元测试模块,以使单元测试模块基于单元执行脚本对待测试组件进行测试,得到待测试组件的单元测试结果。
12.第二方面,本技术实施例提供了一种单元测试装置,该装置包括:
13.启动模块,用于启动信贷系统的待测试组件;
14.获取模块,用于获取待测试组件的测试用例代码;
15.创建模块,用于基于待测试组件的测试用例代码,创建单元测试任务;
16.生成模块,用于执行单元测试任务,生成单元编译脚本和单元执行脚本;
17.编译模块,用于基于单元编译脚本编译所述测试用例代码并生成执行文件;
18.测试模块,用于将执行文件录入单元测试模块,以使单元测试模块基于单元执行脚本对待测试组件进行测试,得到待测试组件的单元测试结果。
19.第三方面,本技术实施例提供了一种电子设备,该电子设备包括:处理器以及存储有计算机程序指令的存储器;
20.处理器执行计算机程序指令时实现如第一方面的任意一项实施例中的单元测试方法的步骤。
21.第四方面,本技术实施例提供了一种计算机存储介质,计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现如第一方面的任意一项实施例
中的单元测试方法的步骤。
22.第五方面,本技术实施例提供了一种计算机程序产品,计算机程序产品中的指令由电子设备的处理器执行时,电子设备执行如第一方面的任意一项实施例中的单元测试方法的步骤。
23.本技术实施例的单元测试方法、装置、设备、存储介质及产品,启动信贷系统的待测试组件,通过获取待测试组件的测试用例代码,创建单元测试任务,利用执行测试任务所生成的单元编译脚本将测试用例代码编译成执行文件,并将执行文件录入单元测试模块,利用单元执行脚本进行单元测试,得到待测试组件的单元测试结果。由此,本技术实施例的单元测试方法在不需要启动整个信贷系统的情况下,就能对信贷系统的待测试组件进行单元测试,节省了开发测试的时间,提高了测试效率。
附图说明
24.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
25.图1是本技术实施例提供的一种单元测试方法的流程示意图;
26.图2是步骤s130具体实现方式的流程示意图;
27.图3是步骤s140具体实现方式的流程示意图;
28.图4是步骤s150具体实现方式的流程示意图;
29.图5是步骤s160具体实现方式的流程示意图;
30.图6是本技术实施例提供的另一种单元测试方法的流程示意图;
31.图7是本技术实施例提供的一种单元测试装置的结构示意图;
32.图8是本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
33.下面将详细描述本技术的各个方面的特征和示例性实施例,为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本技术进行进一步详细描述。应理解,此处所描述的具体实施例仅意在解释本技术,而不是限定本技术。对于本领域技术人员来说,本技术可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本技术的示例来提供对本技术更好的理解。
34.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
35.本技术技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
36.信贷系统现存的测试方式是通过模拟报文对组件整体测试,在对被测组件测试时需要启动整个信贷系统才能进行测试,导致测试启动时间过长,耗费了大量的开发时间,降低了开发效率。
37.为了解决现有技术问题,本技术实施例提供了一种单元测试方法、装置、设备、存储介质及产品。
38.下面首先对本技术实施例所提供的单元测试方法进行介绍。
39.图1示出了本技术实施例提供的一种单元测试方法的流程示意图。如图1所示,该单元测试方法具体可以包括如下步骤:
40.s110、启动信贷系统的待测试组件;
41.s120、获取待测试组件的测试用例代码;
42.s130、基于待测试组件的测试用例代码,创建单元测试任务;
43.s140、执行单元测试任务,生成单元编译脚本和单元执行脚本;
44.s150、基于单元编译脚本编译测试用例代码并生成执行文件;
45.s160、将执行文件录入单元测试模块,以使单元测试模块基于单元执行脚本对待测试组件进行测试,得到待测试组件的单元测试结果。
46.因此,本技术实施例通过启动待测试组件,获取待测试组件的测试用例代码,创建单元测试任务,利用执行测试任务所生成的单元编译脚本将测试用例代码编译成执行文件,并将执行文件录入单元测试模块,利用单元执行脚本进行单元测试,得到待测试组件的单元测试结果。由此,本技术实施例的单元测试方法在不需要启动整个信贷系统的情况下,仅仅需要启动信贷系统的待测试组件就能进行单元测试,有效提高了单元测试的效率。
47.下面介绍上述各个步骤的具体实现方式。
48.在一些实施例中,在s110中,作为一种示例,为了对信贷系统的软件质量有全面的了解,本技术提供的单元测试方法只需启动信贷系统的待测试组件,无需启动整个信贷系统。
49.在一些实施例中,在s120中,作为一种示例,待测试组件的测试用例代码基于java语言进行编写,启动待测试组件后将基于java语言进行编写的测试用例代码存放在test包中,test包可同时配置多个,存放待测试组件的多个测试用例代码,以便测试过程中随时获取待测试组件的测试用例代码。
50.获取待测试组件的测试用例代码之后,需要依据测试用例代码创建单元测试任务,以使测试用例代码能被正常运行。
51.在一些实施例中,在s130中,从test包中获取待测试组件的测试用例代码,创建单元测试任务,对信贷系统的待测试组件进行检查和验证。
52.作为一种示例,为了确保测试的顺利开展,需要依据待测试组件的测试用例代码创建单元测试任务,如图2所示,上述s130可以包括如下步骤:
53.s131、将待测试组件的测试用例代码导入数据存储端口进行存储,得到单元测试文件;
54.s132、通过创建端口接收单元测试文件,创建单元测试任务。
55.为了保证所创建的单元测试任务的准确性,在加载生成单元测试文件时,利用拦截端口拦截外部数据信号进入待测试组件。可选的,为了不让测试数据进入数据库,可以使
用powermock拦截数据库操作,其中,powermock是一个java模拟框架。
56.在一些实施例中,在s140中,执行单元测试任务,生成的单元编译脚本和单元执行脚本在再次测试时可以重复使用,减少了开发流程的往复次数,有利于提高测试效率。
57.作为一种示例,为了顺利执行单元测试任务,如图3所示,上述s140可以包括如下步骤:
58.s141、确定单元测试任务的测试方法;
59.s142、将单元测试任务加载到执行端口启动执行;
60.s143、基于测试方法,执行生成单元编译脚本和单元执行脚本。
61.test包可以灵活选择以何种方式进行测试,可以一键执行全部测试方法,也可以进行单个方法的测试,如果某个测试方法执行失败,不会影响到其他的测试。所以,从开发的角度,确定单元测试任务的测试方法,统一了测试和开发的技术栈,启动执行后依据确定的测试方法生成单元编译脚本和单元执行脚本,再次测试时可以重复利用,降低了测试的难度。
62.在一些实施例中,在s150中,利用单元编译脚本对待测试组件的测试用例代码进行编译,生成执行文件。
63.作为一种示例,为了执行文件的实现功能顺利执行,也为减轻测试人员的工作量,如图4所示,上述s150可以包括如下步骤:
64.s151、利用单元编译脚本将测试用例代码编译成字节码文件;
65.s152、按照字节码文件的程序顺序执行字节码文件,得到执行文件。
66.由于java是静态语言,基于java语言编写的测试用例代码想要得以运行需要先进行编译,得到字节码文件。若测试过程中存在问题,通过在内存中获取原来的字节码信息,拦截修改字节码文件或者进行替换。可选的,在java虚拟机jvm加载字节码文件时,可利用java字节码操作框asm拦截、返回修改后的字节码,或者在运行时,替换掉原来的字节码,重新模拟代码行为,节省了测试时间。
67.在一些实施例中,在s160中,将执行文件录入单元测试模块进行测试,借助单元执行脚本实现执行文件的对应功能,得到单元测试结果。
68.作为一种示例,如图5所示,上述s160可以包括如下步骤:
69.s161、将执行文件录入单元测试模块;
70.s162、对执行文件进行注解并运行;
71.s163、基于单元执行脚本对比实际运行结果与预期结果是否一致,得到单元测试结果。
72.示例性的,单元测试模块以junit单元测试框架对执行文件进行注解和运行,得到实际运行结果,然后通过单元执行脚本对比实际运行结果与预期结果是否一致,得到单元测试结果。其中,利用junit单元测试框架的扩展spring test让测试环境更加接近实际执行环境。
73.为了让管理人员对软件质量有更好的把握,如图6所示,本技术还提高了单元测试方法的另一种实施例,在得到单元测试结果之后通过断言检验得到单元测试报告,让测试结果可跟踪。
74.图6是本技术实施例提供的另一种单元测试方法的流程示意图。作为一种示例,如
图6所示,在s160之后还可以包括如下步骤:
75.s610、对单元测试结果进行封装,得到检验任务;
76.s620、将检验任务加载到断言端口进行断言检验,得到单元测试报告。
77.因此,通过对单元测试结果进行断言检验得到单元测试报告,单元测试报告包括测试用例代码覆盖情况和用例执行结果等,让测试结果可跟踪,利于开发测试人员提早发现和解决问题。
78.需要说明的是,上述本技术实施例描述的应用场景是为了更加清楚的说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定。本领域技术人员可知,随着新应用场景的出现,本技术实施例提供的技术方案对于类似的技术问题同样适用。
79.基于相同的发明构思,本技术还提供了一种单元测试装置,具体结合图7进行详细说明。
80.图7示出了本技术实施例提供的一种单元检测装置的结构示意图。
81.如图7所示,该单元测试装置700可以包括:
82.启动模块710,用于启动信贷系统的待测试组件;
83.获取模块720,用于获取待测试组件的测试用例代码;
84.创建模块730,用于基于待测试组件的测试用例代码,创建单元测试任务;
85.生成模块740,用于执行单元测试任务,生成单元编译脚本和单元执行脚本;
86.编译模块750,用于基于单元编译脚本编译所述测试用例代码并生成执行文件;
87.测试模块760,用于将执行文件录入单元测试模块,以使单元测试模块基于单元执行脚本对待测试组件进行测试,得到待测试组件的单元测试结果。
88.下面对上述单元测试装置700进行详细说明,具体如下所示:
89.在一些实施例中,为了顺利对信贷系统的测试组件开展单元测试,创建单元测试任务,上述创建模块730可以包括以下单元:
90.导入单元,用于将待测试组件的测试用例代码导入数据存储端口进行存储,得到单元测试文件;
91.接收创建单元,用于通过创建端口接收单元测试文件,创建单元测试任务。
92.在一些实施例中,创建单元测试任务之后,为了获得单元编译脚本和单元执行脚本,上述生成模块740可以包括以下单元:
93.确定单元,用于确定单元测试任务的测试方法;
94.加载单元,用于将单元测试任务加载到执行端口启动执行;
95.执行生成单元,用于基于测试方法,执行生成单元编译脚本和单元执行脚本。
96.在一些实施例中,为了顺利进行单元测试任务,上述编译模块750可以包括以下单元:
97.第一编译单元,用于利用单元编译脚本将测试用例代码编译成字节码文件;
98.执行单元,用于按照字节码文件的程序顺序执行字节码文件,得到执行文件。
99.在一些实施例中,为了依据执行文件得到单元测试结果,上述测试模块760可以包括以下单元:
100.录入单元,用于将执行文件录入单元测试模块;
101.注解单元,用于对执行文件进行注解并运行;
102.对比单元,用于基于单元执行脚本对比实际运行结果与预期结果是否一致,得到单元测试结果。
103.在一些实施例中,为了让管理人员对信贷系统的质量有更好的把握,上述单元测试装置700还可以包括如下单元:
104.封装单元,用于对单元测试结果进行封装,得到检验任务;
105.断言单元,用于将检验任务加载到断言端口进行断言检验,得到单元测试报告。
106.因此,基于单元测试模块junit对单元测试结果进行断言,生成单元测试报告,让测试结果可跟踪,也让管理人员对信贷系统的软件质量有更好的把握。
107.图8示出了本技术实施例提供的一种电子设备结构示意图。
108.该电子设备800可以包括处理器820以及存储有计算机程序指令的存储器830。
109.具体地,上述处理器820可以包括中央处理器(cpu),或者特定集成电路(application specific integrated circuit,asic),或者可以被配置成实施本技术实施例的一个或多个集成电路。
110.存储器830可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器830可包括硬盘驱动器(hard disk drive,hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(universal serial bus,usb)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器830可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器830可在综合网关容灾设备的内部或外部。在特定实施例中,存储器830是非易失性固态存储器。
111.在特定实施例中,存储器830包括只读存储器(rom)。在合适的情况下,该rom可以是掩模编程的rom、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、电可改写rom(earom)或闪存或者两个或更多个以上这些的组合。
112.存储器可包括只读存储器(rom),随机存取存储器(ram),磁盘存储介质设备,光存储介质设备,闪存设备,电气、光学或其他物理/有形的存储器存储设备。因此,通常,存储器包括一个或多个编码有包括计算机可执行指令的软件的有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当该软件被执行(例如,由一个或多个处理器)时,其可操作来执行参考根据本技术公开的第一方面的单元测试方法所描述的操作。
113.处理器820通过读取并执行存储器830中存储的计算机程序指令,以实现上述实施例中的任意一种单元测试方法。
114.在一个示例中,电子设备800还可包括通信接口840和总线810。其中,如图8所示,处理器820、存储器830、通信接口840通过总线810连接并完成相互间的通信。
115.通信接口840,主要用于实现本技术实施例中各模块、装置、单元和/或设备之间的通信。
116.总线810包括硬件、软件或两者,将单元测试设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(agp)或其他图形总线、增强工业标准架构(eisa)总线、前端总线(fsb)、超传输(ht)互连、工业标准架构(isa)总线、无限带宽互连、低引脚数(lpc)总线、存储器总线、微信道架构(mca)总线、外围组件互连(pci)总线、pci-express(pci-x)总线、串行高级技术附件(sata)总线、视频电子标准协会局部(vlb)总线或其他合
适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线810可包括一个或多个总线。尽管本技术实施例描述和示出了特定的总线,但本技术考虑任何合适的总线或互连。
117.该电子设备800可以执行本技术实施例中的单元测试方法,从而实现结合图1和图7描述的单元测试方法和装置。
118.另外,结合上述实施例中的单元测试方法,本技术实施例可提供一种计算机存储介质来实现。该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种单元测试方法。
119.需要明确的是,本技术并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本技术的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本技术的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
120.以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本技术的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
121.还需要说明的是,本技术中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本技术不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
122.上面参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
123.以上所述,仅为本技术的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1