CN112732584A - 一种用于新旧系统数据移植过程的复杂业务逻辑完备性测试方法 - Google Patents

一种用于新旧系统数据移植过程的复杂业务逻辑完备性测试方法 Download PDF

Info

Publication number
CN112732584A
CN112732584A CN202110054337.0A CN202110054337A CN112732584A CN 112732584 A CN112732584 A CN 112732584A CN 202110054337 A CN202110054337 A CN 202110054337A CN 112732584 A CN112732584 A CN 112732584A
Authority
CN
China
Prior art keywords
data
service
complex service
complex
breakpoint
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.)
Granted
Application number
CN202110054337.0A
Other languages
English (en)
Other versions
CN112732584B (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.)
Anhui Qisemi Information Technology Co ltd
Original Assignee
Anhui Qisemi Information Technology Co ltd
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 Anhui Qisemi Information Technology Co ltd filed Critical Anhui Qisemi Information Technology Co ltd
Priority to CN202110054337.0A priority Critical patent/CN112732584B/zh
Publication of CN112732584A publication Critical patent/CN112732584A/zh
Application granted granted Critical
Publication of CN112732584B publication Critical patent/CN112732584B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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

一种用于新旧系统数据移植过程的复杂业务逻辑完备性测试 方法
技术领域
本发明涉及数据测试技术领域,具体来说是一种用于新旧系统数据移植过程的复杂业务逻辑完备性测试方法。
背景技术
在产品升级或者重构场景的过程中,需要将用户的数据、应用程序、个性化设置等相关从旧系统中移植到新系统中,以保证系统上线后的业务正常进行。软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流,测试需求是模拟特定场景边界发生的事情,通过事件来触发某个动作的发生,观察事件的最终结果,从而用来发现需求中存在的问题。
然而在接触到复杂业务的情况,事件较多,触发的动作也会很多,事件流向繁杂,业务逻辑性的完备性复杂度很难去完全被覆盖。同时,系统升级进行数据移植过程,应以不影响客户业务为前提。但是在新旧数据移植过程中,涉及数据量较大、关系较多,特别是对于业务流程复杂度较高的交易难以知晓其数据移植的完备性。
因此,如何开发出一种针对于复杂业务逻辑完备性的检测方法已经成为急需解决的技术问题。
发明内容
本发明的目的是为了解决现有技术中难以检测复杂业务在数据移植过程中完备性的缺陷,提供一种用于新旧系统数据移植过程的复杂业务逻辑完备性测试方法来解决上述问题。
为了实现上述目的,本发明的技术方案如下:
一种用于新旧系统数据移植过程的复杂业务逻辑完备性测试方法,包括以下步骤:
获取旧系统中所有复杂业务信息:针对用户业务流程及其所涉及的角色、功能获取复杂业务信息,并绘制出复杂业务流程图;
对复杂业务进行拆分:采用路径法根据业务特征对复杂业务进行拆分;
进行交易断点埋数处理:在旧系统中对复杂业务每个步骤进行交易断点处理,并进行埋数处理;
新系统中完备性测试:在数据移植过程的新系统中,验证每个断点后继续测试操作节点的数据正确性,以此验证复杂业务逻辑的完备性。
所述获取旧系统中所有复杂业务信息包括以下步骤:
以用户为关键字,检索列举出用户每一项业务中详细流程和各个环节涉及的角色及对应系统功能;
从客户操作日志中获取产品系统各业务流程的重要程度和使用频率高的场景数据;
设定阈值,根据重要程度和使用频率确定边界,分类出待测复杂业务;
根据场景法绘制待测复杂业务流程图,标注复杂业务的开始、结束,指出业务中的正向路径及反向路径。
所述对复杂业务进行拆分包括以下步骤:
根据业务流程图结合路径法导出复杂业务步骤控制流程图;
计算复杂业务步骤环形复杂度V(G),其计算公式如下:
V(G)=E-N+2,
其中,E是复杂业务步骤控制流程图中边的数量,N是复杂业务步骤控制流程图中结点的数量;
根据业务步骤环形复杂度V(G)来确定完整的独立路径集共有V(G)条,并列出每一条路径。
所述进行交易断点处理包括以下步骤:
设定移植路径集,设定V条交易步骤,并在移植路径集中每个交易步骤Vt点标上断点序号St,Vt={V1、V2、…、Vg},St={S1、S2、…、Sg},
其中:Vt为独立交易路径序号,St为每个交易路径中的断点序号;
以接口RequestData的json数据格式设计断点序号的埋点数据,其json串格式设定为:
{"key1":"value1","key2":"value2","key3":"value3",....,"keyg":"valueg"};
其中:json串为轻量级的数据交换格式,此处它的值是对象,由花括号括起来的逗号分割的成员构成,由逗号分割的键值对组成,key为键,value为值;
使用jmeter工具读取文件,执行接口请求,接口数据传参,根据设计好的数据进行埋数。
所述新系统中完备性测试包括以下步骤:
旧系统向新系统进行数据移植;
新系统中执行测试步骤:
对交易步骤Vt中的步骤进行单点执行,验证每个断点后的执行步骤的功能是否正常、操作节点数据显示是否正确,以此验证复杂业务逻辑的完备性;
若遇到断点序号St,则与旧系统的断点序号St的埋点数据进行对比;
若埋点数据正确,进行下一交易步骤Vt+1的单点执行;
若埋点数据不正确,记录对应的执行结果待人工比对并进行下一交易步骤Vt+1的单点执行。
有益效果
本发明的一种用于新旧系统数据移植过程的复杂业务逻辑完备性测试方法,与现有技术相比采用交易拆分断点埋数的方法,在复杂业务数据移植时(新旧系统升级时),检验了复杂业务逻辑的完备性;同时在用户操作业务断层后,仍可在新系统中延续之前的业务逻辑,降低系统升级后客户业务的流程断层风险。
附图说明
图1为本发明的方法顺序图;
图2为本发明所述实施例中复杂业务流程图;
图3为本发明所述实施例中业务步骤控制流图;
图4为本发明所述实施例中交易断点埋数示意图。
具体实施方式
为使对本发明的结构特征及所达成的功效有更进一步的了解与认识,用以较佳的实施例及附图配合详细的说明,说明如下:
如图1所示,本发明所述的一种用于新旧系统数据移植过程的复杂业务逻辑完备性测试方法,包括以下步骤:
第一步,获取旧系统中所有复杂业务信息:针对用户业务流程及其所涉及的角色、功能获取复杂业务信息,并绘制出复杂业务流程图。
在此,将系统运行过程中的所涉及到的复杂流程图表化,按优先级将流程抽象成为不同功能的顺序执行,在最基本流程的基础上再去考虑次要或异常的流程,这样将各种流程逐渐细化,这样既可以逐渐加深对流程理解,还可以将各个看似孤立的流程关联起来,完成流程图表化后,也就是为下一步骤中所有路径的寻找奠定了基础。
获取旧系统中所有复杂业务信息的具体步骤如下:
(1)以用户为关键字,检索列举出用户每一项业务中详细流程和各个环节涉及的角色及对应系统功能;
(2)从客户操作日志中获取产品系统各业务流程的重要程度和使用频率高的场景数据;
(3)设定阈值,根据重要程度和使用频率确定边界,分类出待测复杂业务;
(4)根据场景法绘制待测复杂业务流程图,标注复杂业务的开始、结束,指出业务中的正向路径及反向路径。
第二步,对复杂业务进行拆分:采用路径法根据业务特征对复杂业务进行拆分。对于测试人员而言,测试用例和数据的设计是工作环节中最重要的也是最困难的一环,而测试用例的好坏又直接关系到整个系统的设计质量,此处采用了理论化的设计方法尽量简化工作,将一般应用于白盒单元测试中的路径分析方法运用到系统功能性测试过程中,一是降低了测试用例设计的难度,只要搞清了各种流程,就可以设计出高质量的测试用例来,而不用太多测试方面的经验;二是在测试时间较紧的情况下,可以有目的的选择测试用例,而不用完全根据经验来取舍。对复杂业务进行拆分步骤如下:
(1)根据业务流程图结合路径法导出复杂业务步骤控制流程图;
(2)计算复杂业务步骤环形复杂度V(G),其计算公式如下:
V(G)=E-N+2,
其中,E是复杂业务步骤控制流程图中边的数量,N是复杂业务步骤控制流程图中结点的数量;
(3)根据业务步骤环形复杂度V(G)来确定完整的独立路径集共有V(G)条,并列出每一条路径。
第三步,进行交易断点埋数处理:在旧系统中对复杂业务每个步骤进行交易断点处理,并进行埋数处理。
在程序开发中,设置断点是为了出错调试用的。在此处将这种方法应用到系统功能测试过程中,将整体的交易当成一个程序,每个步骤划分断点,旧系统中埋入预设好的数据,在数据移植后,按步执行,观察业务流向及预设数据的变化,便于快速排错。埋数的时候使用调用接口埋数的方式,也减少了其他前置条件的制约,工具的使用也使的埋数的速度大幅度提升。其具体步骤如下:
(1)设定移植路径集,设定V条交易步骤,并在移植路径集中每个交易步骤Vt点标上断点序号St,Vt={V1、V2、…、Vg},St={S1、S2、…、Sg};
其中:Vt为独立交易路径序号,St为每个交易路径中的断点序号。
(2)以接口的RequestData的JSON串数据格式设计断点序号的埋点数据,其格式设定为:
{"key1":"value1","key2":"value2","key3":"value3",....,"keyg":"valueg"};
其中:JSON串是一种轻量级的数据交换格式,此处它的值是对象,由花括号括起来的逗号分割的成员构成,由逗号分割的键值对组成。key为键,value为值。
(3)使用jmeter工具读取文件,执行接口请求,接口数据传参,根据设计好的数据进行埋数。
第四步,新系统中完备性测试:在数据移植后在新系统中,验证每个断点后正常继续业务且操作节点的数据正确性。其具体步骤如下:
(1)旧系统向新系统进行数据移植;
(2)新系统中执行测试步骤;
A1)对交易步骤Vt中的步骤进行单点执行,验证每个断点后的执行步骤的功能是否正常、节点数据显示是否正确,以此验证复杂业务逻辑的完备性;
若遇到断点序号St,则与旧系统的断点序号St的埋点数据进行对比;
A2)若数据正确,进行下一交易步骤Vt+1的单点执行;
A3)若数据不正确,记录对应的执行结果待人工比对并进行下一交易步骤Vt+1的单点执行。
以实际应用为例,其复杂业务逻辑完备性测试如下:
步骤1:获取待测进销存系统中所有复杂业务信息
1.1列举用户每一项业务中详细流程和各个环节涉及的角色、及对应系统功能.例如:
1.1.1进货业务:
涉及角色:供应商、采购人员、仓管人员、财务人员
系统功能:新增供应商资料、进货订单、进货单、进货退货单、入库单、付款单
1.1.2销售业务:
涉及角色:客户、销售人员、仓管人员、财务人员
系统功能:新增客户资料、销售订单、销售单、销售退货单、出库单、收款单、销售开票
1.2列出了所有的业务后,接下来就是给每个业务设定优先级,根据两个原则来确定,一是从操作日志中获取使用频率高的,而是获取重要程度,如果失败对系统影响越大的优先级越高,根据两个原则确定销售业务为待测复杂业务;
1.3根据场景法绘制销售业务流程图,参看图2,确定销售业务的基本流和备选流。
步骤2:根据业务特征对复杂业务进行拆分,得到多个步骤;
采用路径法对复杂业务进行拆分;
2.1导出业务步骤控制流图,参看图3;
2.2根据公式求出业务步骤环形复杂度V(G),定义为V(G)=E-N+2,E是流图中边的数量,N是流图中结点的数量,得到V(G)=E-N+2=16-12+2=6。
2.3由业务步骤环形复杂度来确定完整的独立路径集合共有V(G)条,此处是共有6条独立的路径:
路径V1:1-2-9-10-12
路径V2:1-2-9-11-12
路径V3:1-2-3-9-10-12
路径V4:1-2-3-4-5-8-2...
路径V5:1-2-3-4-5-6-8-2...
路径V6:1-2-3-4-5-6-7-8-2...
注:“...”表示后面剩下的路径是可以选择的。原因在于存在循环结构。
步骤3:在旧系统中对每个步骤进行交易断点埋数。
3.1找到路径集中的每个步骤点,标上断点序号,如果步骤还可进行进一步细分,可打多个断点说明,以V1路径为例,参看图4,标上序号S1、S2、S3、S4;在旧系统中根据标好的断点进行相应的操作步骤断点。其他路径集采取同样的方式进行断点;
3.2设计每个断点序号的埋数数据,并最终以接口的RequestData的json数据格式。参看表1;测试业务流程与功能点的测试重点不一样,因此在设计测试数据的时候从这些因素去考虑:关键的判断条件、符合业务意义的数据、边界数据和异常数据。
表1测试用例配置参数表
Figure BDA0002900091250000071
Figure BDA0002900091250000081
3.3使用jmeter工具读取文件,执行POST接口请求,接口数据传参,根据设计好的数据进行埋数;
步骤4:数据移植后在新系统中执行V1路径后续的步骤,单点执行步骤2,验证断点后的步骤2操作是否正常,旧系统埋数的展示及变化情况是否正确,系统中得到的结果数据均需记录,以便在测试时进行核对。
若通过继续单点执行步骤9。若不通过则执行路径V2。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明的范围内。本发明要求的保护范围由所附的权利要求书及其等同物界定。

Claims (5)

1.一种用于新旧系统数据移植过程的复杂业务逻辑完备性测试方法,其特征在于,包括以下步骤:
11)获取旧系统中所有复杂业务信息:针对用户业务流程及其所涉及的角色、功能获取复杂业务信息,并绘制出复杂业务流程图;
12)对复杂业务进行拆分:采用路径法根据业务特征对复杂业务进行拆分;
13)进行交易断点埋数处理:在旧系统中对复杂业务每个步骤进行交易断点处理,并进行埋数处理;
14)新系统中完备性测试:在数据移植过程的新系统中,验证每个断点后继续测试操作节点的数据正确性,以此验证复杂业务逻辑的完备性。
2.根据权利要求1所述的一种用于新旧系统数据移植过程的复杂业务逻辑完备性测试方法,其特征在于,所述获取旧系统中所有复杂业务信息包括以下步骤:
21)以用户为关键字,检索列举出用户每一项业务中详细流程和各个环节涉及的角色及对应系统功能;
22)从客户操作日志中获取产品系统各业务流程的重要程度和使用频率高的场景数据;
23)设定阈值,根据重要程度和使用频率确定边界,分类出待测复杂业务;
24)根据场景法绘制待测复杂业务流程图,标注复杂业务的开始、结束,指出业务中的正向路径及反向路径。
3.根据权利要求1所述的一种用于新旧系统数据移植过程的复杂业务逻辑完备性测试方法,其特征在于,所述对复杂业务进行拆分包括以下步骤:
31)根据业务流程图结合路径法导出复杂业务步骤控制流程图;
32)计算复杂业务步骤环形复杂度V(G),其计算公式如下:
V(G)=E-N+2,
其中,E是复杂业务步骤控制流程图中边的数量,N是复杂业务步骤控制流程图中结点的数量;
33)根据业务步骤环形复杂度V(G)来确定完整的独立路径集共有V(G)条,并列出每一条路径。
4.根据权利要求1所述的一种用于新旧系统数据移植过程的复杂业务逻辑完备性测试方法,其特征在于,所述进行交易断点处理包括以下步骤:
41)设定移植路径集,设定V条交易步骤,并在移植路径集中每个交易步骤Vt点标上断点序号St,Vt={V1、V2、…、Vg},St={S1、S2、…、Sg},
其中:Vt为独立交易路径序号,St为每个交易路径中的断点序号;
42)以接口RequestData的json数据格式设计断点序号的埋点数据,其json串格式设定为:
{"key1":"value1","key2":"value2","key3":"value3",....,"keyg":"valueg"};
其中:json串为轻量级的数据交换格式,此处它的值是对象,由花括号括起来的逗号分割的成员构成,由逗号分割的键值对组成,key为键,value为值;
43)使用jmeter工具读取文件,执行接口请求,接口数据传参,根据设计好的数据进行埋数。
5.根据权利要求1所述的一种用于新旧系统数据移植过程的复杂业务逻辑完备性测试方法,其特征在于,所述新系统中完备性测试包括以下步骤:
51)旧系统向新系统进行数据移植;
52)新系统中执行测试步骤:
521)对交易步骤Vt中的步骤进行单点执行,验证每个断点后的执行步骤的功能是否正常、操作节点数据显示是否正确,以此验证复杂业务逻辑的完备性;
若遇到断点序号St,则与旧系统的断点序号St的埋点数据进行对比;
522)若埋点数据正确,进行下一交易步骤Vt+1的单点执行;
523)若埋点数据不正确,记录对应的执行结果待人工比对并进行下一交易步骤Vt+1的单点执行。
CN202110054337.0A 2021-01-15 2021-01-15 一种用于新旧系统数据移植过程的复杂业务逻辑完备性测试方法 Active CN112732584B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110054337.0A CN112732584B (zh) 2021-01-15 2021-01-15 一种用于新旧系统数据移植过程的复杂业务逻辑完备性测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110054337.0A CN112732584B (zh) 2021-01-15 2021-01-15 一种用于新旧系统数据移植过程的复杂业务逻辑完备性测试方法

Publications (2)

Publication Number Publication Date
CN112732584A true CN112732584A (zh) 2021-04-30
CN112732584B CN112732584B (zh) 2023-12-15

Family

ID=75591623

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110054337.0A Active CN112732584B (zh) 2021-01-15 2021-01-15 一种用于新旧系统数据移植过程的复杂业务逻辑完备性测试方法

Country Status (1)

Country Link
CN (1) CN112732584B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009245066A (ja) * 2008-03-31 2009-10-22 Nomura Research Institute Ltd ソフトウェアマイグレーションシステム及び方法
CN106919378A (zh) * 2016-08-24 2017-07-04 阿里巴巴集团控股有限公司 基于增量的应用更新和测试方法及系统、服务器及客户端
US20180144276A1 (en) * 2014-04-08 2018-05-24 M/S. Cigniti Technologies Limited System, method and apparatus for converting the business processes to test-centric activity diagrams
CN112052172A (zh) * 2020-09-04 2020-12-08 云账户技术(天津)有限公司 第三方通道的快速测试方法、装置和电子设备
WO2020253112A1 (zh) * 2019-06-19 2020-12-24 深圳壹账通智能科技有限公司 测试策略的获取方法、装置、终端及可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009245066A (ja) * 2008-03-31 2009-10-22 Nomura Research Institute Ltd ソフトウェアマイグレーションシステム及び方法
US20180144276A1 (en) * 2014-04-08 2018-05-24 M/S. Cigniti Technologies Limited System, method and apparatus for converting the business processes to test-centric activity diagrams
CN106919378A (zh) * 2016-08-24 2017-07-04 阿里巴巴集团控股有限公司 基于增量的应用更新和测试方法及系统、服务器及客户端
WO2020253112A1 (zh) * 2019-06-19 2020-12-24 深圳壹账通智能科技有限公司 测试策略的获取方法、装置、终端及可读存储介质
CN112052172A (zh) * 2020-09-04 2020-12-08 云账户技术(天津)有限公司 第三方通道的快速测试方法、装置和电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
杨永健: "移动Agent迁移机制及主机负载测试", 《仪器仪表学报》, vol. 26, no. 8, pages 498 - 501 *

Also Published As

Publication number Publication date
CN112732584B (zh) 2023-12-15

Similar Documents

Publication Publication Date Title
CN106844217B (zh) 对应用的控件进行埋点的方法及装置、可读存储介质
US6865692B2 (en) Enterprise test system having program flow recording and playback
US8694967B2 (en) User interface inventory
US8347267B2 (en) Automated software testing and validation system
US8151247B2 (en) Test data management
Xu et al. POD-Diagnosis: Error diagnosis of sporadic operations on cloud applications
US10437702B2 (en) Data-augmented software diagnosis method and a diagnoser therefor
CN108614777A (zh) 一种基于真实业务的金融交易测试系统及测试方法
CN107885660A (zh) 基金系统自动化测试管理方法、装置、设备及存储介质
US10162742B2 (en) System and method for end to end performance response time measurement based on graphic recognition
US9208006B2 (en) Recovery Maturity Model (RMM) for readiness-based control of disaster recovery testing
CN114116496A (zh) 自动化测试方法、装置、设备及介质
CN112650688A (zh) 自动化回归测试方法、关联设备以及计算机程序产品
Baker et al. Detect, fix, and verify TensorFlow API misuses
CN116578499B (zh) 公共组件功能变更影响的智能化分析测试方法及其系统
Dalton et al. Is exceptional behavior testing an exception? an empirical assessment using java automated tests
Satapathy et al. Usage of machine learning in software testing
CN112732584A (zh) 一种用于新旧系统数据移植过程的复杂业务逻辑完备性测试方法
CN110389897A (zh) Sdk逻辑测试方法、装置、存储介质及服务器
US20120198281A1 (en) Validation rules for process validation
CN113468058B (zh) 软件即服务平台的回归测试方法、装置及电子设备
CN109684205A (zh) 系统测试方法、装置、电子设备及存储介质
Huang et al. A method of bug report quality detection based on vector space model
CN116097227A (zh) 基于变更相关性分析的测试用例选择方法及装置
US10437710B2 (en) Code coverage testing utilizing test-to-file maps

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