CN116737597B - 测试用例处理方法、系统与存储介质 - Google Patents
测试用例处理方法、系统与存储介质 Download PDFInfo
- Publication number
- CN116737597B CN116737597B CN202311003236.6A CN202311003236A CN116737597B CN 116737597 B CN116737597 B CN 116737597B CN 202311003236 A CN202311003236 A CN 202311003236A CN 116737597 B CN116737597 B CN 116737597B
- Authority
- CN
- China
- Prior art keywords
- software system
- determining
- historical
- function
- update
- 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
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 134
- 238000003672 processing method Methods 0.000 title claims abstract description 23
- 238000011156 evaluation Methods 0.000 claims abstract description 134
- 238000000034 method Methods 0.000 claims abstract description 29
- 230000006870 function Effects 0.000 claims description 204
- 230000008571 general function Effects 0.000 claims description 36
- 238000012545 processing Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 14
- 238000012937 correction Methods 0.000 claims description 11
- 238000012550 audit Methods 0.000 claims 1
- 238000013528 artificial neural network Methods 0.000 description 12
- 238000012549 training Methods 0.000 description 9
- 230000002068 genetic effect Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000035772 mutation Effects 0.000 description 5
- 238000012216 screening Methods 0.000 description 3
- 210000000349 chromosome Anatomy 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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
- 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/3688—Test 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
技术领域
本发明属于程序测试技术领域,尤其涉及一种测试用例处理方法、系统与存储介质。
背景技术
为了满足用户的线上的授信申请和审批的需要,授信管理机构提供了各种类型的线上申请以及审批系统以满足管理需求,但是在软件系统上线之前,为了保证软件系统的运行的安全性和可靠性,需要采用各种的测试用例对软件系统进行测试,因此如何根据软件系统的实际情况,实现对测试用例的筛选和处理成为亟待解决的技术问题。
为了实现对测试用例的筛选和处理,在发明专利《一种全功能测试用例集合获取方法和系统》中通过分析测试用例集合的覆盖范围;在测试用例集合中的所有测试用例全部通过并且测试用例集合的覆盖范围达到设定范围时,将测试用例集合作为全功能测试用例集合,实现了全功能测试用例的准确筛选,但是却存在以下问题:
忽视了根据系统的模块或者功能的数量或者代码量等数据进行测试用例的数量的确定,具体的,对于软件系统的模块数量或者功能数量较多时,或者核心模块的数量较多时,若不能针对性的进行测试用例的数量的动态调整,则有可能无法得到准确的软件测试结果。
忽视了根据软件系统的单一模块的历史使用人数或者历史报错情况等数据进行测试用例的数量的确定,具体的,对于历史使用人数较多或者历史报错情况较严重的模块,一旦出现故障的影响人数较多,同时再次出现故障的可能性也较大,因此若不能针对性的进行测试用例的数量的动态调整,则同样有可能无法得到准确的软件测试结果。
针对上述技术问题,本发明提供了一种测试用例处理方法、系统与存储介质。
发明内容
为实现本发明目的,本发明采用如下技术方案:
根据本发明的一个方面,提供了一种测试用例处理方法。
一种测试用例处理方法,其特征在于,具体包括:
S11至少通过所述软件系统的代码量、历史报错情况、更新功能数量以及历史使用人数进行所述软件系统的测试用例的设定数量的确定,并根据所述软件系统的功能模块的数量确定所述设定数量是否满足要求,若否,则进入下一步骤;
S12根据所述软件系统的功能模块的历史使用情况进行所述功能模块的历史报错情况以及历史使用人数的确定,并结合所述功能模块的历史使用次数进行所述功能模块的评估值以及核心功能模块的确定,并根据所述核心功能模块的数量以及评估值确定所述设定数量是否满足要求,若是,则进入下一步骤,若否,则进入步骤S14;
S13根据所述软件系统的功能模块的更新情况进行更新功能模块的确定,并通过所述更新功能模块的数量、类型、更新情况进行更新评估值的确定,并根据所述更新评估值确定所述设定数量是否满足要求,若是,则通过所述功能模块的数量对所述设定数量进行修正得到测试用例的数量,若否,则进入步骤S14;
S14通过所述更新评估值、所述核心功能模块的数量以及评估值进行测试用例的补偿数量的确定,并根据补偿数量以及所述设定数量进行测试用例的数量的确定。
进一步的技术方案在于,所述软件系统的历史报错情况包括但不限于历史报错类型以及不同的历史报错类型的数量。
进一步的技术方案在于,所述软件系统的测试用例的设定数量的确定的方法为:
S21根据所述软件系统的代码量以及所述软件系统的历史使用人数,并结合所述软件系统的处理业务类型进行所述软件系统的测试用例的初始数量的确定;
S22获取所述软件系统的更新功能数量,并通过所述软件系统的更新功能数量确定所述软件系统的测试用例的初始数量是否满足要求,若是,则进入步骤S23,若否,则进入步骤S24;
S23根据所述软件系统的历史报错情况进行所述软件系统的历史报错类型以及不同的历史报错类型的次数的确定,并结合所述软件系统的历史报错类型的数量进行所述软件系统的历史问题评估值的确定,并通过所述软件系统的历史问题评估值确定所述软件系统的测试用例的初始数量是否满足要求,若是,则通过所述软件系统的测试用例的初始数量进行所述软件系统的测试用例的设定数量的确定,若否,则进入步骤S24;
S24根据所述软件系统的更新功能数量以及不同的更新功能的代码量、历史问题评估值进行修正量的确定,并根据所述修正量以及所述初始数量进行所述软件系统的测试用例的设定数量的确定。
进一步的技术方案在于,所述软件系统的处理业务类型包括但不限于授信申请、授信审核、授信数据处理、征信数据获取。
进一步的技术方案在于,所述更新评估值的确定的方法为:
S61获取所述更新功能模块的数量,并根据所述更新功能模块的数量确定所述设定数量是否满足要求,若是,则进入步骤S62,若否,则进入步骤S63;
S62根据所述更新功能模块的类型进行所述更新功能模块中的核心功能模块的确定,并根据所述更新功能模块中的核心功能模块的数量确定所述设定数量是否满足要求,若是,则确定所述设定数量满足要求,通过所述功能模块的数量对所述设定数量进行修正得到测试用例的数量,若否,则进入步骤S63;
S63通过所述更新功能模块中的一般功能模块的更新情况进行所述更新功能模块中的一般功能模块的功能更新率的确定,并根据所述更新功能模块中的一般功能模块的数量和功能更新率进行所述更新功能模块中的一般功能模块的更新程度评估量的确定;
S64通过所述更新功能模块中的核心功能模块的更新情况进行所述更新功能模块中的核心功能模块的功能更新率的确定,并根据所述更新功能模块中的核心功能模块的数量和功能更新率进行所述更新功能模块中的核心功能模块的更新程度评估量的确定,并通过所述更新功能模块中的核心功能模块的更新程度评估量、更新功能模块中的一般功能模块的更新程度评估量以及所述更新功能模块的数量和在所述功能模块中的占比进行所述更新评估值的确定。
进一步的技术方案在于,所述一般功能模块的功能更新率的确定的方法为:
当所述一般功能模块的更新功能的数量大于预设功能数量时,则确定所述一般功能模块的功能更新率为1;
当所述一般功能模块的更新功能的数量不大于预设功能数量时,则通过所述一般功能模块的更新功能的数量与所述一般功能模块的所有功能的数量的比值进行所述一般功能模块的功能更新率的确定。
第二方面,本发明提供了一种计算机系统,包括:通信连接的存储器和处理器,以及存储在所述存储器上并能够在所述处理器上运行的计算机程序,其特征在于:所述处理器运行所述计算机程序时执行上述的一种测试用例处理方法。
第三方面,本申请实施例中提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述的一种测试用例处理方法。
本发明的有益效果在于:
通过所述软件系统的代码量、历史报错情况、更新功能数量以及历史使用人数进行所述软件系统的测试用例的设定数量的确定,从而实现了从使用情况、代码量、问题情况以及更新情况多个方面对测试用例的设定数量的确定,既保证了软件系统的测试的可靠性,同时也避免了由于测试用例的数量较多导致的测试效率较差的技术问题。
根据功能模块的历史报错情况、历史使用人、历史使用次数进行所述功能模块的评估值以及核心功能模块的确定,从而实现了从软件系统的不同的功能模块的历史数据实现了对功能模块的划分,保证了功能模块较为复杂的软件系统的测试的准确性。
通过所述更新功能模块的数量、类型、更新情况进行更新评估值的确定,从而实现了从软件系统的功能模块的角度出发实现了对软件系统的更新情况的确定,既保证了更新情况较为复杂的软件系统的测试的准确性,同时也实现了对不同的功能模块的差异化评估。
通过所述更新评估值、所述核心功能模块的数量以及评估值进行测试用例的补偿数量的确定,实现了从功能模块的角度实现了对测试用例的数量的准确修正,保证了软件系统的测试的准确性和可靠性。
其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
通过参照附图详细描述其示例实施方式,本发明的上述和其它特征及优点将变得更加明显;
图1是一种测试用例处理方法的流程图;
图2是软件系统的测试用例的设定数量的确定的方法的流程图;
图3是软件系统的历史问题评估值的确定的方法的流程图;
图4是功能模块的评估值的确定的具体步骤的流程图;
图5是更新评估值的确定的方法的流程图;
图6是一般功能模块的功能更新率的确定的方法流程图;
图7是一种计算机系统的框架图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
为解决上述问题,根据本发明的一个方面,如图1所示,提供了根据本发明的一个方面,提供了一种测试用例处理方法,其特征在于,具体包括:
S11至少通过所述软件系统的代码量、历史报错情况、更新功能数量以及历史使用人数进行所述软件系统的测试用例的设定数量的确定,并根据所述软件系统的功能模块的数量确定所述设定数量是否满足要求,若否,则进入下一步骤;
在本实施例中,通过对软件系统的设定数量的确定,从而实现了软件系统的测试用例的基础数量的确定,同时通过对功能模块的数量确定设定数量是否满足要求,一般来说,功能模块的数量越多,则软件系统越复杂,因此需要更多的测试用例的数量,当设定数量满足要求时,则无须进行进一步的评估,直接将设定数量作为软件系统的测试用例的数量。
可以理解的是,所述软件系统的历史报错情况包括但不限于历史报错类型以及不同的历史报错类型的数量。
不同的历史报错类型,其错误程度不一样,同时在进行测试时需要综合历史报错数据进行差异化的测试用例的数量的确定,从而保证了软件系统的测试的准确性。
具体的举例说明,如图2所示,所述软件系统的测试用例的设定数量的确定的方法为:
S21根据所述软件系统的代码量以及所述软件系统的历史使用人数,并结合所述软件系统的处理业务类型进行所述软件系统的测试用例的初始数量的确定;
需要说明的是,测试用例的初始数量可以根据软件系统的测试用例的历史数量作为基准,并根据软件系统的历史使用人数的变动情况进行软件系统的初始数量的确定。
S22获取所述软件系统的更新功能数量,并通过所述软件系统的更新功能数量确定所述软件系统的测试用例的初始数量是否满足要求,若是,则进入步骤S23,若否,则进入步骤S24;
当更新功能数量较少时,此时软件系统的测试用例的初始数量满足要求,具体的可以根据软件系统的代码量进行动态的阈值的确定,并当更新功能数量大于设定好的动态的阈值,则此时说明软件系统的测试用例的初始数量无法满足要求。
S23根据所述软件系统的历史报错情况进行所述软件系统的历史报错类型以及不同的历史报错类型的次数的确定,并结合所述软件系统的历史报错类型的数量进行所述软件系统的历史问题评估值的确定,并通过所述软件系统的历史问题评估值确定所述软件系统的测试用例的初始数量是否满足要求,若是,则通过所述软件系统的测试用例的初始数量进行所述软件系统的测试用例的设定数量的确定,若否,则进入步骤S24;
S24根据所述软件系统的更新功能数量以及不同的更新功能的代码量、历史问题评估值进行修正量的确定,并根据所述修正量以及所述初始数量进行所述软件系统的测试用例的设定数量的确定。
具体的,所述软件系统的测试用例的设定数量采用GA-BP神经网络的预测模型进行确定,其中所述预测模型的训练步骤为:
(1)数据预处理:对数据进行清洗、归一化等处理,主要将软件系统的更新功能数量以及不同的更新功能的代码量、历史问题评估值进行归一化处理,以便于神经网络的训练;
(2)遗传算法初始化:根据问题的特点,设置遗传算法的初始种群大小、交叉概率、变异概率等参数,生成初始的个体群体;
(3)神经网络初始化:设计神经网络的拓扑结构,输入进行训练的样本,软件系统的更新功能数量以及不同的更新功能的代码量、历史问题评估值等数据、训练BP网络,将所获得结果与实际需要的修正量比对、隐藏层的节点数和连接权重,随机初始化权重参数;
(4)遗传算法与神经网络的交叉和变异:使用遗传算法对个体进行交叉和变异操作,以产生新的个体群体;
(5)神经网络训练:使用 BP 算法对神经网络进行训练,调整权重参数,以使神经网络输出的结果与期望结果尽可能接近;
(6)适应度函数设计:将神经网络的训练误差作为个体的适应度,用于遗传算法的个体选择、交叉和变异;
(7)重复执行步骤 4-6,直到达到预定的停止条件(如达到最大迭代次数、达到一定的精度等);
(8)输出结果:输出训练好的神经网络,从而进行修正量的确定。
需要说明的是,遗传算法的初始化基础参数是至关重要的,它们包含进化代数、群体规模、交叉几率和突变几率等,这些基础参量都是遗传性神经网络中必不可少的。为了有效地利用神经网络中的权重和阈值,我们需要将进入层和隐藏层相互之间的权重、门槛进行实数编码,实现优化过程。
采用遗传算法来优化 BP 神经网络模型,其中适应度函数方式的目的是定义一种最佳的个体,这一过程包含三个重要过程:筛选、交错和突变。为了实现这一目标,我们采用了轮盘赌随机选择方式,即将所有个人的适应性比率反映在一个个圆盘上,适应性越高,则该个人所占地位也越多,从而提高被选择的几率。通过交错和突变,遗传算法可以将染色体编码转换为不同的群体,并通过预先设定的进化次数来获得最优的染色体,反编码则可以获得最早期权重和阈值,这些信息被交给 BP 神经网络,从而实现相应的培训和检测。
为了达到最佳性能,本发明用了3-9-1的网络结构,并将目标误差值设置为0.001,最高训练次数为一千次。
需要说明的是,所述软件系统的处理业务类型包括但不限于授信申请、授信审核、授信数据处理、征信数据获取。
具体的举例说明,如图3所示,所述软件系统的历史问题评估值的确定的方法为:
S31根据所述软件系统的历史报错情况进行所述软件系统的历史报错次数的确定,并根据所述软件系统的历史报错次数确定所述软件系统的测试用例的初始数量是否满足要求,若是,则通过所述软件系统的测试用例的初始数量进行所述软件系统的测试用例的设定数量的确定,若否,则进入步骤S32;
需要说明的是,当软件系统的历史报错次数较少时,此时则无须进行进一步的评估,直接确定软件系统的测试用例的初始数量即满足要求。
S32根据所述软件系统的历史报错类型的数量确定所述历史问题评估值是否需要进行所述软件系统的历史报错类型的考虑,若是,则进入步骤S34,若否,则进入步骤S33;
S33根据所述软件系统的历史报错类型进行所述软件系统的历史报错类型的问题严重程度的确定,并根据所述历史报错类型的问题严重程度确定是否存在严重问题报错类型,若是,则进入步骤S34,若否,则通过所述软件系统的历史报错次数进行所述软件系统的历史问题评估值的确定;
S34根据所述软件系统的历史报错类型的问题严重程度将所述软件系统的历史报错类型划分为严重问题报错类型和一般问题报错类型,并根据所述严重问题报错类型的数量以及不同的严重问题报错类型的次数,并结合所述严重问题报错类型的问题严重程度进行所述软件系统的严重问题提评估量的确定;
S35根据所述一般问题报错类型的数量以及不同的一般问题报错类型的次数,并结合所述一般问题报错类型的问题严重程度进行所述软件系统的一般问题评估量的确定,并根据所述软件系统的一般问题评估量、严重问题提评估量以及所述历史报错次数进行所述软件系统的历史问题评估值的确定。
可以理解的是,所述软件系统的历史问题评估值的取值范围在0到1之间,其中所述软件系统的历史问题评估值越大,则所述软件系统的测试用例的设定数量越大。
在本实施例中,通过所述软件系统的代码量、历史报错情况、更新功能数量以及历史使用人数进行所述软件系统的测试用例的设定数量的确定,从而实现了从使用情况、代码量、问题情况以及更新情况多个方面对测试用例的设定数量的确定,既保证了软件系统的测试的可靠性,同时也避免了由于测试用例的数量较多导致的测试效率较差的技术问题。
S12根据所述软件系统的功能模块的历史使用情况进行所述功能模块的历史报错情况以及历史使用人数的确定,并结合所述功能模块的历史使用次数进行所述功能模块的评估值以及核心功能模块的确定,并根据所述核心功能模块的数量以及评估值确定所述设定数量是否满足要求,若是,则进入下一步骤,若否,则进入步骤S14;
具体的,如图4所示,所述功能模块的评估值的确定的具体步骤为:
S41根据所述软件系统的功能模块的历史报错情况进行所述功能模块的历史报错次数的确定,并根据所述功能模块的历史报错次数确定所述功能模块是否为核心功能模块,若是,则进入步骤S44,若否,则进入步骤S42;
S42根据所述软件系统的功能模块的历史使用人数确定所述功能模块是否为核心功能模块,若是,则进入步骤S44,若否,则进入步骤S43;
S43根据所述软件系统的功能模块的历史使用人数以及历史使用次数进行所述功能模块的使用频繁度的确定,并根据所述使用频繁度确定所述功能模块是否为核心功能模块,若是,则进入步骤S44,若否,则确定所述功能模块不属于核心功能模块,并根据所述功能模块的使用频繁度进行所述功能模块的评估值的确定;
S44确定所述功能模块属于核心功能模块,并根据所述功能模块的使用频繁度、历史报错次数以及所述功能模块在最近的设定时间内的历史报错次数进行所述功能模块的评估值的确定。
需要说明的是,根据所述核心功能模块的数量以及评估值确定所述设定数量是否满足要求,具体包括:
S51获取所述核心功能模块的数量,并根据所述核心功能模块的数量确定所述设定数量是否满足要求,若是,则进入下一步骤,若否,则确定所述设定数量无法满足要求;
S52获取所述核心功能模块的评估值,并根据所述核心功能模块的评估值的最大值确定所述设定数量是否满足要求,若是,则进入步骤S54,若是,则进入下一步骤;
S53将所述软件系统除去所述核心功能模块的功能模块作为其它功能模块,并根据所述其它功能模块的数量以及评估值进行所述其它功能模块的评估值的数量和的确定,根据所述核心功能模块的数量以及评估值进行所述核心功能模块的评估值的数量和的确定,根据所述其它功能模块的评估值的数量和以及所述核心功能模块的评估值的数量和确定所述设定数量是否满足要求,若是,则确定所述设定数量满足要求,若否,则进入下一步骤;
S54通过所述核心功能模块的数量以及评估值进行所述核心功能模块的安全评估值的确定,根据所述其它功能模块的数量以及评估值进行所述其它功能模块的安全评估值的确定,并根据所述核心功能模块的安全评估值以及所述其它功能模块的安全评估值确定所述设定数量是否满足要求。
在本实施例中,根据功能模块的历史报错情况、历史使用人、历史使用次数进行所述功能模块的评估值以及核心功能模块的确定,从而实现了从软件系统的不同的功能模块的历史数据实现了对功能模块的划分,保证了功能模块较为复杂的软件系统的测试的准确性。
S13根据所述软件系统的功能模块的更新情况进行更新功能模块的确定,并通过所述更新功能模块的数量、类型、更新情况进行更新评估值的确定,并根据所述更新评估值确定所述设定数量是否满足要求,若是,则通过所述功能模块的数量对所述设定数量进行修正得到测试用例的数量,若否,则进入步骤S14;
具体的举例说明,如图5所示,所述更新评估值的确定的方法为:
S61获取所述更新功能模块的数量,并根据所述更新功能模块的数量确定所述设定数量是否满足要求,若是,则进入步骤S62,若否,则进入步骤S63;
S62根据所述更新功能模块的类型进行所述更新功能模块中的核心功能模块的确定,并根据所述更新功能模块中的核心功能模块的数量确定所述设定数量是否满足要求,若是,则确定所述设定数量满足要求,通过所述功能模块的数量对所述设定数量进行修正得到测试用例的数量,若否,则进入步骤S63;
S63通过所述更新功能模块中的一般功能模块的更新情况进行所述更新功能模块中的一般功能模块的功能更新率的确定,并根据所述更新功能模块中的一般功能模块的数量和功能更新率进行所述更新功能模块中的一般功能模块的更新程度评估量的确定;
S64通过所述更新功能模块中的核心功能模块的更新情况进行所述更新功能模块中的核心功能模块的功能更新率的确定,并根据所述更新功能模块中的核心功能模块的数量和功能更新率进行所述更新功能模块中的核心功能模块的更新程度评估量的确定,并通过所述更新功能模块中的核心功能模块的更新程度评估量、更新功能模块中的一般功能模块的更新程度评估量以及所述更新功能模块的数量和在所述功能模块中的占比进行所述更新评估值的确定。
具体的,如图6所示,所述一般功能模块的功能更新率的确定的方法为:
当所述一般功能模块的更新功能的数量大于预设功能数量时,则确定所述一般功能模块的功能更新率为1;
当所述一般功能模块的更新功能的数量不大于预设功能数量时,则通过所述一般功能模块的更新功能的数量与所述一般功能模块的所有功能的数量的比值进行所述一般功能模块的功能更新率的确定。
在本实施例中,通过所述更新功能模块的数量、类型、更新情况进行更新评估值的确定,从而实现了从软件系统的功能模块的角度出发实现了对软件系统的更新情况的确定,既保证了更新情况较为复杂的软件系统的测试的准确性,同时也实现了对不同的功能模块的差异化评估。
S14通过所述更新评估值、所述核心功能模块的数量以及评估值进行测试用例的补偿数量的确定,并根据补偿数量以及所述设定数量进行测试用例的数量的确定。
需要说明的是,补偿数量跟更新评估值以及所述核心功能模块的数量以及评估值相关,其中更新评估值越大,核心功能模块的数量越多以及核心功能模块的评估值越大,则此时测试用例的补偿数量越多。
在本实施例中,通过所述更新评估值、所述核心功能模块的数量以及评估值进行测试用例的补偿数量的确定,实现了从功能模块的角度实现了对测试用例的数量的准确修正,保证了软件系统的测试的准确性和可靠性。
另一方面,如图7所示,本发明提供了一种计算机系统,包括:通信连接的存储器和处理器,以及存储在所述存储器上并能够在所述处理器上运行的计算机程序,其特征在于:所述处理器运行所述计算机程序时执行上述的一种测试用例处理方法。
其中上述的一种测试用例处理方法的实现方式为:
根据软件系统的代码量以及所述软件系统的历史使用人数,并结合所述软件系统的处理业务类型进行所述软件系统的测试用例的初始数量的确定;
获取所述软件系统的更新功能数量,并通过所述软件系统的更新功能数量确定所述软件系统的测试用例的初始数量满足要求时,进入下一步骤;
根据所述软件系统的历史报错情况进行所述软件系统的历史报错类型以及不同的历史报错类型的次数的确定,并结合所述软件系统的历史报错类型的数量进行所述软件系统的历史问题评估值的确定;
根据所述软件系统的更新功能数量以及不同的更新功能的代码量、历史问题评估值进行修正量的确定,并根据所述修正量以及所述初始数量进行所述软件系统的测试用例的设定数量的确定,并根据所述软件系统的功能模块的数量确定所述设定数量是否满足要求,若否,则进入下一步骤;
根据所述软件系统的功能模块的历史使用情况进行所述功能模块的历史报错情况以及历史使用人数的确定,并结合所述功能模块的历史使用次数进行所述功能模块的评估值以及核心功能模块的确定,并根据所述核心功能模块的数量以及评估值确定所述设定数量不满足要求时,进入下一步骤;
根据所述软件系统的功能模块的更新情况进行更新功能模块的确定,并通过所述更新功能模块的数量、类型、更新情况进行更新评估值的确定;
通过所述更新评估值、所述核心功能模块的数量以及评估值进行测试用例的补偿数量的确定,并根据补偿数量以及所述设定数量进行测试用例的数量的确定。
另一方面,本申请实施例中提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述的一种测试用例处理方法。
其中上述的一种测试用例处理方法的实现方式为:
至少通过软件系统的代码量、历史报错情况、更新功能数量以及历史使用人数进行所述软件系统的测试用例的设定数量的确定,并根据所述软件系统的功能模块的数量确定所述设定数量不满足要求时,进入下一步骤;
根据所述软件系统的功能模块的历史使用情况进行所述功能模块的历史报错情况以及历史使用人数的确定,并结合所述功能模块的历史使用次数进行所述功能模块的评估值以及核心功能模块的确定;
获取所述核心功能模块的数量,并根据所述核心功能模块的数量确定所述设定数量满足要求时,进入下一步骤;
获取所述核心功能模块的评估值,并根据所述核心功能模块的评估值的最大值确定所述设定数量满足要求时,进入下一步骤;
将所述软件系统除去所述核心功能模块的功能模块作为其它功能模块,并根据所述其它功能模块的数量以及评估值进行所述其它功能模块的评估值的数量和的确定,根据所述核心功能模块的数量以及评估值进行所述核心功能模块的评估值的数量和的确定,根据所述其它功能模块的评估值的数量和以及所述核心功能模块的评估值的数量和确定所述设定数量不满足要求时,进入下一步骤;
通过所述核心功能模块的数量以及评估值进行所述核心功能模块的安全评估值的确定,根据所述其它功能模块的数量以及评估值进行所述其它功能模块的安全评估值的确定,并根据所述核心功能模块的安全评估值以及所述其它功能模块的安全评估值确定所述设定数量是否满足要求,并当所述设定数量不满足要求时,进入下一步骤;
根据所述软件系统的功能模块的更新情况进行更新功能模块的确定,并通过所述更新功能模块的数量、类型、更新情况进行更新评估值的确定;
通过所述更新评估值、所述核心功能模块的数量以及评估值进行测试用例的补偿数量的确定,并根据补偿数量以及所述设定数量进行测试用例的数量的确定。
具体的,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以 通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可 包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM (PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括 随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得, 诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强 型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM (RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、非易失性计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统和方法,也可以通过其它的方式实现。以上所描述的系统实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。
Claims (11)
1.一种测试用例处理方法,其特征在于,具体包括:
S11至少通过软件系统的代码量、历史报错情况、更新功能数量以及历史使用人数进行所述软件系统的测试用例的设定数量的确定,并根据所述软件系统的功能模块的数量确定所述设定数量是否满足要求,若否,则进入下一步骤;
S12根据所述软件系统的功能模块的历史使用情况进行所述功能模块的历史报错情况以及历史使用人数的确定,并结合所述功能模块的历史使用次数进行所述功能模块的评估值以及核心功能模块的确定,并根据所述核心功能模块的数量以及评估值确定所述设定数量是否满足要求,若是,则进入下一步骤,若否,则进入步骤S14;
S13根据所述软件系统的功能模块的更新情况进行更新功能模块的确定,并通过所述更新功能模块的数量、类型、更新情况进行更新评估值的确定,并根据所述更新评估值确定所述设定数量是否满足要求,若是,则通过所述功能模块的数量对所述设定数量进行修正得到测试用例的数量,若否,则进入步骤S14;
S14通过所述更新评估值、所述核心功能模块的数量以及评估值进行测试用例的补偿数量的确定,并根据补偿数量以及所述设定数量进行测试用例的数量的确定。
2.如权利要求1所述的一种测试用例处理方法,其特征在于,所述软件系统的历史报错情况包括但不限于历史报错类型以及不同的历史报错类型的数量。
3.如权利要求1所述的一种测试用例处理方法,其特征在于,所述软件系统的测试用例的设定数量的确定的方法为:
S21根据所述软件系统的代码量以及所述软件系统的历史使用人数,并结合所述软件系统的处理业务类型进行所述软件系统的测试用例的初始数量的确定;
S22获取所述软件系统的更新功能数量,并通过所述软件系统的更新功能数量确定所述软件系统的测试用例的初始数量是否满足要求,若是,则进入步骤S23,若否,则进入步骤S24;
S23根据所述软件系统的历史报错情况进行所述软件系统的历史报错类型以及不同的历史报错类型的次数的确定,并结合所述软件系统的历史报错类型的数量进行所述软件系统的历史问题评估值的确定,并通过所述软件系统的历史问题评估值确定所述软件系统的测试用例的初始数量是否满足要求,若是,则通过所述软件系统的测试用例的初始数量进行所述软件系统的测试用例的设定数量的确定,若否,则进入步骤S24;
S24根据所述软件系统的更新功能数量以及不同的更新功能的代码量、历史问题评估值进行修正量的确定,并根据所述修正量以及所述初始数量进行所述软件系统的测试用例的设定数量的确定。
4.如权利要求3所述的一种测试用例处理方法,其特征在于,所述软件系统的处理业务类型包括但不限于授信申请、授信审核、授信数据处理、征信数据获取。
5.如权利要求3所述的一种测试用例处理方法,其特征在于,所述软件系统的历史问题评估值的确定的方法为:
S31根据所述软件系统的历史报错情况进行所述软件系统的历史报错次数的确定,并根据所述软件系统的历史报错次数确定所述软件系统的测试用例的初始数量是否满足要求,若是,则通过所述软件系统的测试用例的初始数量进行所述软件系统的测试用例的设定数量的确定,若否,则进入步骤S32;
S32根据所述软件系统的历史报错类型的数量确定所述历史问题评估值是否需要进行所述软件系统的历史报错类型的考虑,若是,则进入步骤S34,若否,则进入步骤S33;
S33根据所述软件系统的历史报错类型进行所述软件系统的历史报错类型的问题严重程度的确定,并根据所述历史报错类型的问题严重程度确定是否存在严重问题报错类型,若是,则进入步骤S34,若否,则通过所述软件系统的历史报错次数进行所述软件系统的历史问题评估值的确定;
S34根据所述软件系统的历史报错类型的问题严重程度将所述软件系统的历史报错类型划分为严重问题报错类型和一般问题报错类型,并根据所述严重问题报错类型的数量以及不同的严重问题报错类型的次数,并结合所述严重问题报错类型的问题严重程度进行所述软件系统的严重问题提评估量的确定;
S35根据所述一般问题报错类型的数量以及不同的一般问题报错类型的次数,并结合所述一般问题报错类型的问题严重程度进行所述软件系统的一般问题评估量的确定,并根据所述软件系统的一般问题评估量、严重问题提评估量以及所述历史报错次数进行所述软件系统的历史问题评估值的确定。
6.如权利要求5所述的一种测试用例处理方法,其特征在于,所述软件系统的历史问题评估值的取值范围在0到1之间,其中所述软件系统的历史问题评估值越大,则所述软件系统的测试用例的设定数量越大。
7.如权利要求1所述的一种测试用例处理方法,其特征在于,所述功能模块的评估值的确定的具体步骤为:
S41根据所述软件系统的功能模块的历史报错情况进行所述功能模块的历史报错次数的确定,并根据所述功能模块的历史报错次数确定所述功能模块是否为核心功能模块,若是,则进入步骤S44,若否,则进入步骤S42;
S42根据所述软件系统的功能模块的历史使用人数确定所述功能模块是否为核心功能模块,若是,则进入步骤S44,若否,则进入步骤S43;
S43根据所述软件系统的功能模块的历史使用人数以及历史使用次数进行所述功能模块的使用频繁度的确定,并根据所述使用频繁度确定所述功能模块是否为核心功能模块,若是,则进入步骤S44,若否,则确定所述功能模块不属于核心功能模块,并根据所述功能模块的使用频繁度进行所述功能模块的评估值的确定;
S44确定所述功能模块属于核心功能模块,并根据所述功能模块的使用频繁度、历史报错次数以及所述功能模块在最近的设定时间内的历史报错次数进行所述功能模块的评估值的确定。
8.如权利要求1所述的一种测试用例处理方法,其特征在于,所述更新评估值的确定的方法为:
S61获取所述更新功能模块的数量,并根据所述更新功能模块的数量确定所述设定数量是否满足要求,若是,则进入步骤S62,若否,则进入步骤S63;
S62根据所述更新功能模块的类型进行所述更新功能模块中的核心功能模块的确定,并根据所述更新功能模块中的核心功能模块的数量确定所述设定数量是否满足要求,若是,则确定所述设定数量满足要求,通过所述功能模块的数量对所述设定数量进行修正得到测试用例的数量,若否,则进入步骤S63;
S63通过所述更新功能模块中的一般功能模块的更新情况进行所述更新功能模块中的一般功能模块的功能更新率的确定,并根据所述更新功能模块中的一般功能模块的数量和功能更新率进行所述更新功能模块中的一般功能模块的更新程度评估量的确定;
S64通过所述更新功能模块中的核心功能模块的更新情况进行所述更新功能模块中的核心功能模块的功能更新率的确定,并根据所述更新功能模块中的核心功能模块的数量和功能更新率进行所述更新功能模块中的核心功能模块的更新程度评估量的确定,并通过所述更新功能模块中的核心功能模块的更新程度评估量、更新功能模块中的一般功能模块的更新程度评估量以及所述更新功能模块的数量和在所述功能模块中的占比进行所述更新评估值的确定。
9.如权利要求8所述的一种测试用例处理方法,其特征在于,所述一般功能模块的功能更新率的确定的方法为:
当所述一般功能模块的更新功能的数量大于预设功能数量时,则确定所述一般功能模块的功能更新率为1;
当所述一般功能模块的更新功能的数量不大于预设功能数量时,则通过所述一般功能模块的更新功能的数量与所述一般功能模块的所有功能的数量的比值进行所述一般功能模块的功能更新率的确定。
10.一种计算机系统,包括:通信连接的存储器和处理器,以及存储在所述存储器上并能够在所述处理器上运行的计算机程序,其特征在于:所述处理器运行所述计算机程序时执行权利要求1-9任一项所述的一种测试用例处理方法。
11.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-9任一项所述的一种测试用例处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311003236.6A CN116737597B (zh) | 2023-08-10 | 2023-08-10 | 测试用例处理方法、系统与存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311003236.6A CN116737597B (zh) | 2023-08-10 | 2023-08-10 | 测试用例处理方法、系统与存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116737597A CN116737597A (zh) | 2023-09-12 |
CN116737597B true CN116737597B (zh) | 2023-10-20 |
Family
ID=87917195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311003236.6A Active CN116737597B (zh) | 2023-08-10 | 2023-08-10 | 测试用例处理方法、系统与存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116737597B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117093503B (zh) * | 2023-10-17 | 2024-02-06 | 杭银消费金融股份有限公司 | 一种客户端测试管理方法与系统 |
CN117234952B (zh) * | 2023-11-13 | 2024-03-22 | 杭银消费金融股份有限公司 | 一种分布式自动化测试方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108268366A (zh) * | 2016-12-30 | 2018-07-10 | 腾讯科技(深圳)有限公司 | 测试用例执行方法及装置 |
CN110096429A (zh) * | 2019-03-18 | 2019-08-06 | 深圳壹账通智能科技有限公司 | 测试报告生成方法、装置、设备及存储介质 |
CN112256553A (zh) * | 2019-07-22 | 2021-01-22 | 百度(中国)有限公司 | 一种应用软件测试方法、装置及电子设备 |
CN113238930A (zh) * | 2021-04-26 | 2021-08-10 | 南方电网电力科技股份有限公司 | 软件系统的测试方法、装置、终端设备和存储介质 |
CN113836043A (zh) * | 2021-11-22 | 2021-12-24 | 国网浙江省电力有限公司 | 基于测试用例的中台自维护方法、装置及存储介质 |
CN115437965A (zh) * | 2022-10-27 | 2022-12-06 | 南京讯优智超软件科技有限公司 | 适用于测试管理平台的数据处理方法 |
CN116560683A (zh) * | 2023-04-20 | 2023-08-08 | 联想(北京)有限公司 | 软件更新方法、装置、设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8645341B2 (en) * | 2010-03-31 | 2014-02-04 | Salesforce.Com, Inc. | Method and system for automatically updating a software QA test repository |
US9619363B1 (en) * | 2015-09-25 | 2017-04-11 | International Business Machines Corporation | Predicting software product quality |
US11797431B2 (en) * | 2021-12-23 | 2023-10-24 | Oracle International Corporation | REST API parser for test automation |
-
2023
- 2023-08-10 CN CN202311003236.6A patent/CN116737597B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108268366A (zh) * | 2016-12-30 | 2018-07-10 | 腾讯科技(深圳)有限公司 | 测试用例执行方法及装置 |
CN110096429A (zh) * | 2019-03-18 | 2019-08-06 | 深圳壹账通智能科技有限公司 | 测试报告生成方法、装置、设备及存储介质 |
CN112256553A (zh) * | 2019-07-22 | 2021-01-22 | 百度(中国)有限公司 | 一种应用软件测试方法、装置及电子设备 |
CN113238930A (zh) * | 2021-04-26 | 2021-08-10 | 南方电网电力科技股份有限公司 | 软件系统的测试方法、装置、终端设备和存储介质 |
CN113836043A (zh) * | 2021-11-22 | 2021-12-24 | 国网浙江省电力有限公司 | 基于测试用例的中台自维护方法、装置及存储介质 |
CN115437965A (zh) * | 2022-10-27 | 2022-12-06 | 南京讯优智超软件科技有限公司 | 适用于测试管理平台的数据处理方法 |
CN116560683A (zh) * | 2023-04-20 | 2023-08-08 | 联想(北京)有限公司 | 软件更新方法、装置、设备及存储介质 |
Non-Patent Citations (4)
Title |
---|
Incorporating fault-proneness estimations into coverage-based test case prioritization methods;Mostafa Mahdieh;《Information and software Technology》;第121卷;全文 * |
一种基于模型的测试充分性评估方法;张瑶;白晓颖;张任伟;陆皓;;计算机科学(第02期);全文 * |
利用产品-测试代码共同演化预测测试用例更新状态;王斯南;《万方数据库》;全文 * |
计算机软件系统测试方案研究;梁瀚;鞍山师范学院学报(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116737597A (zh) | 2023-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116737597B (zh) | 测试用例处理方法、系统与存储介质 | |
US20070124236A1 (en) | Credit risk profiling method and system | |
CN112433896B (zh) | 一种服务器磁盘故障预测方法、装置、设备及存储介质 | |
CN113361865B (zh) | 针对电力系统中深度学习惯量预测模型的脆弱性评估方法 | |
CN116029876B (zh) | 智慧校园综合管理装置与方法 | |
CN112508243A (zh) | 电力信息系统多故障预测网络模型的训练方法及装置 | |
RU2680760C1 (ru) | Компьютеризированный способ разработки и управления моделями скоринга | |
Park | Changepoint analysis of binary and ordinal probit models: An application to bank rate policy under the interwar gold standard | |
Lyra et al. | Optimization heuristics for determining internal rating grading scales | |
KR101368103B1 (ko) | 리스크 관리 디바이스 | |
CN116862668A (zh) | 一种提升催收效率的智能催收方法 | |
CN117575804A (zh) | 一种货物资产风险分析方法、系统及介质 | |
EP3185184A1 (en) | The method for analyzing a set of billing data in neural networks | |
CN116389108B (zh) | Ab实验方法、系统与存储介质 | |
CN117078403A (zh) | 一种基于规则组合优化的风控决策方法与系统 | |
CN112884363A (zh) | 一种核电项目经济评价概率风险分析方法 | |
KR102184655B1 (ko) | 비대칭 tanh 활성 함수를 이용한 예측 성능의 개선 | |
Shekhar et al. | Risk-limiting financial audits via weighted sampling without replacement | |
CN116797226A (zh) | 一种基于大数据的咖啡现货交易的信息安全的评估方法 | |
CN113706300B (zh) | 一种小微企业的贷款方法及装置 | |
CN115936104A (zh) | 用于训练机器学习模型的方法和装置 | |
CN112308294B (zh) | 违约概率预测方法及装置 | |
Scaffidi Domianello et al. | Smooth and Abrupt Dynamics in Financial Volatility: The MS‐MEM‐MIDAS | |
Manzan et al. | A bootstrap-based non-parametric forecast density | |
Addabbo et al. | Children capabilities and family characteristics in Italy |
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 |