首页> 中国专利> 动态可修复案例的软件测试方法及装置

动态可修复案例的软件测试方法及装置

摘要

本发明公开了一种动态可修复案例的软件测试方法及装置,可用于金融领域或其他领域,其中该方法包括:在根据执行结果确定测试案例脚本异常时,循环执行以下案例修复的操作:对异常测试案例脚本进行检测,得到异常检测结果;从数据源中提取出异常检测结果对应的更新数据生成更新的测试案例数据;根据更新的案例数据,组成更新的脚本;执行更新的脚本,获得更新的执行结果;在根据更新的执行结果确定更新的测试案例脚本异常时,执行下一周期案例修复的操作,直至确定更新的测试案例脚本正常,得到修复后的测试案例进而进行软件测试。本发明可以实现动态高效地修复测试案例,降低测试案例维护的成本,进而提高软件测试的效率,降低软件测试的成本。

著录项

  • 公开/公告号CN112905466A

    专利类型发明专利

  • 公开/公告日2021-06-04

    原文格式PDF

  • 申请/专利权人 中国工商银行股份有限公司;

    申请/专利号CN202110183731.4

  • 发明设计人 张培渠;郑培龙;苏旭禧;吴俊淮;

    申请日2021-02-10

  • 分类号G06F11/36(20060101);

  • 代理机构11127 北京三友知识产权代理有限公司;

  • 代理人任默闻;王涛

  • 地址 100140 北京市西城区复兴门内大街55号

  • 入库时间 2023-06-19 11:16:08

说明书

技术领域

本发明涉及软件工程自动化测试技术领域,尤其涉及一种动态可修复案例的软件测试方法及装置。

需要说明的是,本公开动态可修复案例的软件测试方法及装置可用于金融领域的软件测试,也可用于除金融领域之外的任意领域的软件测试,本公开动态可修复案例的软件测试方法及装置的应用领域不做限定。

背景技术

本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

在自动化测试案例编写方面,现有普遍的实现方法是根据接口的报文、方法的输入参数来编写调用脚本,同时根据接口和方法中的分支条件,来确定每个测试案例中的测试数据和预期结果,通过断言判断返回的参数或数据的更新是否符合预期结果。后续将自动化测试案例脚本部署运行进行常规化测试,根据运行结果对失败的脚本进行检查维护,同时,对于有迭代优化的程序,对应的自动化脚本也需要同时维护更新。然而,目前无法动态高效维护测试案例,导致测试案例维护的成本高,进而软件测试的效率低,软件测试的成本也高。

发明内容

本发明实施例提供一种动态可修复案例的软件方法,用以实现动态高效地修复测试案例,降低测试案例维护的成本,进而提高软件测试的效率,降低软件测试的成本,该方法包括:

获取软件测试案例的执行结果;

在根据执行结果确定测试案例脚本异常时,循环执行以下案例修复的操作:

对异常测试案例脚本进行检测,得到异常检测结果;

从数据源中提取出异常检测结果对应的更新数据生成更新的测试案例数据;

根据更新的测试案例数据,组成更新的测试案例脚本;

执行所述更新的测试案例脚本,获得更新的测试案例执行结果;

在根据更新的测试案例执行结果确定更新的测试案例脚本异常时,执行下一周期案例修复的操作,直至确定更新的测试案例脚本正常,得到修复后的所述测试案例;

根据修复后的所述测试案例,进行软件测试。

本发明实施例还提供一种动态可修复案例的软件装置,用以实现动态高效地修复测试案例,降低测试案例维护的成本,进而提高软件测试的效率,降低软件测试的成本,该装置包括:

获取单元,用于获取软件测试案例的执行结果;

案例修复单元,用于在根据执行结果确定测试案例脚本异常时,循环执行以下案例修复的操作:

对异常测试案例脚本进行检测,得到异常检测结果;

从数据源中提取出异常检测结果对应的更新数据生成更新的测试案例数据;

根据更新的测试案例数据,组成更新的测试案例脚本;

执行所述更新的测试案例脚本,获得更新的测试案例执行结果;

在根据更新的测试案例执行结果确定更新的测试案例脚本异常时,执行下一周期案例修复的操作,直至确定更新的测试案例脚本正常,得到修复后的所述测试案例;

测试单元,用于根据修复后的所述测试案例,进行软件测试。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述动态可修复案例的软件测试方法。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述动态可修复案例的软件测试方法的计算机程序。

本发明实施例中,动态可修复案例的软件测试方案,通过:获取软件测试案例的执行结果;在根据执行结果确定测试案例脚本异常时,循环执行以下案例修复的操作:对异常测试案例脚本进行检测,得到异常检测结果;从数据源中提取出异常检测结果对应的更新数据生成更新的测试案例数据;根据更新的测试案例数据,组成更新的测试案例脚本;执行所述更新的测试案例脚本,获得更新的测试案例执行结果;在根据更新的测试案例执行结果确定更新的测试案例脚本异常时,执行下一周期案例修复的操作,直至确定更新的测试案例脚本正常,得到修复后的所述测试案例;根据修复后的所述测试案例,进行软件测试,可以实现动态高效地修复测试案例,降低测试案例维护的成本,进而提高软件测试的效率,降低软件测试的成本。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本发明实施例中动态可修复案例的软件测试方法的流程示意图;

图2为本发明实施例中动态可修复案例的软件测试的原理示意图;

图3为本发明又一实施例中动态可修复案例的软件测试的原理示意图;

图4为本发明实施例中测试案例组成装置的结构示意图;

图5为本发明实施例中动态可修复案例的软件测试装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

针对目前的软件测试方案,发明人发现了如下技术问题:

目前业界在自动化设计上普遍实现了脚本的自动生成及配置,但对于脚本运行后的维护、修复,还未有一套成熟的体系。因此,目前的自动化设计方式虽然可以满足在预设条件状态下由机器驱动执行案例,但是仍然存在以下痛点难点:

1、脚本报错,需要维护人员分析原因,调整脚本后重新部署,因此需要耗费大量的成本;

2、若发生人员变动,测试人员对存量的脚本和相关业务不熟悉,脚本保鲜所需的成本高;

3、随着自动化测试建设规模增大,脚本的维护需要大量人力。

由于发明人考虑到了如上技术问题,因此提出了一种动态可修复案例的软件测试方案,该方案为一种动态可修复案例的自动化测试方法,可以对上述提到在自动化测试建设中的难题进行有效地改善。下面对该动态可修复案例的软件测试方案进行详细介绍。

图1为本发明实施例中动态可修复案例的软件测试方法的流程示意图,如图1所示,该方法包括如下步骤:

步骤101:获取软件测试案例的执行结果;

步骤102:在根据执行结果确定测试案例脚本异常时,循环执行以下案例修复的操作:

步骤1021:对异常测试案例脚本进行检测,得到异常检测结果;

步骤1022:从数据源中提取出异常检测结果对应的更新数据生成更新的测试案例数据;

步骤1023:根据更新的测试案例数据,组成更新的测试案例脚本;

步骤1024:执行所述更新的测试案例脚本,获得更新的测试案例执行结果;

步骤1025:在根据更新的测试案例执行结果确定更新的测试案例脚本异常时,执行下一周期案例修复的操作,直至确定更新的测试案例脚本正常,得到修复后的所述测试案例;

步骤103:根据修复后的所述测试案例,进行软件测试。

本发明可以实现动态高效地修复测试案例,降低测试案例维护的成本,进而提高软件测试的效率,降低软件测试的成本。下面结合附图2至图4,对本发明实施涉及的步骤进行详细介绍如下。

一、首先,介绍上述步骤101。

在上述步骤101中,上述软件测试案例的执行结果可以是日常的自动化测试结果等,也可以是由于程序涉及变更得到的测试结果等等。上述步骤101可以通过下面图5中的获取单元来实现。

二、其次,介绍上述步骤102。

在上述步骤102中,案例修复的操作可以通过下面图5中的案例修复单元来实现。测试案例异常的脚本可以是对当前执行结果与断言(预设执行结果)不符的脚本,报错的脚本,以及由程序变更导致失效的脚本等等。下面详细介绍案例修复的操作。

1.首先,为了方便后续介绍,首先对本发明实施例中涉及的数据源进行介绍。

具体实施时,本发明实施例中涉及的数据源可以是图2和图3中的数据源装置100:数据源装置包含脚本参数数据源及案例数据数据源两个部分。其中,脚本参数数据源包括存储自动化测试脚本具体的入参信息、报文信息、错误码与参数关联信息。案例数据源包括自动化测试案例相关入参的数据集。该装置可供测试案例组成装置获取测试内容的入参、报文等信息,也可供测试案例分析装置将错误码与数据源建立对应关系(异常标识与参数的关系),用于修复更新运行不符合预期的案例脚本。

2.其次,为了便于理解,一同介绍步骤1021和步骤1022,该步骤1021和步骤1022可以由图2和图3中的测试案例分析装置400来实现。

具体实施时,测试案例分析装置的作用是:用于自动化测试案例执行失败时进行自动修复。自动化的该测试案例分析装置通过测试案例执行装置(用于完成下面步骤1024的装置)下传的错误码(异常标识),从前期维护的错误码与案例数据源的关联关系(预先建立的异常标识与参数的关系)中,确定需要重新维护的字段,并从案例数据源中获取新的入参数据(异常检测结果对应的更新数据),并通过测试案例组成装置(用于完成下面步骤1023的装置),建立起新的自动化测试案例(更新的测试案例脚本)以供后续进行执行。

(1)首先介绍步骤1021。

在一个实施例中,在上述步骤1021中,对异常测试案例脚本进行检测,得到异常检测结果,可以包括:

根据异常测试案例脚本,得到异常标识;

根据所述异常标识,以及预先建立的异常标识与参数的关系,确定影响脚本执行的参数。

具体实施时,上述异常标识可以是错误码,上述步骤1021可以通过图3中的错误码分析模块410来实现,错误码分析模块410首先从脚本返回代码中提取出错误码,由于数据源中建立了错误码与参数的关系(异常标识与参数的关系),因此可根据错码在数据源中筛选出影响脚本执行的参数,并下传至测试案例更新模块420。如返回报文为{“errcode”:”err001”,“retmsg”:”该账户类型不支持当前操作”},便可提取出错误码err01。并从数据源装置中查询错误码与参数关联关系,确定出是AccType(账户类型)导致脚本执行失败。

具体实施时,上述得到异常检测结果的具体实施方式进一步提高了软件测试的效率,降低软件测试的成本。

(2)其次介绍步骤1022。

在一个实施例中,从数据源中提取出异常检测结果对应的更新数据生成更新的测试案例数据,可以包括:从数据源中提取出影响脚本执行的参数对应的更新数据生成更新的测试案例数据。

具体实施时,上述步骤1022可以通过图3中的测试案例更新模块420来实现,测试案例更新模块420通过错误码分析模块下传的参数(影响脚本执行的参数),从数据源中提取出新的值(影响脚本执行的参数对应的更新数据)。在更新错误参数值的同时,根据测试案例组成装置中所维护的数据粒度,确定该错误参数更新的同时是否有其他关联参数需要同步更新后,从数据源中提取出新的数据(异常检测结果对应的更新数据),进而生成新的案例数据(更新的测试案例数据)。

具体实施时,上述生成更新的测试案例数据的具体实施方式进一步提高了软件测试的效率,降低软件测试的成本。

3.接着,介绍上述步骤1023,该步骤1023可以通过图2和图3中的测试案例组成装置200来实现:自动化的该测试案例组成装置的作用是:组成可执行脚本,以供测试案例执行装置300执行。该测试案例组成装置提供了一个可执行案例组成平台,首先根据调用类型(如HTTP连接调用、SOCKET连接调用),从公共代码库中提取出调用脚本模板(该模板的描述详见下文描述)后,再通过数据源装置中所维护的入参信息、报文信息,配置调用参数,从案例数据源中根据规则库提取数据组成执行案例(该句描述详见下文例子中说明)。

图4是测试案例组成装置结构图,通过与数据源装置的交互及内部模块组成可执行的脚本,用于日常自动化测试脚本执行。其中:

模板生成模块210:模板生成模块用于生成案例类和测试类代码。模板可分为案例类模板和测试类模板。案例类模板根据调用类型分类,模板中包括了公共参数配置及公共执行方法,包括报文调用及报文返回类型(jason、xml)、报文字符编码(GBK、UTF8)、请求方法(POST、GET)、调用地址,测试类模板则提供了获取入参配置、驱动案例类执行的方法,并解析返回报文进行断言(例如将案例当前运行结果与预设运行结果进行比对)。通过数据源装置所提供的脚本配置参数,选择对应的公共模板代码,并对其参数进行配置,包括报文类型、请求类型、请求头、调用地址等,形成案例类脚本。将入参类型(程序调用参数信息)提供至组成规则模块,并将测试类提供至数据组成模块。

组成规则库模块220:组成规则库维护了案例数据的数据粒度,根据案例数据粒度和模板生成模块所传入的入参,从数据源中提取参数值(调用报文各字段对应的值),并组成不同类型的案例数据(指组成执行不同程序分支的案例数据)。

数据组成模块230:通过模板生成模块所生成的测试类脚本和组成规则库所提供的案例数据,将案例数据提供至测试类,并与案例类脚本组合为可执行脚本。

下面将从一个业务风险命中的场景为例来说明组成规则库和数据组成模块。该场景主要用于银行业务提交前的风险检查,通过获取业务种类下关键的参数值,与黑名单、可疑数据进行比对,确认业务是否存在风险。下表一为该业务风险命中场景的程序DD路径图。

表一:

在本发明实施例中,将影响程序分支的参数作为数据粒度粗细的标准,该场景的数据粒度可包括业务种类和账户类型、凭证种类、币种、金额等参数比对字段。在本发明实施例初步建立阶段,可根据脚本参数配置文件(如下表二,可配置为xml、excel等格式),获取HTTP调用类型的案例类模板,并配置对应调用参数。以此从数据源中选取组合成案例数据,实现程序DD路径的自动化测试覆盖。数据粒度为影响程序执行路径的最小参数集,如在C路径参数比对中,对于客户信息检查,姓名、证件类型、证件号码为一个数据粒度。在后续版本迭代程序发生变更如增加参数比对时,仅需通过维护规则库,更新该场景的数据粒度,从数据源中查询出新的案例数据,即可完成案例的更新及保鲜,极大地减少了自动化脚本维护的成本。

表二(脚本参数配置):

RiskCheck.json:

[{"approot":{"public":{"channel":"渠道","zoneno":"地区号","netno":"网点号"},"private":{"BUSITYPE":"业务种类",”Name”:”姓名”,"CardType":"证件类型","CardNo":"证件号码","C_SACC_NO":"付款人账号","C_RACC_NO":"收款人账号","AMOUNTTYPE":"币种","AMOUNT":"金额","VOUHTYPE":"凭证种类","SUBMITTIME":"提交时间","TELLER":"处理柜员"}}}]。

4.接着,介绍上述步骤1024,该步骤1024可以通过图2和图3中的测试案例执行装置300来实现,自动化的该测试案例执行装置的作用是执行测试案例组成装置组成的可执行脚本。

在一个实施例中,执行所述更新的测试案例脚本,获得更新的测试案例执行结果,可以包括:

执行所述更新的测试案例脚本,得到案例当前运行结果;

将案例当前运行结果与预设运行结果进行比对,根据比对结果,得到测试案例执行结果。

具体实施时,该测试案例执行装置包含了案例运行及运行结果比对两部分。案例运行部分由公共调用代码库及配置信息组成,公共调用代码库用于支撑各种调用类型脚本的组报、发报、返回报文解析等公共方法;运行结果采集部分通过获取解析后的报文,将断言所要比对的字段解析并校验,若比对结果不符合预期,则获取返回报文中的错误码,下传至测试案例分析装置进行分析。

具体实施时,上述获得更新的测试案例执行结果的具体实施方式进一步提高了软件测试的效率,降低软件测试的成本。

5.接着,介绍上述步骤1025,该步骤1025可以由一个循环终止判断模块来实现,该模块可以单独设置,也可以集成在测试案例执行装置300中,在附图2和图3中未示出。

在一个实施例中,所述案例修复的操作还可以包括:在根据更新的测试案例执行结果确定更新的测试案例脚本正常时,完成案例修复的操作,得到修复后的所述测试案例。

具体实施时,根据测试案例执行装置的执行结果,若案例执行符合预期,则将原执行失败的数据案例更新;若执行仍不符合预期,则将新的错误信息反馈至错误码分析模块,进行新一轮错误分析及新案例数据生成,直至执行结果符合预期,则更新测试案例,退出循环。

具体实施时,上述得到修复后的所述测试案例的实施方式进一步提高了软件测试的效率,降低软件测试的成本。

三、接着,介绍上述步骤103。

具体实施时,根据上述步骤102得到修复后的所述测试案例,实现动态高效地修复测试案例,降低测试案例维护的成本,进而提高了软件测试的效率,降低了软件测试的成本。

综上,本发明实施例提供的动态可修复案例的软件测试方法主要有以下特点:一是对于日常的自动化测试结果维护,可通过测试案例分析装置,对执行结果与断言不符、报错的脚本进行诊断后,根据诊断结果(异常检测结果)从数据源装置中提取新的数据生成新的自动化测试案例;二是对于程序涉及变更时,可通过维护自动化测试案例分析装置及更新数据源,对于由程序变更导致失效的脚本在自动化测试案例分析装置进行诊断,根据新维护的规则及数据源,在测试案例组成装置组成新的自动化测试案例,大大地降低了程序变更的测试工作量。

本发明实施例提供的动态可修复案例的软件测试方法的优点是:随着项目快速迭代,越来越多的程序需要通过自动化测试进行覆盖,而随着脚本规模日益庞大,后续程序变更、数据变更所引起的脚本失效会越来越多,维护成本、保鲜成本也越来越高,这是自动化测试建设到一定规模后一定会遇到的痛点。本发明提供了一种动态可修复案例的自动化测试装置及方法,可以有效解决上述在自动化测试建设中存在的痛点,具有良好广泛的应用场景。因此,本发明实施例提供的动态可修复案例的软件测试方法实现了动态高效地修复测试案例,降低了测试案例维护的成本,进而提高了软件测试的效率,降低了软件测试的成本。

本发明实施例中还提供了一种动态可修复案例的软件测试装置,如下面的实施例所述。由于该装置解决问题的原理与动态可修复案例的软件测试方法相似,因此该装置的实施可以参见动态可修复案例的软件测试方法的实施,重复之处不再赘述。

图5为本发明实施例中动态可修复案例的软件测试装置的结构示意图,如图5所示,该装置包括:

获取单元01,用于获取软件测试案例的执行结果;

案例修复单元02,用于在根据执行结果确定测试案例脚本异常时,循环执行以下案例修复的操作:

对异常测试案例脚本进行检测,得到异常检测结果;

从数据源中提取出异常检测结果对应的更新数据生成更新的测试案例数据;

根据更新的测试案例数据,组成更新的测试案例脚本;

执行所述更新的测试案例脚本,获得更新的测试案例执行结果;

在根据更新的测试案例执行结果确定更新的测试案例脚本异常时,执行下一周期案例修复的操作,直至确定更新的测试案例脚本正常,得到修复后的所述测试案例;

测试单元03,用于根据修复后的所述测试案例,进行软件测试。

在一个实施例中,上述案例修复单元还可以用于:在根据更新的测试案例执行结果确定更新的测试案例脚本正常时,完成案例修复的操作,得到修复后的所述测试案例。

在一个实施例中,对异常测试案例脚本进行检测,得到异常检测结果,可以包括:

根据异常测试案例脚本,得到异常标识;

根据所述异常标识,以及预先建立的异常标识与参数的关系,确定影响脚本执行的参数。

在一个实施例中,从数据源中提取出异常检测结果对应的更新数据生成更新的测试案例数据,可以包括:从数据源中提取出影响脚本执行的参数对应的更新数据生成更新的测试案例数据。

在一个实施例中,执行所述更新的测试案例脚本,获得更新的测试案例执行结果,可以包括:

执行所述更新的测试案例脚本,得到案例当前运行结果;

将案例当前运行结果与预设运行结果进行比对,根据比对结果,得到测试案例执行结果。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述动态可修复案例的软件测试方法。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述动态可修复案例的软件测试方法的计算机程序。

本发明实施例提供的动态可修复案例的软件测试方案的优点是:可以实现动态高效地修复测试案例,降低测试案例维护的成本,进而提高软件测试的效率,降低软件测试的成本。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号