本发明涉及金融,尤其涉及一种批量处理系统自动测试方法、装置和电子设备。
背景技术:
1、批量处理系统存在于大部分金融机构的技术体系中,一般用于在指定时间(如工作日的日初、日间、日终)进行系统状态改变、联机业务数据处理、数据抽取和灌入、以及报表生成等操作。
2、在批量系统测试工作过程中,一般是从业务功能、非功能层面和技术逻辑分支开展分析和测试,业务功能层面主要关注批量执行完成后,前端最终态处理结果是否符合预期,非功能层面关注语句执行效率和业务系统运行表现,技术逻辑分支层面对于批量关键流程的分支进行覆盖性测试。
3、传统的批量系统测试分析需要人工撰写测试用例和人工执行批量测试并监控执行进展,人力成本较高,并且通常批量关联的业务系统庞杂,服务解耦导致调用链路日趋复杂,人工撰写测试用例通常覆盖面较窄,会造成未预知的缺陷逃逸的情况。
技术实现思路
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、确定模块,用于基于测试任务中的测试目标确定批量处理系统对应的至少一个测试层级,所述测试层级表征所述测试任务针对的是所述批量处理系统中的业务市场层级、业务分支层级或业务节点层级;
26、影响性分析模块,用于针对各测试层级,通过对所述批量处理系统的数据处理链路进行分析,确定所述测试层级对应的所述测试目标的多维影响性分析数据集,所述多维影响性分析数据集表征所述测试目标在所述数据处理链路中的处理特性;
27、用例生成模块,用于基于各所述测试目标的多维影响性分析数据集,通过模糊测试算法分别生成各所述测试目标对应的多个测试用例;
28、测试模块,用于基于各所述测试目标的多维影响性分析数据集和各所述测试目标分别对应的测试用例,对各所述测试目标进行测试,获得测试结果。
29、本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述批量处理系统自动测试方法。
30、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述批量处理系统自动测试方法。
31、本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述批量处理系统自动测试方法。
32、本发明提供的批量处理系统自动测试方法、装置和电子设备,通过对批量处理系统的数据处理链路进行分析,确定各测试层级对应的测试目标的多维影响性分析数据,进而根据各测试目标的多维影响性分析数据,通过模糊测试算法生成各测试目标的测试用例,进而基于各测试目标的多维影响性分析数据集和各测试目标对应的测试用例,分别对各测试目标进行自动批量业务测试。该方式无需人工生成测试用例,以及人工执行测试过程和对测试过程进行监控,节省了人力成本,并且在多维影响性分析数据集的基础上通过模糊测试算法可以生成大量测试用例,使用该方式生成的大量测试用例能够提高在正例和反例上的覆盖度,进而能够在测试过程中挖掘出大量未预知的缺陷,降低缺陷逃逸的风险。