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

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

Info

Publication number
CN113032256B
CN113032256B CN202110299509.0A CN202110299509A CN113032256B CN 113032256 B CN113032256 B CN 113032256B CN 202110299509 A CN202110299509 A CN 202110299509A CN 113032256 B CN113032256 B CN 113032256B
Authority
CN
China
Prior art keywords
module
service
test
business
tested
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
CN202110299509.0A
Other languages
English (en)
Other versions
CN113032256A (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 CN202110299509.0A priority Critical patent/CN113032256B/zh
Publication of CN113032256A publication Critical patent/CN113032256A/zh
Application granted granted Critical
Publication of CN113032256B publication Critical patent/CN113032256B/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/3684Test management for test design, e.g. generating new test cases
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (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~S206。
在操作S201,获取与被测业务系统相关的配置文档。
根据本公开的实施例,上述配置文档例如可以包括与上述被测业务系统相关的业务功能需求文件和软件设计说明书等。
在操作S202,对配置文档进行解析,得到与被测业务系统对应的多个业务模块。
在操作S203,针对多个业务模块,将每个业务模块封装为业务测试组件,得到多个业务测试组件。
在操作S204,获取与被测业务系统对应的业务处理流程。
在操作S205,利用多个业务测试组件构建与业务处理流程相匹配的自动化测试脚本。
在操作S206,根据自动化测试脚本对被测业务系统进行测试,以实现对被测业务系统的自动化测试。
为对图2所示的方法做进一步详细说明,图3示意性示出了根据本公开实施例的用于实现自动化测试方法的系统结构图。
如图3所示,该系统300的结构例如可以包括公共业务处理模块提取装置310、业务处理模块测试组件实现装置320、自动化测试用例配置装置330、自动化测试用例调度运行装置340和业务测试组件维护装置350。
根据本公开的实施例,参见图3所示,基于图3所示系统实现的上述自动化测试方法的主要流程例如可以表现为:针对上述操作S201~S202,例如可以由上述公共业务处理模块提取装置310实现,公共业务处理模块提取装置310通过对输入的业务功能需求和软件设计说明书(即上述配置文件)进行解析,例如即可抽取出被测业务系统的各个业务处理模块(即上述业务模块);针对上述操作S203,例如可以由上述业务处理模块测试组件实现装置320实现,业务处理模块测试组件实现装置320例如针对公共业务处理模块,结合业界开源的自动化测试技术,可以将这些业务处理模块封装实现为业务测试组件,这些业务测试组件可以为后续提供引用;针对上述操作S204~S205,例如可以由上述自动化测试用例配置装置330实现,在自动化测试用例配置装置330中,例如根据测试用例(如上述自动化测试脚本)通过组装配置业务测试组件的方式,可以实现一条完整的自动化测试流程;针对上述操作S206,例如可以由上述自动化测试用例调度运行装置340实现,在自动化测试用例调度运行装置340中,例如可以对配置好的自动化测试脚本进行调起执行。
通过本公开的上述实施例,提出了一种组件化的自动化测试方法,通过对被测业务系统技术实现及基本业务流程的抽象识别,可以抽取出公共业务处理模块,并将这些业务模块封装成业务测试组件,测试人员在编写自动化测试脚本时直接配置这些业务测试组件,即可完成自动化测试脚本的编写,大大降低了脚本编写难度,可实现无需手工编写脚本代码。
根据本公开的实施例,上述自动化测试方法例如还可以包括:在业务模块需要变更需求的情况下,获取用于实现需求变更的输入信息,得到变更需求后的目标业务模块;以及将变更需求前的业务模块替换为目标业务模块。
根据本公开的实施例,参见图3所示,针对上述与需求变更相关的操作,例如可以由上述业务测试组件维护装置350实现,具体而言,如果业务需求有变更,可在业务测试组件维护装置350中对具体变更的业务测试组件进行维护,例如“业务审核模块”有变更,审核时需增加“附言”字段的输入,则可通过本装置对“业务审核模块”的测试组件做一次维护,实现业务测试组件一次维护,其它所有涉及引用该业务测试组件的自动化测试脚本可实现同步更新的效果,无需分别多次维护。
通过本公开的上述实施例,在业务涉及变更的情况下,可以仅针对公共测试组件(例如可以为涉及需求变更的业务测试组件)进行一次修改,可大大降低业务变更导致的自动化测试脚本的较高的维护成本。
下面结合具体实施例,并参考图3~图5,对图2所示的方法做进一步说明。
根据本公开的实施例,上述操作S202例如可以包括:获取模块识别规则,其中,模块识别规则用于根据前置条件确定判断结果,前置条件包括目标识别范围和目标识别对象,判断结果包括模块名;根据模块识别规则并结合文字匹配算法对配置文档进行分析,得到多个目标模块名;以及根据多个目标模块名确定与被测业务系统对应的多个业务模块。
根据本公开的实施例,用于实现上述操作S202的公共业务处理模块提取装置310例如可以实现一套基于规则的专家库系统,通过该专家库系统,可对被测业务系统的业务功能需求、软件设计说明书进行解析推理,从而可以实现对被测业务系统各业务处理模块信息的自动识别,并可最终提取出被测业务系统的各个业务处理模块。
图4示意性示出了根据本公开实施例的公共业务处理模块提取装置的内部结构图。
如图4所示,公共业务处理模块提取装置310的内部结构例如可以包括规则库单元311、识别模型单元312、分析引擎单元313和公共业务处理模块输出单元314。
根据本公开的实施例,参见图4所示,上述规则库单元311例如可以维护和存储用于模块识别的专家规则库,本单元内可维护多条上述模块识别规则。规则例如可以采用IF<前置条件>...THEN<判断结果>...的形式进行设置和存储,其中前置条件可以有多个,用关键词AND或OR进行拼接。例如:IF在功能模块设计章节(例如用于构成上述目标识别范围)AND词语包含“功能名称”(例如用于构建上述目标识别对象)THEN将后面的词语描述提取为功能模块名。又如:IF词语包含“模块”OR词语包括“功能”THEN判定为可疑功能模块。
根据本公开的实施例,参见图4所示,上述识别模型单元312例如可以存储和维护文字匹配相关的算法模型(即上述文字匹配算法),例如KMP算法(一种字符串匹配算法)、BM算法(Boyer-Moore,一种字符串搜索算法)模型等。本单元例如可以为从被测业务系统的文档描述(即上述配置文档)中提取出模块(例如可对应上述目标模块名和由其确定的业务模块)提供算法模型支持。
根据本公开的实施例,参见图4所示,上述分析引擎单元313例如可以针对被测系统的业务功能需求、软件设计说明书等文档(即上述配置文档),结合规则库单元中的规则项(即上述模式识别规则),使用识别模型单元312中的文字匹配算法,对被测业务系统的各个模块进行识别。例如针对某业务集中处理系统的业务功能需求和软件设计说明书进行分析,识别出该系统有以X业务受理模块、X业务录入模块、X业务补录模块、X业务审核模块、X业务退回模块、X业务上主机处理模块、Y业务受理模块、Y业务补录模块、Y业务审核模块、Y业务作废模块、Y业务上主机处理模块等多个目标模块名命名的多个业务模块。
根据本公开的实施例,上述根据多个目标模块名确定与被测业务系统对应的多个业务模块包括:在多个目标模块名中存在至少两个目标模块名包含有重复的命名信息的情况下,根据重复的命名信息确定用于表征至少两个目标模块名的最终模块名;以及根据最终模块名确定与被测业务系统对应的多个业务模块。
根据本公开的实施例,参见图4所示,上述公共业务处理模块输出单元314例如可以对分析引擎单元313中识别出的多个模块进行去重,去重的方式例如可以表现为根据目标模块名进行去重,然后将所有识别出的公共业务处理模块(即具有上述最终模块名的业务模块)进行输出。例如针对分析引擎单元313输出的上述包含有重复信息的目标模块名的业务模块进行去重,抽取出公共业务处理模块例如可以为:业务受理模块、业务录入模块、业务补录模块、业务审核模块、业务退回模块、业务上主机处理模块、业务作废模块等。
根据本公开的实施例,上述操作S205例如可以包括:获取用于配置自动化测试脚本的业务测试组件;以及根据业务处理流程和业务测试组件构建生成自动化测试脚本。
根据本公开的实施例,参见图3所示,用于实现上述操作S205的自动化测试用例配置装置330例如可以提供一个自动化测试用例(如上述自动化测试脚本)配置的平台,通过对业务测试组件的引用、组装,实现完整测试流程的配置,同时可对业务测试数据、业务验证点进行设置。
根据本公开的实施例,上述操作S206例如可以包括:获取针对被测业务系统中每个业务测试组件设置的输入值;根据输入值运行自动化测试脚本,得到目标测试结果;获取针对自动化测试脚本设置的预设测试结果;以及将目标测试结果和预设测试结果进行比较,以实现对被测业务系统的测试。
根据本公开的实施例,为使得用于实现上述操作S206的自动化测试用例调度运行装置340可以正常的执行调用运行的工作,例如可以对上述自动化测试用例配置装置330进行一系列功能配置。
图5示意性示出了根据本公开实施例的自动化测试用例配置装置的内部结构图。
如图5所示,自动化测试用例配置装置330的内部结构例如可以包括业务测试组件查询单元331、业务测试用例配置单元332、业务入参设置单元333和测试验证点配置单元334。
根据本公开的实施例,参见图5所示,上述业务测试组件查询单元331例如可以将实现了自动化测试的公共业务处理模块放入业务测试组件库中,本查询单元例如可以提供相关业务测试组件的查询检索功能,以提供给测试人员进行配置引用,完成对上述业务测试组件的配置。
根据本公开的实施例,参见图5所示,上述业务测试用例配置单元332例如可以根据业务处理流程和测试用例设计,将业务测试组件配置为可一条可以自动执行的完整流程,完成对上述自动化测试用例的配置。例如,对于X业务正向上主机处理的测试用例可配置为:业务受理模块-->业务录入模块-->业务补录模块-->业务审核模块-->业务上主机处理模块。对于X业务审核退回处理的测试用例可配置为:业务受理模块-->业务录入模块-->业务补录模块-->业务审核模块-->业务退回模块。
根据本公开的实施例,参见图5所示,上述业务入参设置单元333例如可以在将业务测试组件配置好自动化测试用例后,对自动化测试用例中各业务测试组件的业务入参(即上述输入值)即测试数据进行赋值,以满足自动化测试用例运行时所需的业务数据的需求。
根据本公开的实施例,参见图5所示,上述测试验证点配置单元334例如可以在自动化测试用例运行后,对运行的结果进行核验,确保系统按照预期的结果进行处理,否则运行失败提示系统可能存在bug。该单元例如即可实现对自动化测试用例验证点(例如可以表现为上述预设测试结果)的配置。如通过检查返回报文中returnCode是否为0,或者查询数据库表的方式校验某些业务字段的值是否为预期值,从而实现对自动化测试用例的测试。
根据本公开的实施例,上述操作S206例如还可以包括:获取预设测试时间;以及根据预设测试时间自动化开启根据自动化测试脚本对被测业务系统进行测试的过程。
根据本公开的实施例,用于实现上述操作S206的自动化测试用例调度运行装置340例如可以提供自动化测试用例调起和运行的环境,例如包括可以根据需求按时间周期(即上述预设测试时间)配置自动调起,如按天、按周、按月等,或一次性调起运行。
通过本公开的上述实施例,测试人员可以针对业务测试组件进行灵活配置,快速实现不同业务处理流程、不同功能分支自动化测试用例的生成,可有效解决当前软件自动化测试过程中存在的技术门槛高、业务变更引发脚本维护工作量大的问题,具有较好的应用前景。
图6示意性示出了根据本公开的实施例的自动化测试装置的框图。
如图6所示,自动化测试装置600包括第一获取模块610、解析模块620、封装模块630、第二获取模块640、构建模块650和测试模块660。
第一获取模块610,用于获取与被测业务系统相关的配置文档。
解析模块620,用于对配置文档进行解析,得到与被测业务系统对应的多个业务模块。
封装模块630,用于针对多个业务模块,将每个业务模块封装为业务测试组件,得到多个业务测试组件。
第二获取模块640,用于获取与被测业务系统对应的业务处理流程。
构建模块650,用于利用多个业务测试组件构建与业务处理流程相匹配的自动化测试脚本。
测试模块660,用于根据自动化测试脚本对被测业务系统进行测试,以实现对被测业务系统的自动化测试。
根据本公开的上述实施例,通过采用了获取与被测业务系统相关的配置文档;对配置文档进行解析,得到与被测业务系统对应的多个业务模块;针对多个业务模块,将每个业务模块封装为业务测试组件,得到多个业务测试组件;获取与被测业务系统对应的业务处理流程;利用多个业务测试组件构建与业务处理流程相匹配的自动化测试脚本;以及根据自动化测试脚本对被测业务系统进行测试,以实现对被测业务系统的自动化测试的技术手段,由于自动化测试过程是以业务模块为单位进行设计,无需深入考虑与业务相关的程序代码,所以至少部分地克服了自动化测试门槛高的技术问题,同时以业务模块为单位进行测试,还达到了降低自动化测试维护脚本的成本的技术效果。
根据本公开的实施例,上述自动化测试装置还包括第三获取模块和替换模块。
第三获取模块,用于在业务模块需要变更需求的情况下,获取用于实现需求变更的输入信息,得到变更需求后的目标业务模块。
替换模块,用于将变更需求前的业务模块替换为目标业务模块。
根据本公开的实施例,上述解析模块包括第一获取单元、解析单元和确定单元。
第一获取单元,用于获取模块识别规则,其中,模块识别规则用于根据前置条件确定判断结果,前置条件包括目标识别范围和目标识别对象,判断结果包括模块名。
解析单元,用于根据模块识别规则并结合文字匹配算法对配置文档进行解析,得到多个目标模块名。
确定单元,用于根据多个目标模块名确定与被测业务系统对应的多个业务模块。
根据本公开的实施例,上述构建模块包括第二获取单元和生成单元。
第二获取单元,用于获取用于配置自动化测试脚本的业务测试组件。
生成单元,用于根据业务处理流程和业务测试组件构建生成自动化测试脚本。
根据本公开的实施例,上述测试模块包括第三获取单元、运行单元、第四获取单元和比较单元。
第三获取单元,用于获取针对被测业务系统中每个业务测试组件设置的输入值。
运行单元,用于根据输入值运行自动化测试脚本,得到目标测试结果。
第四获取单元,用于获取针对自动化测试脚本设置的预设测试结果。
比较单元,用于将目标测试结果和预设测试结果进行比较,以实现对被测业务系统的测试。
根据本公开的实施例,上述测试模块包括第五获取单元和开启单元。
第五获取单元,用于获取预设测试时间。
开启单元,用于根据预设测试时间自动化开启根据自动化测试脚本对被测业务系统进行测试的过程。
根据本公开的实施例,上述确定单元包括第一确定子单元和第二确定子单元。
第一确定子单元,用于在多个目标模块名中存在至少两个目标模块名包含有重复的命名信息的情况下,根据重复的命名信息确定用于表征至少两个目标模块名的最终模块名。
第二确定子单元,用于根据最终模块名确定与被测业务系统对应的多个业务模块。
根据本公开的实施例的模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,第一获取模块610、解析模块620、封装模块630、第二获取模块640、构建模块650和测试模块660中的任意多个可以合并在一个模块/单元/子单元中实现,或者其中的任意一个模块/单元/子单元可以被拆分成多个模块/单元/子单元。或者,这些模块/单元/子单元中的一个或多个模块/单元/子单元的至少部分功能可以与其他模块/单元/子单元的至少部分功能相结合,并在一个模块/单元/子单元中实现。根据本公开的实施例,第一获取模块610、解析模块620、封装模块630、第二获取模块640、构建模块650和测试模块660中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一获取模块610、解析模块620、封装模块630、第二获取模块640、构建模块650和测试模块660中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
需要说明的是,本公开的实施例中自动化测试装置部分与本公开的实施例中自动化测试方法部分是相对应的,自动化测试装置部分的描述具体参考自动化测试方法部分,在此不再赘述。
图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中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM702和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 (10)

1.一种自动化测试方法,包括:
获取与被测业务系统相关的配置文档,所述配置文档包括与所述被测业务系统相关的业务功能需求文件和软件设计说明书;
对所述配置文档进行解析,得到与所述被测业务系统对应的多个业务模块,包括:
获取模块识别规则,其中,所述模块识别规则用于根据前置条件确定判断结果,所述前置条件包括目标识别范围和目标识别对象,所述判断结果包括模块名;
根据所述模块识别规则并结合文字匹配算法对所述配置文档进行解析,得到多个目标模块名;以及
根据所述多个目标模块名确定与所述被测业务系统对应的多个业务模块;
针对多个所述业务模块,将每个所述业务模块封装为业务测试组件,得到多个所述业务测试组件;
获取与所述被测业务系统对应的业务处理流程;
利用多个所述业务测试组件构建与所述业务处理流程相匹配的自动化测试脚本;以及
根据所述自动化测试脚本对所述被测业务系统进行测试,以实现对所述被测业务系统的自动化测试。
2.根据权利要求1所述的方法,还包括:
在所述业务模块需要变更需求的情况下,获取用于实现需求变更的输入信息,得到变更需求后的目标业务模块;以及
将变更需求前的所述业务模块替换为所述目标业务模块。
3.根据权利要求1所述的方法,其中,利用多个所述业务测试组件构建与所述业务处理流程相匹配的自动化测试脚本包括:
获取用于配置所述自动化测试脚本的业务测试组件;以及
根据所述业务处理流程和所述业务测试组件构建生成所述自动化测试脚本。
4.根据权利要求1所述的方法,其中,根据所述自动化测试脚本对所述被测业务系统进行测试,以实现对所述被测业务系统的自动化测试包括:
获取针对所述被测业务系统中每个所述业务测试组件设置的输入值;
根据所述输入值运行所述自动化测试脚本,得到目标测试结果;
获取针对所述自动化测试脚本设置的预设测试结果;以及
将所述目标测试结果和所述预设测试结果进行比较,以实现对所述被测业务系统的测试。
5.根据权利要求1所述的方法,其中,根据所述自动化测试脚本对所述被测业务系统进行测试,以实现对所述被测业务系统的自动化测试包括:
获取预设测试时间;以及
根据所述预设测试时间自动化开启所述根据所述自动化测试脚本对所述被测业务系统进行测试的过程。
6.根据权利要求1所述的方法,其中,根据所述多个目标模块名确定与所述被测业务系统对应的多个业务模块包括:
在所述多个目标模块名中存在至少两个目标模块名包含有重复的命名信息的情况下,根据所述重复的命名信息确定用于表征所述至少两个目标模块名的最终模块名;以及
根据所述最终模块名确定与所述被测业务系统对应的多个业务模块。
7.一种自动化测试装置,包括:
第一获取模块,用于获取与被测业务系统相关的配置文档,所述配置文档包括与所述被测业务系统相关的业务功能需求文件和软件设计说明书;
解析模块,用于对所述配置文档进行解析,得到与所述被测业务系统对应的多个业务模块,所述解析模块包括:
第一获取单元,用于获取模块识别规则,其中,所述模块识别规则用于根据前置条件确定判断结果,所述前置条件包括目标识别范围和目标识别对象,所述判断结果包括模块名;
解析单元,用于根据所述模块识别规则并结合文字匹配算法对所述配置文档进行解析,得到多个目标模块名;以及
确定单元,用于根根据所述多个目标模块名确定与所述被测业务系统对应的多个业务模块;
封装模块,用于针对多个所述业务模块,将每个所述业务模块封装为业务测试组件,得到多个所述业务测试组件;
第二获取模块,用于获取与所述被测业务系统对应的业务处理流程;
构建模块,用于利用多个所述业务测试组件构建与所述业务处理流程相匹配的自动化测试脚本;以及
测试模块,用于根据所述自动化测试脚本对所述被测业务系统进行测试,以实现对所述被测业务系统的自动化测试。
8.一种计算机系统,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至6中任一项所述的方法。
9.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现权利要求1至6中任一项所述的方法。
10.一种计算机程序产品,包括计算机可执行指令,所述指令在被执行时用于实现权利要求1至6中任一项所述的方法。
CN202110299509.0A 2021-03-19 2021-03-19 自动化测试方法、装置、计算机系统和可读存储介质 Active CN113032256B (zh)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
CN113032256A CN113032256A (zh) 2021-06-25
CN113032256B true CN113032256B (zh) 2024-06-11

Family

ID=76472331

Family Applications (1)

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

Country Status (1)

Country Link
CN (1) CN113032256B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113656326A (zh) * 2021-08-31 2021-11-16 北京沃东天骏信息技术有限公司 程序测试方法、装置、计算机系统及存储介质
CN116578499B (zh) * 2023-07-13 2023-09-22 建信金融科技有限责任公司 公共组件功能变更影响的智能化分析测试方法及其系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1192574A1 (en) * 1999-12-10 2002-04-03 MTW Corp. A method of component-based system development
CN106326095A (zh) * 2015-06-30 2017-01-11 展讯通信(上海)有限公司 一种测试脚本设定方法及系统
CN109408372A (zh) * 2018-09-26 2019-03-01 平安普惠企业管理有限公司 公共组件测试方法、装置、计算机设备和存储介质
CN109426608A (zh) * 2017-08-29 2019-03-05 中国电信股份有限公司 分布式服务的测试方法和装置、计算机可读存储介质
US10289534B1 (en) * 2015-10-29 2019-05-14 Amdocs Development Limited System, method, and computer program for efficiently automating business flow testing

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1192574A1 (en) * 1999-12-10 2002-04-03 MTW Corp. A method of component-based system development
CN106326095A (zh) * 2015-06-30 2017-01-11 展讯通信(上海)有限公司 一种测试脚本设定方法及系统
US10289534B1 (en) * 2015-10-29 2019-05-14 Amdocs Development Limited System, method, and computer program for efficiently automating business flow testing
CN109426608A (zh) * 2017-08-29 2019-03-05 中国电信股份有限公司 分布式服务的测试方法和装置、计算机可读存储介质
CN109408372A (zh) * 2018-09-26 2019-03-01 平安普惠企业管理有限公司 公共组件测试方法、装置、计算机设备和存储介质

Also Published As

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

Similar Documents

Publication Publication Date Title
CN110018955B (zh) 通过转换手动测试用例来生成自动化测试脚本
CN113032257B (zh) 自动化测试方法、装置、计算机系统和可读存储介质
US20110035179A1 (en) System and method for testing electronic device
CN113032256B (zh) 自动化测试方法、装置、计算机系统和可读存储介质
CN113448869B (zh) 测试用例生成的方法、装置、电子设备及计算机可读介质
CN110795331A (zh) 软件测试的方法和装置
CN117033249A (zh) 一种测试用例生成方法、装置、计算机设备及存储介质
CN114281803A (zh) 数据迁移方法、装置、设备、介质和程序产品
CN111597069A (zh) 程序处理方法、装置、电子设备和存储介质
CN114489704A (zh) 基于策略的版本编译部署方法及装置
US11347533B2 (en) Enhanced virtual machine image management system
WO2023151397A1 (zh) 应用程序部署方法、装置、设备及介质
CN113392024B (zh) 存储过程的测试方法、装置、设备及介质
CN112506781B (zh) 测试监控方法、装置、电子设备、存储介质及程序产品
CN115248680A (zh) 软件构建方法、系统、设备、介质和程序产品
CN113918525A (zh) 数据交换调度方法、系统、电子设备、介质及程序产品
CN114840429A (zh) 识别版本冲突的方法、装置、设备、介质和程序产品
CN113434382A (zh) 数据库性能监控方法、装置、电子设备及计算机可读介质
CN117472410A (zh) 组件化开发项目中开发工具的更新方法、装置和设备
CN117271309A (zh) 业务测试方法、系统、电子设备和存储介质
CN117435464A (zh) 软件测试方法及装置、电子设备和计算机可读存储介质
CN114817036A (zh) 决策树测试方法、装置、电子设备和存储介质
CN114266547A (zh) 业务处理策略的识别方法、装置、设备、介质及程序产品
CN114579444A (zh) 自动化测试方法、装置、电子设备、存储介质及程序产品
CN117609042A (zh) 基于MyBatis框架的接口映射文件测试方法、装置和设备

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