一种测试规则库更新方法、装置、电子设备及存储介质与流程

文档序号:32955286发布日期:2023-01-14 16:56阅读:40来源:国知局
一种测试规则库更新方法、装置、电子设备及存储介质与流程

1.本发明涉及计算机技术领域,尤其涉及一种测试规则库更新方法、装置、电子设备及存储介质。


背景技术:

2.目前,金融系统的业务复杂多变,为了能让业务规则具有完整性、时效性、方便项目相关人员查找、学习,金融系统开始建立专有的测试规则知识库,积累测试资产。
3.现有技术中,一些传统的测试分析、测试规则知识库的维护,大多是通过对业务需求进行梳理,通过与业务、开发人员的沟通进行业务规则的分析,最后在稳定投产后进行维护规则库,形成资产积累。然而,若该项目是一个没有业务需求的重构或优化类项目,测试人员有变动或是非技术背景人员,对该项目的代码不甚了解,且项目沟通时间少,则会难以获得测试分析的抓手,对于规则库的更新也会出现漏输、输错、旧规则不更新等情况,从而影响资产的完整性、健全性。如何在这种情况能够利用已有的测试案例对无技术背景的测试人员智能地在测试规则知识库中推荐新建或更改的测试规则是一个有研究意义的问题。


技术实现要素:

4.有鉴于此,本发明提供一种测试规则库更新方法、装置、电子设备及存储介质,能够实现自动化、定时化的程序分析闭环,使得测试人员可以依据规则模板的推荐对更新的代码进行对应规则的分析,减少错输、漏输规则的几率,加强测试工作的及时性和完整性,同时提升规则库资产质量。
5.根据本发明的一方面,本发明实施例提供了一种测试规则库更新方法,该方法包括:
6.获取待测程序的分支条件取值序列;
7.根据预设关联关系分析模型确定所述分支条件取值序列对应的输入参数值序列,其中,所述预设关联关系分析模型基于包含历史输入参数值序列和覆盖程序的程序分支条件取值序列的训练集生成;
8.根据所述输入参数值序列和预设交易规则模板生成测试规则以更新测试规则库。
9.根据本发明的另一方面,本发明实施例还提供了一种测试规则库更新装置,该装置包括:
10.获取模块,用于获取待测程序的分支条件取值序列;
11.确定模块,用于根据预设关联关系分析模型确定所述分支条件取值序列对应的输入参数值序列,其中,所述预设关联关系分析模型基于包含历史输入参数值序列和覆盖程序的程序分支条件取值序列的训练集生成;
12.更新模块,用于根据所述输入参数值序列和预设交易规则模板生成测试规则以更新测试规则库。
13.根据本发明的另一方面,本发明实施例还提供了一种电子设备,所述电子设备包
括:
14.至少一个处理器;以及
15.与所述至少一个处理器通信连接的存储器;其中,
16.所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的测试规则库更新方法。
17.根据本发明的另一方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的测试规则库更新方法。
18.本发明实施例的技术方案,通过获取待测程序的分支条件取值序列,根据预设关联关系分析模型确定分支条件取值序列对应的输入参数值序列,并根据输入参数值序列和预设交易规则模板生成测试规则以更新测试规则库。本发明实施例,通过预设关联关系分析模型,以确定分支条件取值序列对应的输入参数值序列,以根据输入参数值序列和预设交易规则模板生成测试规则以更新测试规则库,实现自动化、定时化的程序分析闭环,使得测试人员可以依据规则模板的推荐对更新的代码进行对应规则的分析,减少错输、漏输规则的几率,加强测试工作的及时性和完整性,同时提升规则库资产质量。
19.应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
20.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
21.图1为本发明一实施例提供的一种测试规则库更新方法的流程图;
22.图2为本发明一实施例提供的又一种测试规则库更新方法的流程图;
23.图3为本发明一实施例提供的一种测试规则库更新装置的结构框图;
24.图4为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
25.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
26.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他
的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
27.在一实施例中,图1为本发明一实施例提供的一种测试规则库更新方法的流程图,本实施例可适用于对测试规则库进行智能自动更新时的情况,该方法可以由测试规则库更新装置来执行,该测试规则库更新装置可以采用硬件和/或软件的形式实现,该测试规则库更新装置可配置于电子设备中。
28.如图1所示,具体步骤包括:
29.s110、获取待测程序的分支条件取值序列。
30.其中,分支条件取值序列可以理解为新的代码分支条件取值序列,该分支条件取值序列中包含新的状态参数和对应的交易结果。示例性的,待测程序的分支条件取值序列可以为06表示账户状态为睡眠状态,该状态对应的交易结果为交易失败。
31.在本实施例中,在存在待测程序的分支条件取值序列输入至计算机中时,可以自动识别到该待测程序的分支条件取值序列,可以通过实时的方式进行捕捉上传的待测程序分支,也可以通过定时的方式在固定的时间段内进行定时捕捉上传的待测程序分支,以从待测程序分支中获取对应的条件取值序列作为待测程序分支条件取值序列。当然,待测程序分支条件取值序列的个数可以为一个或多个。
32.在一实施例中,待测程序的分支条件取值序列中至少包括:待测程序分支对应的状态参数取值序列和交易结果参数取值序列。
33.在本实施例中,状态参数取值序列可以理解为交易状态参数对应的条件取值序列,示例性,待测程序分支对应的状态参数取值序列分别为00、01、02,其中,00表示状态为推荐户状态,01表示状态为正常户状态,02表示睡眠户状态等等。交易结果参数取值序列可以理解为交易结果对应的参数取值序列,示例性的,交易结果参数取值序列分别为0和1,其中,0表示交易结果为交易失败,1表示交易结果为交易成功等等。
34.s120、根据预设关联关系分析模型确定分支条件取值序列对应的输入参数值序列,其中,预设关联关系分析模型基于包含历史输入参数值序列和覆盖程序的程序分支条件取值序列的训练集生成。
35.其中,预设关联关系分析模型可以理解为历史输入参数值序列与覆盖代码的分支覆盖条件取值序列建立映射关系,通过机器学习而得到的关联关系分析模型。历史输入参数值序列可以理解为根据已有对应交易的测试案例、测试规则等文档所提取出的历史输入参数值序列。程序分支条件取值序列可以理解为使用代码覆盖检测技术所得到的分支覆盖条件取值序列。输入参数值序列可以理解为待测程序的分支条件取值序列所对应的参数值序列。
36.在本实施例中,可以依据基于包含历史输入参数值序列和程序分支条件取值序列的训练集所得到的预设关联关系分析模型,以确定分支条件取值序列对应的输入参数值序列。可以理解为,在待测程序的分支条件取值序列输入至预设关联关系分析模型,可以通过训练好的预设关联关系分析模型,以反向生成对应的输入参数值序列。
37.在一实施例中,预设关联关系分析模型的训练过程,包括:
38.提取训练集中历史项目测试交易对应的程序代码;
39.依据预设代码覆盖检测工具确定程序代码所覆盖的至少一个程序分支,其中,程序分支中至少包括历史项目测试交易对应的状态参数、交易结果参数;
40.提取与程序分支匹配的预配置测试案例;
41.在预设测试规则库查找与预配置测试案例对应的测试规则;
42.按照测试规则的历史输入参数值序列和程序分支的程序分支条件取值序列训练预设机器学习模型作为预设关联关系分析模型。
43.其中,历史项目测试交易可以理解为已有交易测试案例。预设代码覆盖检测工具是目前实现精准测试的一种主要技术手段和途径,程序中源代码被测试的比例和程度称为代码覆盖率,可以用来量化代码测试的覆盖率,让测试人员可以直观的发现那些没有覆盖到的代码分支。预配置测试案例可以理解为预先配置的测试案例,该测试案例可以是人为依据历史交易等所编写的案例。预设测试规则库可以理解为已有测试案例对应的规则库。
44.在本实施例中,预设机器学习模型用于将程序代码所覆盖的至少一个程序分支与测试规则进行映射到机器学习,以得到测试规则的历史输入参数值序列和程序分支的程序分支条件取值序列的关联关系模型。
45.在本实施例中,程序分支对应的预配置测试案例中的内容可以包括但不限于用户描述、交易类型、用例属性、测试阶段、用例优先级、测试用例编号、执行程序所对应的步骤描述、预期结果描述;预配置测试案例所对应的预设测试规则库的测试规则的内容包含但不限于业务所属模块、交易名称、交易码、程序名称、测试规则编号、测试规则名称及描述、测试覆盖项、对应功能测试案例编号、测试规则状态、测试规则对应的更新时间。需要说明的是,预配置测试案例中的测试用例编号与测试规则的对应功能测试案例编号是相对应的,可以通过测试用例编号与对应功能测试案例编号进行匹配以进行查找与其相对应的预设测试规则库中的测试规则。
46.在本实施例中,可以通过代码版本管理工具,将项目测试相关交易的程序代码逐个获取,提取训练集中历史项目测试交易对应的程序代码,然后依据代码覆盖检测工具,以确定所获取程序代码所覆盖的至少一个程序分支,该程序分支中至少包括历史项目测试交易对应的状态参数、交易结果参数;确定程序分支与预先配置的测试案例之间的映射关系,每个测试案例均对应相应的测试用户编号,可以依据测试用例编号确定预设测试规则库中的测试规则与每个测试案例之间的映射关系,从而形成程序分支、预先配置的测试案例以及测试规则三者之间均有对应的映射关系。采用机器学习模型将程序分支和测试规则进行映射,可以理解为,对输入的程序分支对应的程序分支条件取值序列和测试规则对应的历史输入参数值序列之间的映射关系进行训练,该映射关系中至少包括测试交易对应的状态参数、交易结果参数,提取出测试规则对应的历史输入参数值序列与程序分支对应的程序分支条件取值序列的关联关系模型,作为预设关联关系分析模型,将组成的预设关联关系分析模型放入测试规则知识库中。
47.s130、根据输入参数值序列和预设交易规则模板生成测试规则以更新测试规则库。
48.其中,预设交易规则模板可以理解为预先设置的交易规则推荐模板。该预设交易规则模板可以通过经验进行相应的设置,也可以人为进行自定设置,本实施例在此不做限制。
49.在本实施例中,可以通过输入参数值序列以确定相对应的测试规则更新内容,在此基础上,将测试规则更新内容插入至预设交易规则模板中以对测试规则库进行更新;在一些实施例中,也可以依据测试规则框架、测试规则数据以及测试规则条件生成测试规则模板,将输入参数值序列对应的更新内容放入测试规则模板以进行全更新操作。需要说明的是,预设交易规则模板中的内容包括但不限于业务所属模块、交易名称、交易码、程序名称、测试规则编号、测试规则名称及描述、测试覆盖项、对应功能测试案例编号、测试规则状态、测试规则对应的更新时间。
50.在一实施例中,预设交易规则模板中的内容包括下述至少之一:业务所属模块、交易名称、交易码、程序名称、测试规则编号、测试规则名称及描述、测试覆盖项、对应功能测试案例编号、测试规则状态、测试规则对应的更新时间。
51.在本实施例中,依据输入参数值序列并按照预设交易规则模板转化成测试规则描述,在测试规则库中进行智能推荐。可以理解为,将业务所属模块、交易名称、交易码、程序名称、测试规则编号、测试规则名称及描述、测试覆盖项、对应功能测试案例编号、测试规则状态、测试规则对应的更新时间等内容,根据预设关联关系分析模型的分析所得到的输入参数值序列对应的测试更新内容插入预设交易规则模板。
52.本发明实施例的技术方案,通过预设关联关系分析模型,以确定分支条件取值序列对应的输入参数值序列,以根据输入参数值序列和预设交易规则模板生成测试规则以更新测试规则库,实现自动化、定时化的程序分析闭环,使得测试人员可以依据规则模板的推荐对更新的代码进行对应规则的分析,减少错输、漏输规则的几率,加强测试工作的及时性和完整性,同时提升规则库资产质量。
53.在一实施例中,在根据输入参数值序列和预设交易规则模板生成测试规则以更新测试规则库之后,还包括:
54.依据项目管理工具发出测试规则库对应的更新通知信息,以智能推荐更新后的新测试规则库;
55.对新测试规则库进行智能化显示,以使测试人员对新测试规则库进行细化修改。
56.其中,项目管理工具指的是进行管理测试规则库的工具。新测试规则库指的是进行智能更新后的测试规则库。
57.在本实施例中,通过项目管理工具发出测试规则库对应的更新通知信息,进行智能推荐更新后的新测试规则库,以使测试人员可以看到机器智能推荐的由于代码更新所导致的规则更新后的测试规则库,之后可以测试人员可以查看进行智能化显示的新测试规则库,决定是否需要对新增加的代码分析对应的更新信息进行细化修改,以辅助相关测试、业务人员更新相关文档,减少了开发人员给测试人员讲代码的沟通成本,提高测试规则知识库的时效性、完整性和智能化,让测试规则、文档梳理工作更加高效全面。当然,确认补充至测试规则库的规则可以作为下次机器学习的数据,继续提升机器学习的完整性和精准度。
58.在一实施例中,图2为本发明一实施例提供的又一种测试规则库更新方法的流程图,本实施例在上述各实施例地基础上,对获取待测程序的分支条件取值序列,以及根据输入参数值序列和预设交易规则模板生成测试规则以更新测试规则库进行了进一步的细化。
59.如图2所示,本实施例中的测试规则库更新方法具体可以包含如下步骤:
60.s210、实时或定时方式捕捉上传的待测程序分支。
61.其中,待测程序分支可以理解为用户新增加的一些代码分支,该待测程序分支中包含新的状态参数和对应的条件结果,示例性的,新的状态参数为冻结户状态对应08,对应的条件结果交易失败对应0。
62.在本实施例中,待测程序分支获取的方式可以有两种,一种是可以通过实时的方式,以自动捕捉开发人员新上传的程序分支作为待测程序分支,另一种,可以通过设置相应定时的方式,以定时捕捉上传的待测程序分支。需要说明的是,该定时可以通过人为进行自行设置,可以按照时间粒度进行相应的设置。示例性的,通过实时获取的方式,得到一段应用分户余额汇总的程序a对应的至少一个待测程序分支。
63.s220、提取待测程序分支中对应的条件取值序列作为待测程序的分支条件取值序列。
64.在本实施例中,可以从待测程序分支中提取出各个待测程序分支对应的条件取值序列,并将条件取值序列作为待测程序分支条件取值序列。示例性的,应用分户余额汇总的程序a对应的待测程序分支描述的是如果分支状态参数为08时,表示全封户,交易结果为1表示可以余额汇总失败。
65.s230、根据预设关联关系分析模型确定分支条件取值序列对应的输入参数值序列,其中,预设关联关系分析模型基于包含历史输入参数值序列和覆盖程序的程序分支条件取值序列的训练集生成。
66.s240、提取输入参数值序列对应的测试规则更新内容。
67.其中,测试规则更新内容可以理解为当前输入参数值取值序列所对应的规则更新内容。
68.在本实施例中,在依据预设关联关系分析模型反向生成分支条件取值序列对应的输入参数值序列之后,从输入参数值序列确定出与其相对应的测试规则更新内容,当然,该测试规则更新内容的具体信息包含但不限于业务所属模块、交易名称、交易码、程序名称、测试规则编号、测试规则名称及描述、测试覆盖项、对应功能测试案例编号、测试规则状态、测试规则对应的更新时间等内容。
69.s250、将测试规则更新内容插入至预设交易规则模板中以对测试规则库进行更新。
70.在本实施例中,通过提取输入参数值序列对应的测试规则更新内容,可以将测试规则更新内容插入至预设交易规则模板中,以依据预设交易规则模板中对应的内容对测试规则库进行更新。示例性的,应用分户余额汇总的程序a新增了一中账户状态为全封户状态,此时,可以依据预设关联关系分析模型得到的输入参数值序列,以及预设交易规则模板,测试规则库可以向测试人员智能推荐更新后的测试规则库,即在原有测试规则库的基础上,增加全封户状态对应的各种信息,此状态对应的业务所属模块为核算会计、交易名称为应用分户余额汇总、交易码为
×××××
001、程序名称为a、测试规则编号为abc-yy71-004、测试规则名称及描述为08全封户余额汇总失败、测试覆盖项为批量汇入待入账信息表中,状态为08全封户余额不汇总、对应功能测试案例编号为abc-yy71-000003、测试规则状态为待确认状态、测试规则对应的更新时间为20220221。
71.本实施例中的上述技术方案,通过预设关联关系分析模型确定所述分支条件取值序列对应的输入参数值序列,提取输入参数值序列对应的测试规则更新内容,将测试规则
更新内容插入至预设交易规则模板中以对测试规则库进行更新,进一步实现自动化、定时化的程序分析闭环,使得测试人员可以依据规则模板的推荐对更新的代码进行对应规则的分析,减少错输、漏输规则的几率,加强测试工作的及时性和完整性,同时提升规则库资产质量。
72.在一实施例中,为便于更好的理解测试规则库更新方法,本实施例通过准备机器学习模型需要的数据,然后通过机器学习模型进行训练覆盖代码的分支覆盖条件取值序列与测试规则的历史输入参数值序列的映射关系,最后获取待测程序的分支条件取值序列,使用训练好的机器学习模型进行确定分支条件取值序列对应的输入参数值序列,最后根据输入参数值序列和预设交易规则模板生成测试规则以更新测试规则库,进行说明。本实施例可作为一个优选实施例对测试规则库更新方法进行进一步说明。
73.在本实施例中,通过“项目历史交易程序获取,已有测试案例-项目历史交易程序对应的程序分支-对应测试规则获取,程序分支-测试规则映射机器学习,定时捕捉待测程序的分支条件取值序列-智能推荐更新规则”的方式,实现了自动化、定时化的程序分析闭环,让测试人员可以根据分析结果,及时发现规则的变更,从而更新知识库,做到开发-测试敏捷循环,从程序上覆盖的更加完整,提升了项目干系人之间的沟通效率,提示规则库等资产质量。其中,上述的项目历史交易程序获取,已有测试案例-项目历史交易程序对应的程序分支-对应测试规则获取,程序分支-测试规则映射机器学习,是在获取相应的数据输入至机器学习模型进行机器学习的过程,上述的定时捕捉待测程序的分支条件取值序列-智能推荐更新规则是使用训练好的机器学习模型进行智能更新测试规则库的过程。下面只要分为两个方面对测试规则库更新方法进行进一步说明,一方面是训练过程的实现方案,一方面是使用训练好的预设关联关系分析模型进行确定获取待测程序的分支条件取值序列对应的输入参数值序列,以根据输入参数值序列和预设交易规则模板生成测试规则以更新测试规则库的实现方案。
74.在本实施例中,具体的训练过程的实现方案如下:
75.a1、通过代码版本管理工具,将项目测试相关交易的程序代码逐个获取,示例性的,获取了一段应用分户余额汇总的程序a。
76.a2、已有测试案例-项目历史交易程序对应的程序分支-对应测试规则获取:根据已有测试案例的历史执行情况,使用代码覆盖检测工具确定程序代码所覆盖的至少一个程序分支,确定已有测试案例与程序分支的映射关系,同时依据已有测试案例对应的测试用例编号找到已有测试案例对应预设测试规则库中的测试规则,以获取已有测试案例-至少一个程序分支-测试规则之间的映射关系。
77.示例性的,表一为应用分户余额汇总对应的程序分支的测试案例。上述应用分户余额汇总的程序a对应两个程序分支,针对分户的3种不同账户状态(01表示正常户、06表示睡眠户和00表示推荐户),交易结果有余额可汇总以及不可汇总两个程序分支(交易结果为1时表示余额可汇总,交易结果为0时,表示余额不可汇总),对应应用分户余额汇总对应的程序分支的测试案例如表一所示:
78.表一:应用分户余额汇总对应的程序分支的测试案例
[0079][0080]
表二为测试案例对应预设测试规则库中的测试规则。已有测试案例对应预设测试规则库中的测试规则如下:
[0081]
表二:测试案例对应预设测试规则库中的测试规则
[0082][0083]
a3、程序分支-测试规则映射机器学习模型进行训练:将已有交易对应的测试案例、测试规则中提取出的所有历史待更改交易,作为测试规则对应的历史输入参数值序列,然后根据交易已有测试案例的代码覆盖情况,以获取代码分支覆盖的条件取值序列,将历史输入参数值序列与覆盖代码的代码分支覆盖条件取值序列建立映射关系,将历史输入参数值序列与覆盖代码的代码分支覆盖条件取值序列建立映射关系使用机器学习模型进行模型训练,从而提取出输入参数与分支条件参数的关联关系模型作为预设关联关系分析模型,并放入测试规则知识库中。
[0084]
在本实施例中,具体的使用训练好的预设关联关系分析模型进行确定获取待测程序的分支条件取值序列对应的输入参数值序列,以根据输入参数值序列和预设交易规则模板生成测试规则以更新测试规则库的具体步骤如下:
[0085]
b1、定时捕捉更新代码:定时获取待测程序的分支条件取值序列。
[0086]
b2、根据待测程序的分支条件取值序列以及训练好的预设关联关系分析模型,反向生成交易的输入参数取值序列。
[0087]
b3、智能推荐更新规则:按照预设交易规则生成模板转化成测试规则描述,也即交易名称、交易码、程序名称、规则相关内容、对应案例、更新日期等内容,在测试规则库中进行推荐。提取输入参数值序列对应的测试规则更新内容;将测试规则更新内容插入至预设交易规则模板中以对测试规则库进行更新。
[0088]
b4、通过项目管理工具发出测试规则库对应的更新通知信息,使测试人员可以看到机器智能推荐的由于代码更新导致的规则更新,由测试人员再决定是否需要细化修改,辅助相关测试、业务人员更新相关文档,确认后补充至测试规则库的测试规则可以作为下次机器学习的材料,继续提升机器学习的完整性和精准度。
[0089]
示例性的,表三为应用分户余额汇总的程序a新增了一种账户状态,对测试规则库进行更新之后的表,此时根据机器学习结果,测试规则库可向测试人员智能推荐如表三的最后一行对应行:
[0090]
表三为应用分户余额汇总的程序a新增了一种账户状态,对测试规则库进行更新之后的表
[0091][0092]
在本实施例中,根据代码版本管理工具进行获取项目测试的历史交易相关程序,将系统已有测试案例使用代码覆盖检测工具,以获取已有案例与程序分支的映射关系,由于测试案例和测试规则是一一对应的关系,所以可以很便捷地提取测试规则与程序分支的对应关系的记录,然后对测试规则库中的已有测试规则与程序分支覆盖记录进行机器学习,以形成代码分支与测试规则映射的测试规则知识库。将预设交易规则模板内嵌在银行的项目管理工具中,每个系统维护一个规则库,通过定时捕捉开发人员上传的代码分支,获取待测程序的分支条件取值序列,使用训练好的预设关联关系分析模型进行智能地推荐,预设关联关系分析模型在测试规则知识库存放,由测试人员再决定是否准确,确认后补充至测试规则库的测试规则可以作为下次机器学习的训练数据集,继续提升机器学习的完整性和精准度。该方法减少了开发人员给测试人员讲代码的沟通成本,提高了测试规则知识库的时效性、完整性和智能化,让测试规则、文档梳理工作更加高效全面。
[0093]
在一实施例中,图3为本发明一实施例提供的一种测试规则库更新装置的结构框图,该装置适用于对测试规则库进行智能自动更新时的情况,该装置可以由硬件/软件实
现。可配置于电子设备中来实现本发明实施例中的一种测试规则库更新方法。如图3所示,该装置包括:获取模块310、确定模块320以及更新模块330。
[0094]
其中,获取模块310,用于获取待测程序的分支条件取值序列;
[0095]
确定模块320,用于根据预设关联关系分析模型确定所述分支条件取值序列对应的输入参数值序列,其中,所述预设关联关系分析模型基于包含历史输入参数值序列和程序分支条件取值序列的训练集生成;
[0096]
更新模块330,用于根据所述输入参数值序列和预设交易规则模板生成测试规则以更新测试规则库。
[0097]
本发明实施例,确定模块,通过预设关联关系分析模型,以确定分支条件取值序列对应的输入参数值序列,更新模块,以根据输入参数值序列和预设交易规则模板生成测试规则以更新测试规则库,实现自动化、定时化的程序分析闭环,使得测试人员可以依据规则模板的推荐对更新的代码进行对应规则的分析,减少错输、漏输规则的几率,加强测试工作的及时性和完整性,同时提升规则库资产质量。
[0098]
在一实施例中,所述模块,还包括:
[0099]
通知模块,用于所述在根据所述输入参数值序列和预设交易规则模板生成测试规则以更新测试规则库之后,依据项目管理工具发出所述测试规则库对应的更新通知信息,以智能推荐更新后的新测试规则库;
[0100]
修改模块,用于对所述新测试规则库进行智能化显示,以使测试人员对所述新测试规则库进行细化修改。
[0101]
在一实施例中,所述预设交易规则模板中的内容包括下述至少之一:业务所属模块、交易名称、交易码、程序名称、测试规则编号、测试规则名称及描述、测试覆盖项、对应功能测试案例编号、测试规则状态、测试规则对应的更新时间。
[0102]
在一实施例中,获取模块310,包括:
[0103]
获取单元,用于实时或定时方式捕捉上传的待测程序分支;
[0104]
提取单元,用于提取所述待测程序分支中对应的条件取值序列作为所述待测程序分支条件取值序列。
[0105]
在一实施例中,更新模块330,包括:
[0106]
第一更新单元,用于提取所述输入参数值序列对应的测试规则更新内容;
[0107]
第二更新单元,用于将所述测试规则更新内容插入至所述预设交易规则模板中以对测试规则库进行更新。
[0108]
在一实施例中,所述预设关联关系分析模型的训练过程,包括:
[0109]
提取训练集中历史项目测试交易对应的程序代码;
[0110]
依据预设代码覆盖检测工具确定所述程序代码所覆盖的至少一个程序分支,其中,所述程序分支中至少包括所述历史项目测试交易对应的状态参数、交易结果参数;
[0111]
提取与所述程序分支匹配的预配置测试案例;
[0112]
在预设测试规则库查找与所述预配置测试案例对应的测试规则;
[0113]
按照所述测试规则的历史输入参数值序列和所述程序分支的程序分支条件取值序列训练预设机器学习模型作为所述关联关系模型。
[0114]
本发明实施例所提供的测试规则库更新装置可执行本发明任意实施例所提供的
测试规则库更新方法,具备执行方法相应的功能模块和有益效果。
[0115]
在一实施例中,图4为本发明实施例提供的一种电子设备的结构示意图。电子设备10旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
[0116]
如图4所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(rom)12、随机访问存储器(ram)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(rom)12中的计算机程序或者从存储单元18加载到随机访问存储器(ram)13中的计算机程序,来执行各种适当的动作和处理。在ram 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、rom 12以及ram 13通过总线14彼此相连。输入/输出(i/o)接口15也连接至总线14。
[0117]
电子设备10中的多个部件连接至i/o接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0118]
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如测试规则库更新方法。
[0119]
在一些实施例中,测试规则库更新方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由rom 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到ram 13并由处理器11执行时,可以执行上文描述的测试规则库更新方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行测试规则库更新方法。
[0120]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0121]
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程测试规则库更新装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/
操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0122]
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0123]
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0124]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、区块链网络和互联网。
[0125]
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。
[0126]
计算机程序产品在实现的过程中,可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言,诸如java、smalltalk、c++,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0127]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
[0128]
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1