CN113032257B - 自动化测试方法、装置、计算机系统和可读存储介质 - Google Patents

自动化测试方法、装置、计算机系统和可读存储介质 Download PDF

Info

Publication number
CN113032257B
CN113032257B CN202110299686.9A CN202110299686A CN113032257B CN 113032257 B CN113032257 B CN 113032257B CN 202110299686 A CN202110299686 A CN 202110299686A CN 113032257 B CN113032257 B CN 113032257B
Authority
CN
China
Prior art keywords
service
module
test
tested
model
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.)
Active
Application number
CN202110299686.9A
Other languages
English (en)
Other versions
CN113032257A (zh
Inventor
吴海彬
叶建锋
余钦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202110299686.9A priority Critical patent/CN113032257B/zh
Publication of CN113032257A publication Critical patent/CN113032257A/zh
Application granted granted Critical
Publication of CN113032257B publication Critical patent/CN113032257B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开提供了一种自动化测试方法、自动化测试装置、计算机系统、计算机可读存储介质和计算机程序产品,可用于计算机技术、物联网技术领域或其他领域。其中,该方法包括:获取与被测业务系统相关的配置文档;将配置文档输入模块识别模型,输出与被测业务系统对应的多个业务模块;利用多个业务模块构建自动化测试脚本;以及利用自动化测试脚本对被测业务系统进行测试,以实现对被测业务系统的自动化测试。

Description

自动化测试方法、装置、计算机系统和可读存储介质
技术领域
本公开涉及计算机技术领域,更具体地,涉及一种自动化测试方法、自动化测试装置、计算机系统、计算机可读存储介质和计算机程序产品。
背景技术
随着计算机业务行业的迅猛发展,用于促进鉴定软件、业务、系统等的正确性、完整性、安全性和质量的测试技术应用而生。自动化测试一般指测试技术的自动化,通常需要编写自动化测试脚本,将以人为驱动的测试行为转化为机器的自动化执行过程。
在实现本公开构思的过程中,发明人发现相关技术中至少存在如下问题,自动化测试门槛高,自动化测试过程的实现不够智能化。
发明内容
有鉴于此,本公开提供了一种自动化测试方法、自动化测试装置、计算机系统、计算机可读存储介质和计算机程序产品。
本公开的一个方面提供了一种自动化测试方法,包括:获取与被测业务系统相关的配置文档;将所述配置文档输入模块识别模型,输出与所述被测业务系统对应的多个业务模块;利用所述多个业务模块构建自动化测试脚本;以及利用所述自动化测试脚本对所述被测业务系统进行测试,以实现对所述被测业务系统的自动化测试。
根据本公开的实施例,所述模块识别模型是通过如下方式进行训练的:获取基于深度学习算法构建的训练模型,其中,所述训练模型对应一损失函数;获取各类业务系统的文档数据作为训练集,其中,所述训练集中还包括根据所述文档数据确定的业务模块的真实值;将所述训练集中的文档数据输入所述训练模型,输出针对所述文档数据识别得到的业务模块的预测值;将所述真实值和所述预测值输入所述损失函数,输出损失值;根据所述损失值调整所述训练模型的模型参数,直至所述损失函数收敛;以及在所述损失函数收敛的情况下,将当前得到的训练模型作为所述模块识别模型。
根据本公开的实施例,上述自动化测试方法还包括:确定预设更新周期;在不同的所述预设更新周期内,利用不同的文档数据对所述模块识别模型进行训练,得到新的模块识别模型;以及在满足所述预设更新周期的情况下,将初始的模块识别模型更新为所述新的模块识别模型。
根据本公开的实施例,利用所述多个业务模块构建自动化测试脚本包括:针对多个所述业务模块,将每个所述业务模块封装为业务测试组件,得到多个所述业务测试组件;获取与所述被测业务系统对应的业务处理流程;以及利用多个所述业务测试组件构建与所述业务处理流程相匹配的自动化测试脚本。
根据本公开的实施例,所述自动化测试脚本包括多个,利用所述自动化测试脚本对所述被测业务系统进行测试,以实现对所述被测业务系统的自动化测试包括:获取预配置的数据源,其中,所述数据源中包括针对每个所述自动化测试脚本配置的测试数据,每个所述测试数据包括输入集合和对应的输出结果;利用所述输入集合对每个所述自动化测试脚本进行测试,得到每个所述自动化测试脚本的测试结果;以及将每个所述自动化测试脚本的测试结果和预配置的所述输出结果进行比较,以实现对所述被测业务系统的测试。
根据本公开的实施例,上述自动化测试方法还包括:在所述业务模块需要变更需求的情况下,获取用于实现需求变更的输入信息,得到变更需求后的目标业务模块;以及将变更需求前的所述业务模块替换为所述目标业务模块。
本公开的另一个方面提供了一种自动化测试装置,包括:第一获取模块,用于获取与被测业务系统相关的配置文档;识别模块,用于将所述配置文档输入模块识别模型,输出与所述被测业务系统对应的多个业务模块;构建模块,用于利用所述多个业务模块构建自动化测试脚本;以及测试模块,用于利用所述自动化测试脚本对所述被测业务系统进行测试,以实现对所述被测业务系统的自动化测试。
本公开的另一方面提供了一种计算机系统,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的自动化测试方法。
本公开的另一方面提供了一种计算机可读存储介质,其上存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的自动化测试方法。
本公开的另一方面提供了一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,所述指令在被执行时用于实现如上所述的自动化测试方法。
根据本公开的实施例,通过采用了获取与被测业务系统相关的配置文档;将配置文档输入模块识别模型,输出与被测业务系统对应的多个业务模块;利用多个业务模块构建自动化测试脚本;以及利用自动化测试脚本对被测业务系统进行测试,以实现对被测业务系统的自动化测试的技术手段,由于自动化测试过程是以业务模块为单位进行设计,无需深入考虑与业务相关的程序代码,所以至少部分的解决了自动化测试门槛高的技术问题,同时,通过引入模块识别模型确定业务模块,可以减少业务模块确定时的人工介入,进而达到了实现一种更为智能化的自动化测试方法的技术效果。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的可以应用自动化测试方法的示例性系统架构;
图2示意性示出了根据本公开实施例的自动化测试方法的流程图;
图3示意性示出了根据本公开实施例的用于实现自动化测试方法的系统结构图;
图4示意性示出了根据本公开实施例的公共业务处理模块提取装置的内部结构图;
图5示意性示出了根据本公开实施例的自动化测试用例配置装置的内部结构图;
图6示意性示出了根据本公开的实施例的自动化测试装置的框图;以及
图7示意性示出了根据本公开实施例的适于实现自动化测试方法的计算机系统的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
随着软件项目敏捷迭代、持续交付的广泛实践,自动化测试的需求越来越迫切,基于此,当前越来越多项目采取编写自动化脚本的方式提高功能测试效率。
发明人在实现本公开构思的过程中发现,目前业界虽提供了一些辅助实现自动化测试的框架或套件,但主要都是基于完善测试各阶段工具的角度提供通用技术方案,测试人员仍需结合被测系统业务功能编写较多的代码,导致现有的自动化测试门槛较高,测试人员需掌握较高的编程技术,熟悉被测系统的底层实现并编写大量执行自动化验证的代码,对于编码技能较弱的测试人员带来很大的障碍。
发明人在实现本公开构思的过程中还发现,自动化测试过程的实现不够智能化。
本公开的实施例提供了一种自动化测试方法、自动化测试装置、计算机系统、计算机可读存储介质和计算机程序产品。该方法包括获取与被测业务系统相关的配置文档;将配置文档输入模块识别模型,输出与被测业务系统对应的多个业务模块;利用多个业务模块构建自动化测试脚本;以及利用自动化测试脚本对被测业务系统进行测试,以实现对被测业务系统的自动化测试。
图1示意性示出了根据本公开实施例的可以应用自动化测试方法的示例性系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线和/或无线通信链路等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种与被测业务系统相关的应用,包括通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端和/或社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的自动化测试方法一般可以由服务器105执行。相应地,本公开实施例所提供的自动化测试装置一般可以设置于服务器105中。本公开实施例所提供的自动化测试方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的自动化测试装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。或者,本公开实施例所提供的自动化测试方法也可以由终端设备101、102、或103执行,或者也可以由不同于终端设备101、102、或103的其他终端设备执行。相应地,本公开实施例所提供的自动化测试装置也可以设置于终端设备101、102、或103中,或设置于不同于终端设备101、102、或103的其他终端设备中。
例如,配置文档可以原本存储在终端设备101、102、或103中的任意一个(例如,终端设备101,但不限于此)之中,或者存储在外部存储设备上并可以导入到终端设备101中。然后,终端设备101可以在本地执行本公开实施例所提供的自动化测试方法,或者将配置文档发送到其他终端设备、服务器、或服务器集群,并由接收该配置文档的其他终端设备、服务器、或服务器集群来执行本公开实施例所提供的自动化测试方法。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
需要说明的是,本公开自动化测试方法、自动化测试装置、计算机系统、计算机可读存储介质和计算机程序产品可用于计算机技术和物联网技术领域,也可用于除计算机技术和物联网技术领域之外的任意领域,本公开自动化测试方法、自动化测试装置、计算机系统、计算机可读存储介质和计算机程序产品的应用领域不做限定。
图2示意性示出了根据本公开实施例的自动化测试方法的流程图。
如图2所示,该方法包括操作S201~S203。
在操作S201,获取与被测业务系统相关的配置文档。
根据本公开的实施例,上述配置文档例如可以包括与上述被测业务系统相关的业务功能需求文件和软件设计说明书等。
在操作S202,将配置文档输入模块识别模型,输出与被测业务系统对应的多个业务模块。
在操作S203,利用多个业务模块构建自动化测试脚本。
在操作S204,利用自动化测试脚本对被测业务系统进行测试,以实现对被测业务系统的自动化测试。
下面参考图3~图5,结合具体实施例对图2所示的方法做进一步说明。
图3示意性示出了根据本公开实施例的用于实现自动化测试方法的系统结构图。
如图3所示,该系统300的结构例如可以包括公共业务处理模块提取装置310、业务处理模块测试组件实现装置320、自动化测试用例配置装置330、自动化测试用例调度运行装置340和业务测试组件维护装置350。
根据本公开的实施例,参见图3所示,基于图3所示系统实现的上述自动化测试方法的主要流程例如可以表现为:针对上述操作S201~S202,例如可以由上述公共业务处理模块提取装置310实现,公共业务处理模块提取装置310通过对输入的业务功能需求和软件设计说明书(即上述配置文件)进行解析,例如即可抽取出被测业务系统的各个业务处理模块(即上述业务模块);针对上述操作S203,例如可以由上述业务处理模块测试组件实现装置320和自动化测试用例配置装置330实现,其中,业务处理模块测试组件实现装置320例如针对公共业务处理模块,结合业界开源的自动化测试技术,可以将这些业务处理模块封装实现为业务测试组件,这些业务测试组件可以为后续提供引用,在自动化测试用例配置装置330中,例如根据测试用例(如上述自动化测试脚本)通过组装配置业务测试组件的方式,可以实现一条完整的自动化测试流程;针对上述操作S204,例如可以由上述自动化测试用例调度运行装置340实现,在自动化测试用例调度运行装置340中,例如可以对配置好的自动化测试脚本进行调起执行。
通过本公开的上述实施例,提出了一种组件化的自动化测试方法,通过对被测业务系统技术实现及基本业务流程的抽象识别,可以抽取出公共业务处理模块,并将这些业务模块封装成业务测试组件,测试人员在编写自动化测试脚本时直接配置这些业务测试组件,即可完成自动化测试脚本的编写,大大降低了脚本编写难度,可实现无需手工编写脚本代码。
根据本公开的实施例,用于实现上述操作S202的公共业务处理模块提取装置310例如可以采取人工智能技术构建,通过结合该人工智能技术例如可以最终提取出上述被测业务系统的各个业务处理模块。
图4示意性示出了根据本公开实施例的公共业务处理模块提取装置的内部结构图。
如图4所示,公共业务处理模块提取装置310的内部结构例如可以包括文档输入单元311、人工智能自然语言处理单元312、公共业务处理模块输出单元313、机器学习模型训练单元314和机器学习模型部署单元315。
根据本公开的实施例,参见图4所示,上述文档输入单元311例如可以接收被测业务系统相关的配置文档,为后续人工智能自然语言处理单元312提供数据源。
根据本公开的实施例,参见图4所示,上述人工智能自然语言处理单元312例如可以为一种基于机器学习方法的自然语言处理单元,其内置有上述模块识别模型,可以对输入的被测业务系统的文档(如上述配置文档)进行智能地解析处理,并识别出该被测业务系统所具有的各个业务处理模块。该人工智能自然语言处理单元312中的模块识别模型例如可以使用深度学习算法(如卷积神经网络模型、循环神经网络RNN等)模型构建得到。
根据本公开的实施例,参见图4所示,上述公共业务处理模块输出单元313例如可以输出由人工智能自然语言处理单元312识别出的业务处理模块。例如抽取出的业务处理模块可以包括:业务受理模块、业务录入模块、业务补录模块、业务审核模块、业务退回模块、业务上主机处理模块、业务作废模块等多个业务模块。
根据本公开的实施例,为使得上述模块识别模型可以准确的实现业务模块的识别,例如需要首先对该模块识别模型进行训练,该训练过程例如可以包括:获取基于深度学习算法构建的训练模型,其中,训练模型对应一损失函数;获取各类业务系统的文档数据作为训练集,其中,训练集中还包括根据文档数据确定的业务模块的真实值;将训练集中的文档数据输入训练模型,输出针对文档数据识别得到的业务模块的预测值;将真实值和预测值输入损失函数,输出损失值;根据损失值调整训练模型的模型参数,直至损失函数收敛;以及在损失函数收敛的情况下,将当前得到的训练模型作为模块识别模型。
根据本公开的实施例,参见图4所示,上述训练过程例如可以由机器学习模型训练单元314完成,为完成上述训练过程,该机器学习模型训练单元314例如可以采取深度学习算法,通过对大量各类被测业务系统的文档数据进行自主学习训练,生成满足被测业务系统模块识别的机器学习模型(即上述模块识别模型),为人工智能自然语言处理单元312提供算法支持。
根据本公开的实施例,在训练得到上述模块识别模型之后,例如可以由机器学习模型部署单元315将该模块识别模型部署至人工智能自然语言处理单元312中。该机器学习模型部署单元315例如可以输出最新训练得出的模块识别模型,并可定期将该模型更新部署至人工智能自然语言处理单元312中。
根据本公开的实施例,由于被测业务系统及技术会不断变化、业务也会不断发展,从而模块识别模型的准确性会逐渐降低,最终可能会对模块抽取的效果造成影响,为减小这种影响,例如可以利用被测业务系统在生产环境的文档数据进行不断学习,持续输出并部署更强大、更适配的模块识别模型。该过程例如可以表现为:确定预设更新周期;在不同的所述预设更新周期内,利用不同的文档数据对模块识别模型进行训练,得到新的模块识别模型;以及在满足预设更新周期的情况下,将初始的模块识别模型更新为该新的模块识别模型。
通过本公开的上述实施例,由于采用了人工智能技术识别业务模块,可以持续对被测系统的文档数据进行文字特征的学习,掌握更多领域、更高层次、更加抽象的语言文字特征,从而可以提高系统对上下文语义理解的准确程度,不断提高被测业务系统在模块识别时的精度。同时,由于预设了更新周期,可按月、按季、或按年的频度将最新训练得到的模块识别模型自动更新至人工智能自然语言处理单元,满足被测系统不断迭代、业务功能不断变化的需求,并可减少采用规则库和文字匹配算法进行业务模块识别时的人工介入维护规则库,或者人工标注、定义特征的工作量。
根据本公开的实施例,参见图3所示,在基于人工智能技术识别得到被测业务系统的多个业务模块之后,为构建自动化测试脚本,上述操作S203例如可以包括:在上述业务处理模块测试组件实现装置320中,针对多个业务模块,将每个业务模块封装为业务测试组件,得到多个业务测试组件;在上述自动化测试用例配置装置330中,获取与被测业务系统对应的业务处理流程,以及利用多个业务测试组件构建与业务处理流程相匹配的自动化测试脚本。
根据本公开的实施例,上述自动化测试用例配置装置330例如可以提供一个自动化测试用例(如上述自动化测试脚本)配置的平台,通过对业务测试组件的引用、组装,实现完整测试流程的配置,同时可对业务测试数据、业务验证点进行设置。
根据本公开的实施例,上述操作S204例如可以包括:获取预配置的数据源,其中,数据源中包括针对每个自动化测试脚本配置的测试数据,每个测试数据包括输入集合和对应的输出结果;利用输入集合对每个自动化测试脚本进行测试,得到每个自动化测试脚本的测试结果;以及将每个自动化测试脚本的测试结果和预配置的输出结果进行比较,以实现对被测业务系统的测试。
根据本公开的实施例,为使得用于实现上述操作S204的自动化测试用例调度运行装置340可以正常的执行调用运行的工作,例如可以对上述自动化测试用例配置装置330进行一系列功能配置。
图5示意性示出了根据本公开实施例的自动化测试用例配置装置的内部结构图。
如图5所示,自动化测试用例配置装置330的内部结构例如可以包括业务测试组件查询单元331、业务测试用例配置单元332、业务测试数据管理单元333、业务入参配置单元334和测试验证点配置单元335。
根据本公开的实施例,参见图5所示,上述业务测试组件查询单元331例如可以将实现了自动化测试的公共业务处理模块放入业务测试组件库中,本查询单元例如可以提供相关业务测试组件的查询检索功能,以提供给测试人员进行配置引用,完成对上述业务测试组件的配置。
根据本公开的实施例,参见图5所示,上述业务测试用例配置单元332例如可以根据业务处理流程和测试用例设计,将业务测试组件配置为可一条可以自动执行的完整流程,完成对上述自动化测试用例的配置。例如,对于X业务正向上主机处理的测试用例可配置为:业务受理模块-->业务录入模块-->业务补录模块-->业务审核模块-->业务上主机处理模块。对于X业务审核退回处理的测试用例可配置为:业务受理模块-->业务录入模块-->业务补录模块-->业务审核模块-->业务退回模块。
根据本公开的实施例,由于对于相同业务处理流程,不同测试数据的用例,需要分别新建多条自动化测试用例,在业务入参设置单元中分别设置不同的测试数据,存在较多重复配置的工作量,为减少重复配置自动化测试用例的投入,实现配置一次数据源,数据源下所有测试数据组都可执行的效果,本实施例中例如设置了业务测试数据管理单元333。参见图5所示,其中的业务测试数据管理单元333例如可以针对业务测试数据,按业务数据源的方式进行维护,一个数据源下例如可以有多组不同的测试数据组合,具体而言,一个数据源例如可以表现为如下表1的形式。
表1
根据本公开的实施例,参见图5所示,上述业务入参配置单元334例如可对自动化测试用例中各业务测试组件的测试数据可按数据源的方式进行配置。在上述业务测试数据管理单元333新增好数据源后,配置业务测试组件的业务入参(即上述输入集合)时,可引用相应的数据源,即可完成该数据源下多组测试数据自动化测试用例的配置。
根据本公开的实施例,参见图5所示,上述测试验证点配置单元335例如可以在自动化测试用例运行后,对运行的结果进行核验,确保系统按照预期的结果进行处理,否则运行失败提示系统可能存在bug。该单元例如即可实现对自动化测试用例验证点(例如可以表现为上述输出结果)的配置。如通过检查返回报文中returnCode是否为0,或者查询数据库表的方式校验某些业务字段的值是否为预期值,从而实现对自动化测试用例的测试。
通过本公开的上述实施例,测试人员可以针对业务测试组件进行灵活配置,快速实现不同业务处理流程、不同功能分支自动化测试用例的生成,同时,可实现配置一次数据源,数据源下所有测试数据组都可执行的效果,减少重复配置自动化测试用例的投入。
根据本公开的实施例,上述操作S204例如还可以包括:获取预设测试时间;以及根据预设测试时间自动化开启根据自动化测试脚本对被测业务系统进行测试的过程。具体而言,用于实现该操作S204的自动化测试用例调度运行装置340例如可以提供自动化测试用例调起和运行的环境,例如包括可以根据需求按时间周期(即上述预设测试时间)配置自动调起,如按天、按周、按月等,或一次性调起运行。
通过本公开的上述实施例,测试人员可以针对业务测试组件进行灵活配置,快速实现不同业务处理流程、不同功能分支自动化测试用例的生成,可有效解决当前软件自动化测试过程中存在的技术门槛高、业务变更引发脚本维护工作量大的问题,具有较好的应用前景。
根据本公开的实施例,上述自动化测试方法例如还可以包括:在业务模块需要变更需求的情况下,获取用于实现需求变更的输入信息,得到变更需求后的目标业务模块;以及将变更需求前的业务模块替换为目标业务模块。
根据本公开的实施例,参见图3所示,针对上述与需求变更相关的操作,例如可以由上述业务测试组件维护装置350实现,具体而言,如果业务需求有变更,可在业务测试组件维护装置350中对具体变更的业务测试组件进行维护,例如“业务审核模块”有变更,审核时需增加“附言”字段的输入,则可通过本装置对“业务审核模块”的测试组件做一次维护,实现业务测试组件一次维护,其它所有涉及引用该业务测试组件的自动化测试脚本可实现同步更新的效果,无需分别多次维护。
通过本公开的上述实施例,在业务涉及变更的情况下,可以仅针对公共测试组件(例如可以为涉及需求变更的业务测试组件)进行一次修改,可大大降低业务变更导致的自动化测试脚本的较高的维护成本。
图6示意性示出了根据本公开的实施例的自动化测试装置的框图。
如图6所示,自动化测试装置600包括第一获取模块610、识别模块620、构建模块630和测试模块640。
第一获取模块610,用于获取与被测业务系统相关的配置文档.
识别模块620,用于将配置文档输入模块识别模型,输出与被测业务系统对应的多个业务模块。
构建模块630,用于利用多个业务模块构建自动化测试脚本。
测试模块640,用于利用自动化测试脚本对被测业务系统进行测试,以实现对被测业务系统的自动化测试。
根据本公开的上述实施例,通过采用了获取与被测业务系统相关的配置文档;将配置文档输入模块识别模型,输出与被测业务系统对应的多个业务模块;利用多个业务模块构建自动化测试脚本;以及利用自动化测试脚本对被测业务系统进行测试,以实现对被测业务系统的自动化测试的技术手段,由于自动化测试过程是以业务模块为单位进行设计,无需深入考虑与业务相关的程序代码,所以至少部分的解决了自动化测试门槛高的技术问题,同时,通过引入模块识别模型确定业务模块,可以减少业务模块确定时的人工介入,进而达到了实现一种更为智能化的自动化测试方法的技术效果。
根据本公开的实施例,上述模块识别模型是通过如下方式进行训练的:获取基于深度学习算法构建的训练模型,其中,训练模型对应一损失函数;获取各类业务系统的文档数据作为训练集,其中,训练集中还包括根据文档数据确定的业务模块的真实值;将训练集中的文档数据输入训练模型,输出针对文档数据识别得到的业务模块的预测值;将真实值和预测值输入损失函数,输出损失值;根据损失值调整训练模型的模型参数,直至损失函数收敛;以及在损失函数收敛的情况下,将当前得到的训练模型作为模块识别模型。
根据本公开的实施例,上述自动化测试装置还包括确定模块、训练模块和更新模块。
确定模块,用于确定预设更新周期。
训练模块,用于在不同的预设更新周期内,利用不同的文档数据对模块识别模型进行训练,得到新的模块识别模型。
更新模块,用于在满足预设更新周期的情况下,将初始的模块识别模型更新为新的模块识别模型。
根据本公开的实施例,上述构建模块包括封装单元、第一获取单元和构建单元。
封装单元,用于针对多个业务模块,将每个业务模块封装为业务测试组件,得到多个业务测试组件。
第一获取单元,用于获取与被测业务系统对应的业务处理流程。
构建单元,用于利用多个业务测试组件构建与业务处理流程相匹配的自动化测试脚本。
根据本公开的实施例,上述自动化测试脚本包括多个,上述测试模块包括第二获取单元、测试单元和比较单元。
第二获取单元,用于获取预配置的数据源,其中,数据源中包括针对每个自动化测试脚本配置的测试数据,每个测试数据包括输入集合和对应的输出结果。
测试单元,用于利用输入集合对每个自动化测试脚本进行测试,得到每个自动化测试脚本的测试结果。
比较单元,用于将每个自动化测试脚本的测试结果和预配置的输出结果进行比较,以实现对被测业务系统的测试。
根据本公开的实施例,上述自动化测试装置还包括第二获取模块和替换模块。
第二获取模块,用于在业务模块需要变更需求的情况下,获取用于实现需求变更的输入信息,得到变更需求后的目标业务模块。
替换模块,用于将变更需求前的业务模块替换为目标业务模块。
根据本公开的实施例的模块、单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,第一获取模块610、识别模块620、构建模块630和测试模块640中的任意多个可以合并在一个模块/单元中实现,或者其中的任意一个模块/单元可以被拆分成多个模块/单元。或者,这些模块/单元中的一个或多个模块/单元的至少部分功能可以与其他模块/单元的至少部分功能相结合,并在一个模块/单元中实现。根据本公开的实施例,第一获取模块610、识别模块620、构建模块630和测试模块640中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一获取模块610、识别模块620、构建模块630和测试模块640中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
需要说明的是,本公开的实施例中自动化测试装置部分与本公开的实施例中自动化测试方法部分是相对应的,自动化测试装置部分的描述具体参考自动化测试方法部分,在此不再赘述。
图7示意性示出了根据本公开实施例的适于实现自动化测试方法的计算机系统的框图。图7示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,根据本公开实施例的计算机系统700包括处理器701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。处理器701例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器701还可以包括用于缓存用途的板载存储器。处理器701可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 703中,存储有系统700操作所需的各种程序和数据。处理器701、ROM 702以及RAM 703通过总线704彼此相连。处理器701通过执行ROM 702和/或RAM 703中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 702和RAM 703以外的一个或多个存储器中。处理器701也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,系统700还可以包括输入/输出(I/O)接口705,输入/输出(I/O)接口705也连接至总线704。系统700还可以包括连接至I/O接口705的以下部件中的一项或多项:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被处理器701执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质。例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 702和/或RAM 703和/或ROM 702和RAM 703以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行本公开实施例所提供的方法的程序代码,当计算机程序产品在电子设备上运行时,该程序代码用于使电子设备实现本公开实施例所提供的自动化测试方法。
在该计算机程序被处理器701执行时,执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分709被下载和安装,和/或从可拆卸介质711被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (9)

1.一种自动化测试方法,包括:
获取与被测业务系统相关的配置文档;
将所述配置文档输入模块识别模型,输出与所述被测业务系统对应的多个业务模块;
利用所述多个业务模块构建自动化测试脚本;以及
利用所述自动化测试脚本对所述被测业务系统进行测试,以实现对所述被测业务系统的自动化测试;
其中,所述模块识别模型是通过如下方式进行训练的:
获取基于深度学习算法构建的训练模型,其中,所述训练模型对应一损失函数;
获取各类业务系统的文档数据作为训练集,其中,所述训练集中还包括根据所述文档数据确定的业务模块的真实值;
将所述训练集中的文档数据输入所述训练模型,输出针对所述文档数据识别得到的业务模块的预测值;
将所述真实值和所述预测值输入所述损失函数,输出损失值;
根据所述损失值调整所述训练模型的模型参数,直至所述损失函数收敛;以及
在所述损失函数收敛的情况下,将当前得到的训练模型作为所述模块识别模型。
2.根据权利要求1所述的方法,还包括:
确定预设更新周期;
在不同的所述预设更新周期内,利用不同的文档数据对所述模块识别模型进行训练,得到新的模块识别模型;以及
在满足所述预设更新周期的情况下,将初始的模块识别模型更新为所述新的模块识别模型。
3.根据权利要求1所述的方法,其中,利用所述多个业务模块构建自动化测试脚本包括:
针对多个所述业务模块,将每个所述业务模块封装为业务测试组件,得到多个所述业务测试组件;
获取与所述被测业务系统对应的业务处理流程;以及
利用多个所述业务测试组件构建与所述业务处理流程相匹配的自动化测试脚本。
4.根据权利要求1所述的方法,其中,所述自动化测试脚本包括多个,利用所述自动化测试脚本对所述被测业务系统进行测试,以实现对所述被测业务系统的自动化测试包括:
获取预配置的数据源,其中,所述数据源中包括针对每个所述自动化测试脚本配置的测试数据,每个所述测试数据包括输入集合和对应的输出结果;
利用所述输入集合对每个所述自动化测试脚本进行测试,得到每个所述自动化测试脚本的测试结果;以及
将每个所述自动化测试脚本的测试结果和预配置的所述输出结果进行比较,以实现对所述被测业务系统的测试。
5.根据权利要求1所述的方法,还包括:
在所述业务模块需要变更需求的情况下,获取用于实现需求变更的输入信息,得到变更需求后的目标业务模块;以及
将变更需求前的所述业务模块替换为所述目标业务模块。
6.一种自动化测试装置,包括:
第一获取模块,用于获取与被测业务系统相关的配置文档;
识别模块,用于将所述配置文档输入模块识别模型,输出与所述被测业务系统对应的多个业务模块;
构建模块,用于利用所述多个业务模块构建自动化测试脚本;以及
测试模块,用于利用所述自动化测试脚本对所述被测业务系统进行测试,以实现对所述被测业务系统的自动化测试;
其中,所述模块识别模型是通过如下方式进行训练的:
获取基于深度学习算法构建的训练模型,其中,所述训练模型对应一损失函数;
获取各类业务系统的文档数据作为训练集,其中,所述训练集中还包括根据所述文档数据确定的业务模块的真实值;
将所述训练集中的文档数据输入所述训练模型,输出针对所述文档数据识别得到的业务模块的预测值;
将所述真实值和所述预测值输入所述损失函数,输出损失值;
根据所述损失值调整所述训练模型的模型参数,直至所述损失函数收敛;以及
在所述损失函数收敛的情况下,将当前得到的训练模型作为所述模块识别模型。
7.一种计算机系统,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至5中任一项所述的方法。
8.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现权利要求1至5中任一项所述的方法。
9.一种计算机程序产品,包括计算机可执行指令,所述指令在被执行时用于实现权利要求1至5中任一项所述的方法。
CN202110299686.9A 2021-03-19 2021-03-19 自动化测试方法、装置、计算机系统和可读存储介质 Active CN113032257B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110299686.9A CN113032257B (zh) 2021-03-19 2021-03-19 自动化测试方法、装置、计算机系统和可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110299686.9A CN113032257B (zh) 2021-03-19 2021-03-19 自动化测试方法、装置、计算机系统和可读存储介质

Publications (2)

Publication Number Publication Date
CN113032257A CN113032257A (zh) 2021-06-25
CN113032257B true CN113032257B (zh) 2024-03-01

Family

ID=76471984

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110299686.9A Active CN113032257B (zh) 2021-03-19 2021-03-19 自动化测试方法、装置、计算机系统和可读存储介质

Country Status (1)

Country Link
CN (1) CN113032257B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113947434A (zh) * 2021-10-21 2022-01-18 北京沃东天骏信息技术有限公司 一种多业务组件组合场景的业务处理方法和装置
CN114900569B (zh) * 2022-05-17 2024-05-03 中国银行股份有限公司 一种测试脚本的获取方法及装置
WO2023236114A1 (zh) * 2022-06-08 2023-12-14 西门子股份公司 工业测试脚本生成方法、装置和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109977011A (zh) * 2019-03-18 2019-07-05 平安普惠企业管理有限公司 测试脚本的自动生成方法、装置、存储介质及电子设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109977011A (zh) * 2019-03-18 2019-07-05 平安普惠企业管理有限公司 测试脚本的自动生成方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN113032257A (zh) 2021-06-25

Similar Documents

Publication Publication Date Title
CN113032257B (zh) 自动化测试方法、装置、计算机系统和可读存储介质
US10642721B2 (en) Generation of automated testing scripts by converting manual test cases
US11068382B2 (en) Software testing and verification
US10983789B2 (en) Systems and methods for automating and monitoring software development operations
US20190012575A1 (en) Method, apparatus and system for updating deep learning model
CN109871311B (zh) 一种推荐测试用例的方法和装置
CN111382070B (zh) 兼容性测试方法、装置、存储介质和计算机设备
CN110019116B (zh) 数据追溯方法、装置、数据处理设备及计算机存储介质
US11263113B2 (en) Cloud application to automatically detect and solve issues in a set of code base changes using reinforcement learning and rule-based learning
CN115827895A (zh) 一种漏洞知识图谱处理方法、装置、设备及介质
CN112988583A (zh) 数据库语法兼容性测试的方法和装置
CN111325031A (zh) 简历解析方法及装置
CN113448869B (zh) 测试用例生成的方法、装置、电子设备及计算机可读介质
CN110764760A (zh) 用于绘制程序流程图的方法、装置、计算机系统和介质
CN116720489B (zh) 页面填充方法及装置、电子设备和计算机可读存储介质
CN113515625A (zh) 测试结果分类模型训练方法、分类方法及装置
CN113032256B (zh) 自动化测试方法、装置、计算机系统和可读存储介质
US20230297496A1 (en) System and method for serverless application testing
CN114489704A (zh) 基于策略的版本编译部署方法及装置
US11099977B1 (en) Method, device and computer-readable storage medium for testing bios using menu map obtained by performing image identification on bios interface
CN114840429A (zh) 识别版本冲突的方法、装置、设备、介质和程序产品
US9996799B2 (en) Migrating a legacy system by inferring context-sensitive business rules from legacy source code
CN113704314A (zh) 数据的分析方法及装置、电子设备和存储介质
CN113762702A (zh) 工作流部署方法、装置、计算机系统和可读存储介质
CN110175116B (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
GR01 Patent grant
GR01 Patent grant