CN115203046A - 基于大数据造单的程序测试方法以及相关设备 - Google Patents
基于大数据造单的程序测试方法以及相关设备 Download PDFInfo
- Publication number
- CN115203046A CN115203046A CN202210860765.7A CN202210860765A CN115203046A CN 115203046 A CN115203046 A CN 115203046A CN 202210860765 A CN202210860765 A CN 202210860765A CN 115203046 A CN115203046 A CN 115203046A
- Authority
- CN
- China
- Prior art keywords
- data
- sample data
- calculation
- product
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Abstract
本申请涉及数据处理技术领域,提供了一种基于大数据造单的程序测试方法以及相关设备,方法包括:获取第一业务产品的产品数据配置表,并基于产品数据配置表生成第一业务产品的第一样本数据,并将第一样本数据存储至预设的关系数据库,生成第一数据表单,之后再将第一数据表单同步至Hive数据仓库,之后通过基于Spark计算引擎创建的测试程序和预设的大数据算法程序,分别对第一数据表单和第二数据表单中的每份样本数据进行业务逻辑计算,得到每份样本数据的第一计算结果和第二计算结果,根据第一计算结果和第二计算结果确定大数据算法程序在业务逻辑计算上的正确性。本申请实施例能够对新业务产品的业务逻辑大数据算法程序进行测试。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种基于大数据造单的程序测试方法以及相关设备。
背景技术
随着企业业务量的日益庞大,企业每个月的新业务产品数量也逐渐增多,在每个新业务产品上线之前,需要对产品的业务逻辑算法进行测试,例如在人寿保险领域中,每个保险产品根据其不同的业务类型和业务性质而使用不同的有效保额算法,因此在新保险产品上线前都需要对该产品的有效保额算法进行测试,也就是对有效保额的算法程序进行测试。
然而,对于还没有上线的新业务产品,并没有存量数据可以用来进行相应的程序测试。
发明内容
本申请实施例的主要目的在于提出一种基于大数据造单的程序测试方法、装置、电子设备及计算机可读存储介质,能够对新业务产品的业务逻辑算法程序进行测试。
为实现上述目的,本申请实施例的第一方面提出了一种基于大数据造单的程序测试方法,所述方法包括:
获取第一业务产品的产品数据配置表,并基于所述产品数据配置表生成所述第一业务产品的第一样本数据;
将所述第一样本数据存储至预设的关系数据库,生成第一数据表单,所述第一数据表单包括多份样本数据,所述多份样本数据包括所述第一样本数据;
获取基于Spark计算引擎创建的测试程序,并通过所述测试程序对所述第一数据表单中的每份样本数据进行业务逻辑计算,得到所述第一数据表单中的每份样本数据对应的第一计算结果;
将所述第一数据表单同步至Hive数据仓库,得到第二数据表单,并通过预设的大数据算法程序对所述第二数据表单中的每份样本数据进行业务逻辑计算,得到所述第二数据表单中的每份样本数据对应的第二计算结果;
对所述第一计算结果和所述第二计算结果进行核对处理,得到每份所述样本数据对应的核对结果;
根据所述核对结果确定所述大数据算法程序在所述业务逻辑计算上的正确性。
根据本发明一些实施例提供的基于大数据造单的程序测试方法,所述多份样本数据还包括第二业务产品的第二样本数据,在所述将所述第一样本数据存储至预设的关系数据库,生成第一数据表单之前,所述方法还包括:
从业务数据库中获取第二业务产品的第二样本数据;
所述将所述第一样本数据存储至预设的关系数据库,生成第一数据表单,包括:
将所述第一样本数据和所述第二样本数据存储至预设的关系数据库,生成第一数据表单。
根据本发明一些实施例提供的基于大数据造单的程序测试方法,所述从业务数据库中获取第二业务产品的第二样本数据,包括:
根据预设规则,从业务数据库中获取第二业务产品的预设字段的样本数据,得到第二样本数据,其中,所述预设字段与所述产品数据配置表中的字段相匹配。
根据本发明一些实施例提供的基于大数据造单的程序测试方法,所述基于所述产品数据配置表生成所述第一业务产品的第一样本数据,包括:
获取预设的Python数据生成程序;
基于所述产品数据配置表,并利用所述Python数据生成程序生成所述第一业务产品的第一样本数据。
根据本发明一些实施例提供的基于大数据造单的程序测试方法,所述对所述第一计算结果和所述第二计算结果进行核对处理,得到每份所述样本数据对应的核对结果,包括:
对所述第一计算结果和所述第二计算结果进行核对处理,得到每份所述样本数据对应的第一计算结果和第二计算结果之间的差异值;
根据预设结果模板和所述差异值,生成每份所述样本数据对应的核对结果。
根据本发明一些实施例提供的基于大数据造单的程序测试方法,所述业务逻辑计算包括多个子逻辑计算,所述第一计算结果和所述第二计算结果均包括多个子计算结果;
所述对所述第一计算结果和所述第二计算结果进行核对处理,得到每份所述样本数据对应的第一计算结果和第二计算结果之间的差异值,包括:
对所述第一计算结果和所述第二计算结果的多个所述子计算结果分别进行核对处理,得到每份所述样本数据对应的多个所述子计算结果之间的差异值。
根据本发明一些实施例提供的基于大数据造单的程序测试方法,所述将所述第一数据表单同步至Hive数据仓库,得到第二数据表单,包括:
通过数据处理工具Sqoop将所述第一数据表单同步至Hive数据仓库,得到第二数据表单。
为实现上述目的,本申请实施例的第二方面提出了一种基于大数据造单的程序测试装置,所述装置包括:
数据获取模块,用于获取第一业务产品的产品数据配置表,并基于所述产品数据配置表生成所述第一业务产品的第一样本数据;
表单生成模块,用于将所述第一样本数据存储至预设的关系数据库,生成第一数据表单,所述第一数据表单包括多份样本数据,所述多份样本数据包括所述第一样本数据;
第一计算模块,用于获取基于Spark计算引擎创建的测试程序,并通过所述测试程序对所述第一数据表单中的每份样本数据进行业务逻辑计算,得到所述第一数据表单中的每份样本数据对应的第一计算结果;
第二计算模块,用于将所述第一数据表单同步至Hive数据仓库,得到第二数据表单,并通过预设的大数据算法程序对所述第二数据表单中的每份样本数据进行业务逻辑计算,得到所述第二数据表单中的每份样本数据对应的第二计算结果;
结果核对模块,用于对所述第一计算结果和所述第二计算结果进行核对处理,得到每份所述样本数据对应的核对结果;
处理模块,用于根据所述核对结果确定所述大数据算法程序在所述业务逻辑计算上的正确性。
为实现上述目的,本申请实施例的第三方面提出了一种电子设备,所述电子设备包括存储器、处理器、存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述第一方面所述的方法。
为实现上述目的,本申请实施例的第四方面提出了一种存储介质,所述存储介质为计算机可读存储介质,用于计算机可读存储,所述存储介质存储有一个或者多个计算机程序,所述一个或者多个计算机程序可被一个或者多个处理器执行,以实现上述第一方面所述的方法。
本申请提出一种基于大数据造单的程序测试方法、装置、电子设备以及计算机可读存储介质,所述基于大数据造单的程序测试方法通过获取第一业务产品的产品数据配置表,并基于产品数据配置表生成第一业务产品的第一样本数据,之后将第一样本数据存储至预设的关系数据库,生成第一数据表单,再获取基于Spark计算引擎创建的测试程序,并通过测试程序对第一数据表单中的每份样本数据进行业务逻辑计算,得到每份样本数据对应的第一计算结果,再将第一数据表单同步至Hive数据仓库,得到第二数据表单,并通过预设的大数据算法程序对第二数据表单中的每份样本数据进行业务逻辑计算,得到每份样本数据对应的第二计算结果,对第一计算结果和第二计算结果进行核对处理,最后根据每份样本数据对应的核对结果确定大数据算法程序在业务逻辑计算上的正确性。本申请实施例基于业务产品的产品数据配置表进行造单,构建存储在关系数据库中的第一数据表单和存储在Hive数据仓库中的第二数据表单,之后通过由Spark计算引擎创建的测试程序以及预设的大数据算法程序分别对关系数据库中的第一数据表单以及Hive数据仓库中的第二数据表单进行业务逻辑计算,得到第一计算结果和第二计算结果,最后根据两个计算结果确定大数据算法程序在业务逻辑计算上的正确性,实现对算法程序的测试。
附图说明
图1是本申请实施例提供的一种基于大数据造单的程序测试方法的流程示意图;
图2是本申请另一实施例提供的一种基于大数据造单的程序测试方法的流程示意图;
图3是本申请另一实施例提供的一种基于大数据造单的程序测试方法的流程示意图;
图4是本申请另一实施例提供的一种基于大数据造单的程序测试方法的流程示意图;
图5是本申请实施例提供的一种基于大数据造单的程序测试装置的结构示意图;
图6是本申请实施例提供的一种电子设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
首先,对本申请中涉及的若干名词进行解析:
Spark计算引擎,一种专为大规模数据处理而设计的快速通用的计算引擎。Spark是加州大学伯克利分校的AMP实验室所开源的类Hadoop MapReduce的通用并行框架,Spark拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
Hive数据仓库,一种构建在Hadoop大数据软件系统运行框架之上的数据仓库,它可以将结构化的数据文件映射成表,并提供类SQL查询功能,用于查询的SQL语句会被转化为MapReduce作业,然后提交到Hadoop上运行。
随着企业业务量的日益庞大,企业每个月的新业务产品数量也逐渐增多,在每个新业务产品上线之前,需要对产品的业务逻辑算法进行测试,例如在人寿保险领域中,每个保险产品根据其不同的业务类型和业务性质而使用不同的有效保额算法,因此在新保险产品上线前都需要对该产品的有效保额算法进行测试,也就是对有效保额的大数据算法程序进行测试。
然而,对于还没有上线的新业务产品,并没有存量数据可以用来进行相应的程序测试。
基于此,本申请实施例提供了一种基于大数据造单的程序测试方法、装置、电子设备及计算机可读存储介质,能够对新业务产品的业务逻辑大数据算法程序进行测试。
本申请实施例提供的一种基于大数据造单的程序测试方法、装置、电子设备及计算机可读存储介质,具体通过如下实施例进行说明,首先描述本申请实施例中的基于大数据造单的程序测试方法。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
本申请实施例提供的基于大数据造单的程序测试方法可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中的软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机等;服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现基于大数据造单的程序测试方法的应用等,但并不局限于以上形式。
本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
请参见图1,图1示出了本申请实施例提供的一种基于大数据造单的程序测试方法的流程示意图。如图1所示,所述基于大数据造单的程序测试方法包括但不限于步骤S110至S160:
步骤S110,获取第一业务产品的产品数据配置表,并基于所述产品数据配置表生成所述第一业务产品的第一样本数据。
步骤S120,将所述第一样本数据存储至预设的关系数据库,生成第一数据表单,所述第一数据表单包括多份样本数据,所述多份样本数据包括所述第一样本数据。
步骤S130,获取基于Spark计算引擎创建的测试程序,并通过所述测试程序对所述第一数据表单中的每份样本数据进行业务逻辑计算,得到所述第一数据表单中的每份样本数据对应的第一计算结果。
步骤S140,将所述第一数据表单同步至Hive数据仓库,得到第二数据表单,并通过预设的大数据算法程序对所述第二数据表单中的每份样本数据进行业务逻辑计算,得到所述第二数据表单中的每份样本数据对应的第二计算结果。
步骤S150,对所述第一计算结果和所述第二计算结果进行核对处理,得到每份所述样本数据对应的核对结果。
步骤S160,根据所述核对结果确定所述大数据算法程序在所述业务逻辑计算上的正确性。
示例性的,在人寿保险领域中,有效保额是指当发生了保险合同中最大给付额的保险事故时,保险公司需支付的最高金额。每个保险产品都由于其业务类型和业务性质的不同而采用了不同的有效保额算法,因此在新保险产品上线之前,需要对新保险产品的有效保额算法程序进行测试,而对于本申请实施例提供的基于大数据造单的程序测试方法,所述第一业务产品即为新业务产品,而所述第二业务产品即为旧业务产品。
可以理解的是,产品数据配置表包括进行业务逻辑计算所需要的业务字段。示例性的,第一业务产品为保险产品,而业务逻辑计算为有效保额计算,则产品数据配置表包括进行有效保额计算所需要的业务字段:第一业务产品中的每个险种,每个保单状态、每个责任以及每个分段等。
在一些实施例中,请参见图3,图3示出了本申请实施例提供的一种基于大数据造单的程序测试方法的流程示意图,如图3所示,所述基于所述产品数据配置表生成所述第一业务产品的第一样本数据包括但不限于步骤S310至S320:
步骤S310,获取预设的Python数据生成程序。
步骤S320,基于所述产品数据配置表,并利用所述Python数据生成程序生成所述第一业务产品的第一样本数据。
可以理解的是,获取基于Python编程语言编写的数据生成程序,并利用该Python数据生成程序依据第一业务产品的产品数据配置表自动生成第一业务产品的第一样本数据。
在一个具体实施例中,所述Python数据生成程序根据产品数据配置表中每个字段的约束条件,生成符合所述约束条件的第一样本数据。
可以理解的是,所述约束条件用于限制产品数据配置表中各个字段的取值类型以及范围,从而使得Python数据生成程序生成符合实际应用规律的第一样本数据,基于符合实际应用规律的第一样本数据对大数据算法程序在业务逻辑计算上进行正确性测试,能够确保测试的合理性和准确性。
可以理解的是,在步骤S120中,所述预设的关系数据库可以是Oracle、SqlServer或Mysql等关系数据库。
在一些实施例中,所述多份样本数据还包括第二业务产品的第二样本数据,请参见图2,图2示出了本申请实施例提供的一种基于大数据造单的程序测试方法的流程示意图,如图2所示,在所述步骤S120之前,所述方法还包括但不限于步骤S210:
步骤S210,从业务数据库中获取第二业务产品的第二样本数据。
所述步骤S120包括但不限于步骤S220:
步骤S220,将所述第一样本数据和所述第二样本数据存储至预设的关系数据库,生成第一数据表单。
可以理解的是,第一业务产品的业务逻辑计算可能覆盖其他业务产品,也就是新业务产品上的业务逻辑计算可能涉及旧业务产品,若算法程序开发阶段的关联性分析不到位就会造成旧业务产品计算错误,因此,通过从现有的生产环境中获取旧业务产品的业务数据,也就是从业务数据库中获取第二业务产品的第二样本数据,将第一样本数据和第二样本数据共同存储至预设的关系数据库,以使生成的第一数据表单中的样本数据覆盖新旧业务产品,从而全面保证算法程序的代码质量。
还需要说明的是,所述基于大数据造单的程序测试方法可以先从业务数据库中获取旧业务产品的第二样本数据,之后将第二样本数据存储至预设的关系数据库,生成第一数据表单,之后再基于新业务产品的产品数据配置表往第一数据表单中添加新业务产品的第一样本数据,因此第一数据表单包括有新旧业务产品的多份样本数据。
在一个具体实施例中,所述步骤S210包括:
通过连接查询从多个业务数据库中获取第二业务产品的第二样本数据。
可以理解的是,业务产品的数据可能通过多个业务数据库分开存储,因此,第二业务产品对应的第二样本数据就需要通过连接查询从多个业务数据库中获取。
在一个具体实施例中,所述步骤S210包括:
从业务数据库中获取多个第二业务产品的第二样本数据。
可以理解的是,根据第一业务产品上业务逻辑计算覆盖的业务范围,从业务数据库中获取多个第二业务产品的第二样本数据。示例性的,第一业务产品的有效保额计算可能影响到目前人寿保险的所有保险产品,则从对应的业务数据库中获取所有保险产品的第二样本数据。
在一些实施例中,所述步骤S210还包括:
根据预设规则,从业务数据库中获取第二业务产品的预设字段的样本数据,得到第二样本数据,其中,所述预设字段与所述产品数据配置表中的字段相匹配。
可以理解的是,每个业务产品对应有巨量的业务数据,若将业务产品所有的业务数据作为第二样本数据以进行程序测试,将大大降低测试效率,因此,从业务数据库中获取第一业务产品中符合预设规则的部分业务数据作为第二样本数据,也就是从业务数据库中取样第一业务产品的部分业务数据作为第二样本数据,能够减少测试时间,提高测试效率。
可以理解的是,对业务产品进行业务逻辑计算往往不需要业务产品中所有的字段数据,又因为产品数据配置表包括进行业务逻辑计算所需要的业务字段,因此,从业务数据库中获取与产品数据配置表中的字段相匹配的业务数据作为第二样本数据。
示例性的,第一业务产品为保险产品,而业务逻辑计算为有效保额计算,其有效保额计算可能影响目前所有保险产品,产品数据配置表包括进行有效保额计算所需要的业务字段:第一业务产品中的每个险种,每个保单状态、每个责任以及每个分段等。具体的,从业务数据库中获取所有保险产品中符合预设规则且与产品数据配置表中的字段相匹配的部分业务数据作为第二样本数据,再将第一样本数据和第二样本数据共同存储至预设的关系数据库,得到第一数据表单。以取样方式从业务数据库中获取第二业务产品的预设字段的部分业务数据作为第二样本数据,在第一数据表单中的样本数据覆盖新旧保险产品的同时,减少了第一数据表单中的样本数量以及无用数据,既能全面保证大数据算法程序的代码质量,减少测试时间,提高测试效率。
可以理解的是,在步骤S130,基于Spark计算引擎创建的测试程序与预设的大数据算法程序用于第一业务产品的同一种业务逻辑计算。
可以理解的是,在步骤S140中,预设的大数据算法程序指的是由开发人员编写、用于对Hive数据仓库中的数据进行相应的业务逻辑计算的算法程序,也是本申请提供的基于大数据造单的程序测试方法的测试对象。传统的数据库多线程跑批处理在面对千万级的业务数据时显得力不从心,而通过部署大数据算法程序在Hive数据仓库中执行业务产品相应的业务逻辑计算,能够充分利用大数据集群分析处理海量数据的能力,提供业务逻辑计算速度。因此,对第一业务产品在业务逻辑上的算法程序进行测试,也就是对预设的大数据算法程序进行测试,而大数据算法程序应用于Hive数据仓库,就需要将用于第一业务产品对应的第一数据表单同步至Hive数据仓库,得到第二数据表单,以通过大数据算法程序对第二数据表单进行业务逻辑计算。
示例性的,在实际应用中,基于业务人员提供的新业务产品的业务逻辑计算需求,开发人员编码完成用于在Hive数据仓库中执行业务逻辑计算的大数据算法程序,在新业务产品上线之前,测试人员基于同样的业务逻辑计算需求,通过Spark计算引擎构建用于在关系数据库中执行业务逻辑计算的测试程序。由此,基于测试程序以及一份数据表单,即可完成对大数据算法程序的程序测试。
在一些实施例中,请参见图4,图4示出了图1中步骤S150的子步骤流程示意图,如图4所示,所述步骤S150包括但不限于步骤S410至S420:
步骤S410,对所述第一计算结果和所述第二计算结果进行核对处理,得到每份所述样本数据对应的第一计算结果和第二计算结果之间的差异值。
步骤S420,根据预设结果模板和所述差异值,生成每份所述样本数据对应的核对结果。
需要说明的是,通过测试程序和大数据算法程序分别对关系数据库中的第一数据表单以及Hive数据仓库中的第二数据表单进行业务逻辑计算,得到数据表单中每份样本数据对应的第一计算结果和第二计算结果,之后对第一计算结果和第二计算结果进行作差处理,得到每份样本数据对应的第一计算结果和第二计算结果之间的差异值,进而根据预设结果模板,获取每份样本数据中相应的字段数据,根据字段数据和差异值,生成每份样本数据对应的核对结果。可以理解的是,根据预设结果模板生成每份样本数据对应的核对结果,能够进一步可视化程序测试结果。
在一些实施例中,所述业务逻辑计算包括多个子逻辑计算,所述第一计算结果和所述第二计算结果均包括多个子计算结果;
所述对所述第一计算结果和所述第二计算结果进行核对处理,得到每份所述样本数据对应的核对结果,包括:
对所述第一计算结果和所述第二计算结果的多个所述子计算结果分别进行核对处理,得到每份所述样本数据对应的多个所述子计算结果之间的差异值。
可以理解的是,大数据算法程序在业务逻辑计算上包括有多个逻辑步骤,按照该逻辑步骤将业务逻辑计算分为多个子逻辑计算,而每个子逻辑计算则对应有一个子计算结果,也就是每份样本数据的第一计算结果和第二计算结果均对应有多个子计算结果。通过确定每份样本数据对应的多个子计算结果之间的差异值,能够直观地确定业务逻辑计算在每个子逻辑计算上存在的差异,也就是测试程序和大数据算法程序在多个逻辑步骤上存在的差异,从而能够根据该差异值快速地确定大数据算法程序在哪个逻辑步骤上出现错误,方便后续程序代码的更新。
示例性的,假设业务逻辑计算对应的大数据算法程序为:
对样本数据的字段A、B、C进行加权求和,得到数值α,对字段D和E进行乘积处理,得到数值β,对数值α和β进行求和处理,得到计算结果θ。
按照大数据算法程序在业务逻辑计算上的逻辑步骤将业务逻辑计算分为3个子逻辑计算:
(1)对样本数据的字段A、B、C进行加权求和,得到数值α;
(2)对字段D和E进行乘积处理,得到数值β;
(3)对数值α和β进行求和处理,得到数值θ。
因此,计算结果对应有3个子计算结果,在第一个子逻辑计算中的子计算结果为数值α,在第二个子逻辑计算中的子计算结果为数值β,在第三个子逻辑计算中的子计算结果为数值θ。
在一些实施例中,所述将所述第一数据表单同步至Hive数据仓库,得到第二数据表单,包括:
通过数据处理工具Sqoop将所述第一数据表单同步至Hive数据仓库,得到第二数据表单。
应了解,Sqoop是一款开源的工具,可以用于Hive数据仓库与传统的关系数据库间进行数据的传递,可以将一个关系型数据库中的数据导进到Hive数据仓库的分布式文件系统中,也可以将Hive数据仓库的分布式文件系统的数据导入关系数据库。
可以理解的是,通过数据处理工具Sqoop能够快递地将第一数据表单中大量的样本数据同步至Hive数据仓库中,提高程序测试的总体效率。
在一些实施例中,在所述根据预设结果模板和所述差异值,生成每份所述样本数据对应的核对结果之后,所述方法还包括:
将每份所述样本数据对应的核对结果存储至所述关系数据库。
可以理解的是,将核对结果存储至关系数据库中,能够作为业务逻辑计算的大数据算法程序的测试结果,用于后续程序更新过程中的数据比对。
下面通过一个具体实施例描述本申请实施例提供的基于大数据造单的程序测试方法:
所述方法应用于保险领域,用于对有效保额的大数据算法程序进行测试,所述方法具体包括:
从业务数据库中获取旧保险产品的样本数据,并将样本数据存储至与预设的关系数据库中,生成第一数据表单,通过Python数据生成程序依据新保险产品的产品数据配置表往第一数据表单中添加新保险产品的样本数据,再将覆盖有新旧保险产品的样本数据的第一数据表单同步至Hive数据仓库中。
通过基于Spark计算引擎构建的测试程序和预设的大数据算法程序分别对关系数据库中的第一数据表单和Hive数据仓库中的第二数据表单进行业务逻辑计算,得到数据表单中每份样本数据对应的第一计算结果和第二计算结果,确定每份样本数据对应的第一计算结果和第二计算结果之间的差异值,若出现差异值不为0的情况,则确定大数据算法程序在业务逻辑计算上存在错误或漏洞。
本申请提出一种基于大数据造单的程序测试方法,所述基于大数据造单的程序测试方法通过获取第一业务产品的产品数据配置表,并基于产品数据配置表生成第一业务产品的第一样本数据,之后将第一样本数据存储至预设的关系数据库,生成第一数据表单,再获取基于Spark计算引擎创建的测试程序,并通过测试程序对第一数据表单中的每份样本数据进行业务逻辑计算,得到每份样本数据对应的第一计算结果,再将第一数据表单同步至Hive数据仓库,得到第二数据表单,并通过Hive数据仓库中预设的大数据算法程序对第二数据表单中的每份样本数据进行业务逻辑计算,得到每份样本数据对应的第二计算结果,对第一计算结果和第二计算结果进行核对处理,最后根据每份样本数据对应的核对结果确定大数据算法程序在业务逻辑计算上的正确性。本申请实施例基于业务产品的产品数据配置表进行造单,构建存储在关系数据库中的第一数据表单和存储在Hive数据仓库中的第二数据表单,之后通过由Spark计算引擎创建的测试程序以及预设的大数据算法程序分别对关系数据库中的第一数据表单以及Hive数据仓库中的第二数据表单进行业务逻辑计算,得到第一计算结果和第二计算结果,最后根据两个计算结果确定大数据算法程序在业务逻辑计算上的正确性,实现对大数据算法程序的测试。
请参见图5,本申请实施例还提供了一种基于大数据造单的程序测试装置100,所述基于大数据造单的程序测试装置100包括:
数据获取模块110,用于获取第一业务产品的产品数据配置表,并基于所述产品数据配置表生成所述第一业务产品的第一样本数据;
表单生成模块120,用于将所述第一样本数据存储至预设的关系数据库,生成第一数据表单,所述第一数据表单包括多份样本数据,所述多份样本数据包括所述第一样本数据;
第一计算模块130,用于获取基于Spark计算引擎创建的测试程序,并通过所述测试程序对所述第一数据表单中的每份样本数据进行业务逻辑计算,得到所述第一数据表单中的每份样本数据对应的第一计算结果;
第二计算模块140,用于将所述第一数据表单同步至Hive数据仓库,得到第二数据表单,并通过预设的大数据算法程序对所述第二数据表单中的每份样本数据进行业务逻辑计算,得到所述第二数据表单中的每份样本数据对应的第二计算结果;
结果核对模块150,用于对所述第一计算结果和所述第二计算结果进行核对处理,得到每份所述样本数据对应的核对结果;
处理模块160,用于根据所述核对结果确定所述大数据算法程序在所述业务逻辑计算上的正确性。
本申请提出一种基于大数据造单的程序测试装置,所述基于大数据造单的程序测试装置通过数据获取模块获取第一业务产品的产品数据配置表,并基于产品数据配置表生成第一业务产品的第一样本数据,之后表单生成模块将第一样本数据存储至预设的关系数据库,生成第一数据表单,第一计算模块获取基于Spark计算引擎创建的测试程序,并通过测试程序对第一数据表单中的每份样本数据进行业务逻辑计算,得到每份样本数据对应的第一计算结果,第二计算模块将第一数据表单同步至Hive数据仓库,得到第二数据表单,并通过Hive数据仓库中预设的大数据算法程序对第二数据表单中的每份样本数据进行业务逻辑计算,得到每份样本数据对应的第二计算结果,结果核对模块对第一计算结果和第二计算结果进行核对处理,最后处理模块根据每份样本数据对应的核对结果确定大数据算法程序在业务逻辑计算上的正确性。本申请实施例基于业务产品的产品数据配置表进行造单,构建存储在关系数据库中的第一数据表单和存储在Hive数据仓库中的第二数据表单,之后通过由Spark计算引擎创建的测试程序以及预设的大数据算法程序分别对关系数据库中的第一数据表单以及Hive数据仓库中的第二数据表单进行业务逻辑计算,得到第一计算结果和第二计算结果,最后根据两个计算结果确定大数据算法程序在业务逻辑计算上的正确性,实现对大数据算法程序的测试。
需要说明的是,上述装置的模块之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
请参见图6,图6示出本申请实施例提供的一种电子设备的硬件结构,电子设备包括:
处理器210,可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集合成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集合成电路等方式实现,用于执行相关计算机程序,以实现本申请实施例所提供的技术方案;
存储器220,可以采用只读存储器(Read Only Memory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(Random Access Memory,RAM)等形式实现。存储器220可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器220中,并由处理器210来调用执行本申请实施例的基于大数据造单的程序测试方法;
输入/输出接口230,用于实现信息输入及输出;
通信接口240,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;和总线250,在设备的每个组件(例如处理器210、存储器220、输入/输出接口230和通信接口240)之间传输信息;
其中处理器210、存储器220、输入/输出接口230和通信接口240通过总线250实现彼此之间在设备内部的通信连接。
本申请实施例还提供了一种存储介质,存储介质为计算机可读存储介质,用于计算机可读存储,存储介质存储有一个或者多个计算机程序,一个或者多个计算机程序可被一个或者多个处理器执行,以实现上述基于大数据造单的程序测试方法。
存储器作为一种计算机可读存储介质,可用于存储软件程序以及计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例描述的实施例是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集合成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请每个实施例中的各功能单元可以集合成在一个处理单元中,也可以是每个单元单独物理存在,也可以两个或两个以上单元集合成在一个单元中。上述集合成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集合成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请每个实施例的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。
以上参照附图说明了本申请实施例的优选实施例,并非因此局限本申请实施例的权利范围。本领域技术人员不脱离本申请实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本申请实施例的权利范围之内。
Claims (10)
1.一种基于大数据造单的程序测试方法,其特征在于,所述方法包括:
获取第一业务产品的产品数据配置表,并基于所述产品数据配置表生成所述第一业务产品的第一样本数据;
将所述第一样本数据存储至预设的关系数据库,生成第一数据表单,所述第一数据表单包括多份样本数据,所述多份样本数据包括所述第一样本数据;
获取基于Spark计算引擎创建的测试程序,并通过所述测试程序对所述第一数据表单中的每份样本数据进行业务逻辑计算,得到所述第一数据表单中的每份样本数据对应的第一计算结果;
将所述第一数据表单同步至Hive数据仓库,得到第二数据表单,并通过预设的大数据算法程序对所述第二数据表单中的每份样本数据进行业务逻辑计算,得到所述第二数据表单中的每份样本数据对应的第二计算结果;
对所述第一计算结果和所述第二计算结果进行核对处理,得到每份所述样本数据对应的核对结果;
根据所述核对结果确定所述大数据算法程序在所述业务逻辑计算上的正确性。
2.根据权利要求1所述的基于大数据造单的程序测试方法,其特征在于,所述多份样本数据还包括第二业务产品的第二样本数据;
在所述将所述第一样本数据存储至预设的关系数据库,生成第一数据表单之前,所述方法还包括:
从业务数据库中获取第二业务产品的第二样本数据;
所述将所述第一样本数据存储至预设的关系数据库,生成第一数据表单,包括:
将所述第一样本数据和所述第二样本数据存储至预设的关系数据库,生成第一数据表单。
3.根据权利要求2所述的基于大数据造单的程序测试方法,其特征在于,所述从业务数据库中获取第二业务产品的第二样本数据,包括:
根据预设规则,从业务数据库中获取第二业务产品的预设字段的样本数据,得到第二样本数据,其中,所述预设字段与所述产品数据配置表中的字段相匹配。
4.根据权利要求1所述的基于大数据造单的程序测试方法,其特征在于,所述基于所述产品数据配置表生成所述第一业务产品的第一样本数据,包括:
获取预设的Python数据生成程序;
基于所述产品数据配置表,并利用所述Python数据生成程序生成所述第一业务产品的第一样本数据。
5.根据权利要求1所述的基于大数据造单的程序测试方法,其特征在于,所述对所述第一计算结果和所述第二计算结果进行核对处理,得到每份所述样本数据对应的核对结果,包括:
对所述第一计算结果和所述第二计算结果进行核对处理,得到每份所述样本数据对应的第一计算结果和第二计算结果之间的差异值;
根据预设结果模板和所述差异值,生成每份所述样本数据对应的核对结果。
6.根据权利要求5所述的基于大数据造单的程序测试方法,其特征在于,所述业务逻辑计算包括多个子逻辑计算,所述第一计算结果和所述第二计算结果均包括多个子计算结果;
所述对所述第一计算结果和所述第二计算结果进行核对处理,得到每份所述样本数据对应的第一计算结果和第二计算结果之间的差异值,包括:
对所述第一计算结果和所述第二计算结果的多个所述子计算结果分别进行核对处理,得到每份所述样本数据对应的多个所述子计算结果之间的差异值。
7.根据权利要求1所述的基于大数据造单的程序测试方法,其特征在于,所述将所述第一数据表单同步至Hive数据仓库,得到第二数据表单,包括:
通过数据处理工具Sqoop将所述第一数据表单同步至Hive数据仓库,得到第二数据表单。
8.一种基于大数据造单的程序测试装置,其特征在于,所述装置包括:
数据获取模块,用于获取第一业务产品的产品数据配置表,并基于所述产品数据配置表生成所述第一业务产品的第一样本数据;
表单生成模块,用于将所述第一样本数据存储至预设的关系数据库,生成第一数据表单,所述第一数据表单包括多份样本数据,所述多份样本数据包括所述第一样本数据;
第一计算模块,用于获取基于Spark计算引擎创建的测试程序,并通过所述测试程序对所述第一数据表单中的每份样本数据进行业务逻辑计算,得到所述第一数据表单中的每份样本数据对应的第一计算结果;
第二计算模块,用于将所述第一数据表单同步至Hive数据仓库,得到第二数据表单,并通过预设的大数据算法程序对所述第二数据表单中的每份样本数据进行业务逻辑计算,得到所述第二数据表单中的每份样本数据对应的第二计算结果;
结果核对模块,用于对所述第一计算结果和所述第二计算结果进行核对处理,得到每份所述样本数据对应的核对结果;
处理模块,用于根据所述核对结果确定所述大数据算法程序在所述业务逻辑计算上的正确性。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任一项所述的基于大数据造单的程序测试方法。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的基于大数据造单的程序测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210860765.7A CN115203046A (zh) | 2022-07-21 | 2022-07-21 | 基于大数据造单的程序测试方法以及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210860765.7A CN115203046A (zh) | 2022-07-21 | 2022-07-21 | 基于大数据造单的程序测试方法以及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115203046A true CN115203046A (zh) | 2022-10-18 |
Family
ID=83583099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210860765.7A Pending CN115203046A (zh) | 2022-07-21 | 2022-07-21 | 基于大数据造单的程序测试方法以及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115203046A (zh) |
-
2022
- 2022-07-21 CN CN202210860765.7A patent/CN115203046A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10282197B2 (en) | Open application lifecycle management framework | |
CN109933514B (zh) | 一种数据测试方法和装置 | |
CN110019116B (zh) | 数据追溯方法、装置、数据处理设备及计算机存储介质 | |
CN111325022B (zh) | 识别层级地址的方法和装置 | |
CN111125064B (zh) | 一种生成数据库模式定义语句的方法和装置 | |
CN109522341A (zh) | 实现基于sql的流式数据处理引擎的方法、装置、设备 | |
CN112579586A (zh) | 数据处理方法、装置、设备及存储介质 | |
US20220391598A1 (en) | Text checking method based on knowledge graph, electronic device, and medium | |
CN113326247A (zh) | 云端数据的迁移方法、装置及电子设备 | |
CN112948486A (zh) | 批量数据同步方法、系统及电子设备 | |
CN112445866A (zh) | 数据处理方法、装置、计算机可读介质及电子设备 | |
CN110781197A (zh) | 一种hive离线同步校验方法、装置及电子设备 | |
CN114253798A (zh) | 指标数据采集方法和装置、电子设备、存储介质 | |
CN110704635B (zh) | 一种知识图谱中三元组数据的转换方法及装置 | |
US9342809B2 (en) | Method and apparatus to populate asset variant relationships in repositories | |
CN115203046A (zh) | 基于大数据造单的程序测试方法以及相关设备 | |
CN115809228A (zh) | 数据比对方法、装置、存储介质及电子设备 | |
KR20200103133A (ko) | 하둡 기반의 빅데이터 시스템에서 etl 절차를 수행하는 방법 및 장치 | |
CN111367791B (zh) | 一种生成测试用例的方法、装置、介质和电子设备 | |
CN115509602A (zh) | 项目管理方法、装置、设备及存储介质 | |
CN115033592A (zh) | 基于数据库的sql语句处理方法、装置、设备及存储介质 | |
CN112579673A (zh) | 一种多源数据处理方法及装置 | |
CN113032256A (zh) | 自动化测试方法、装置、计算机系统和可读存储介质 | |
CN109697141B (zh) | 用于可视化测试的方法及装置 | |
CN110688295A (zh) | 数据测试方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |