CN103164329B - 软件缺陷植入方法及系统 - Google Patents
软件缺陷植入方法及系统 Download PDFInfo
- Publication number
- CN103164329B CN103164329B CN201110417272.8A CN201110417272A CN103164329B CN 103164329 B CN103164329 B CN 103164329B CN 201110417272 A CN201110417272 A CN 201110417272A CN 103164329 B CN103164329 B CN 103164329B
- Authority
- CN
- China
- Prior art keywords
- function
- value
- software
- functions
- bitmap
- 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
Landscapes
- Prostheses (AREA)
Abstract
一种软件植入缺陷的方法,包括设置与已有函数集相对应的测试函数集,测试函数集中的函数与已有函数集中的函数一一对应;生成用于指示向软件载入已有函数集中的函数还是测试函数集中的函数的控制位图,控制位图包括与已有函数集中的函数数量相当的控制位,且控制位与所述已有函数集中的函数一一对应;以及根据控制位图中控制位的每个位的值向软件载入已有函数集或测试函数集的函数。本发明还提供相应的系统。根据本发明的系统和方法应用灵活,可方便地获得缺陷发现率。
Description
技术领域
本发明涉及软件测试技术,尤其涉及通过植入缺陷测试软件的技术。
背景技术
随着电子设备(如计算机等)的应用范围变得日益广泛,电子设备硬件平台上的软件也变得越来越复杂。在电子设备的使用中,造成这些软件出错的原因大部分来自于软件自身。因此业界一般都会对软件进行可靠性测试,这种可靠性测试的方法之一是缺陷植入技术。常规的软件植入专注于制造精确的比特极错误且依赖于强大的硬件平台。受到经济性的制约,硬件平台本身无法确保不产生错误而软件设计及缺陷测试中也只是假设硬件不出错。总而言之,常规缺陷植入技术过份依赖硬件平台,而硬件平台具有实现成本过高等缺陷。
发明内容
有鉴于此,本发明提供一种向软件植入缺陷的方法,以有效解决以上及其它问题。该软件缺陷植入方法包括设置与已有函数集相对应的测试函数集,所述测试函数集中的函数与已有函数集中的函数一一对应;生成用于指示向所述软件载入所述已有函数集中的函数还是所述测试函数集中的函数的控制位图,所述控制位图包括与已有函数集中的函数数量相当的控制位,且所述控制位与所述已有函数集中的函数一一对应;以及根据所述控制位图中控制位的每个位的值向所述软件载入已有函数集或测试函数集的函数。
优选地,本发明所述的软件缺陷植入方法还包括检测控制位图中控制位的第i个位的值,判断所述第i个位的值是第一值还是第二值,在判断所述第i个位的值是第一值的情况下,将所述已有函数集中与所述第i个位对应的函数载入所述软件,在判断所述第i个位的值是第二值的情况下,将与所述已有函数集中与所述第i个位对应的函数相对应的测试函数集中的函数载入所述软件,其中,i为整数,优选≥0的整数。
优选地,所述控制位的每一位由一个bit构成;且优选所述第一值为1而所述第二值为0,作为替代,也可以是所述第一值为0而所述第二值为1。可选地,所述控制位的每一位由若干bit构成。
本发明还提供一种软件缺陷率获得方法,该方法包括预先按照上述方法向软件植入缺陷,发现软件中的缺陷,以及将所发现的软件中的缺陷的数量与通过所述控制位图的控制位所获得的载入所述软件的测试函数集中的测试函数的数量相比较。
本发明还提供一种软件缺陷植入系统,该系统包括测试函数集生成模块,用以生成与已有函数集相对应的测试函数集,所述测试函数集中的函数与已有函数集中的函数一一对应;控制位图生成模块,用以生成指示向所述软件载入所述已有函数集中的函数还是所述测试函数集中的函数的控制位图,所述控制位图包括与已有函数集中的函数数量相当的控制位,且所述控制位与所述已有函数集中的函数一一对应;以及载入模块,用以根据所述控制位图中控制位的每个位的值向所述软件载入已有函数集或测试函数集的函数。
优选地,本发明所述的系统还包括用于检测控制位图中控制位的第i个位的值并判断所述第i个位的值是第一值还是第二值的判断模块,其中,所述判断模块将判断结果传送给所述载入模块,所述载入模块在所述第i个位的值是第一值的情况下,将所述已有函数集中与所述第i个位对应的函数载入所述软件,在判断所述第i个位的值是第二值的情况下,将与所述已有函数集中与所述第i个位对应的函数相对应的测试函数集中的函数载入所述软件;其中i为自然数。
优选地,所述控制位图生成模块生成的控制位图中,每一个控制位由一个bit构成;更优选地,所述第一值为1而所述第二值为0,作为替代,也可以是所述第一值为0而所述第二值为1。
可替代地,所述控制位的每一位由若干bit构成。
本发明还提供一种软件缺陷率获得系统,所述系统包括如上所述的软件缺陷植入系统,用于发现所述软件中的缺陷的测试模块,以及用于将测试模块所发现的软件中缺陷的数量与通过控制位图的控制位所获得的载入所述软件的测试函数集中的测试函数的数量相比较的计算单元。
本发明所述的软件缺陷植入方法及系统应用灵活,且可方便地获得缺陷发现率。
附图说明
图1是本发明所述的软件缺陷植入方法的流程图。
图2示意出了控制位图的一个示例。
图3是根据本发明所述的软件缺陷植入系统。
图4是利用本发明所述的缺陷植入系统执行本发明所述的缺陷植入方法的一个具体示例。
图5是图4所示的具体示例中控制位图的示意图。
具体实施方式
为使本发明的上述目的、特征和优点更加明显易懂,以下结合附图和具体实施方式,进一步详细说明本发明。
图1是本发明所述的软件缺陷植入方法的流程图。如图所示,在步骤10,设置与已有函数集相对应的测试函数集,测试函数集中的函数与已有函数集中的函数一一对应。在步骤12,生成控制位图,该控制位图指示向软件载入已有函数集中的函数还是测试函数集中的函数,控制位图包括与已有函数集中的函数数量相当的控制位,且控制位与已有函数集中的函数一一对应。在步骤13,根据所述控制位图中控制位的每个位的值向所述软件载入已有函数集中的函数或测试函数集中的函数。
已有函数集可以是函数库,在该函数库中包括若干个该软件可用的函数。在步骤10中所设置的测试函数,也可以是一个函数库,而该函数库中的函数同样可以由该软件所用。根据本发明,测试函数集中的函数的数目与已有函数集中函数的数据相同,且测试函数集的每一个函数都与已有函数集中的一个函数相对应。作为示例,测试函数集中的函数是以已有函数集中的函数作为基础所做的变型,测试函数集中的函数与相对应的已有函数集中的函数具有同样的函数名和形参。控制位图是动态生成的,也就是说,控制位图是可变的。作为示例,控制位图中的每一控制位的值都是随机生成的。控制位图中控制位的数量与已有函数集中的函数的数量相当,也就与测试函数集中的函数的数量相当;同样,控制位图中控制位与已有函数集中的函数一一对应,也就与测试函数集中的函数一一对应。控制位图中控制位的每个位的值指示出要向软件植入已有函数集中的函数还是植入测试函数集中的函数。作为示例,控制位图中每个控制位的值可以是第一值或第二值,其中第一值表明向所述软件载入已有函数集中的函数,第二值表明向所述软件载入测试函数集中的函数。
图2示意出了控制位图的一个示例。在图2的示例中,控制位图包括与函数集中函数数目相当的N个控制位。在该例中,每一个控制位为一个bit,且第一值为1,第二值为0。该控制位图是随机生成的。图中,第一位20为1表明已有函数集中与该位对应的函数将被载入软件,第二位21为0表明已有函数集中与该位对应的函数不载入软件,而是载入测试函数集中与该位对应的测试函数(如上文所述,因控制位图中的控制位与已有函数集中的函数一一对应,因此也与测试函数集中的函数一一对应)。作为通用的示例,控制位中第i位23为1,则表明已有函数集中与该位对应的函数将被载入软件,为0则表明测试函数集中与该位对应的测试函数将被载入软件。如此,便将有缺陷的测试函数随机地载入到软件中。
需要说明的是,图2的示例仅是控制位图一种形式的示例,控制位图也可被实现为其它的形式,例如:控制位图中每个控制位由2个bit构成,在第一值为1而第二值为0的情况下,如果要实现和图2所示意的控制位图同样的控制方式,则控制位图包括2N个bit,且对应第一位20的两个bit值应为01,而对应第二位21的两个bit的值为00,依次类推。此外,第一值和第二值也可被设定为其它值,并不以1和0为限制,例如可令第一值为0而第二值为1等。
在根据上述的软件缺陷植入方法将测试函数(带有缺陷)植入到软件之后,便可对该软件进行测试。对该软件的测试可以使用常规的测试技术,只需要可以测试出软件中的缺陷即可;如本领域技术人员所了解的,对软件的测试指的是对软件功能的测试,也称作黑盒测试或数据驱动测试,这类测试只需要考虑软件的各个功能而不需要考虑软件的内部结构及代码。软件测试本身并不是本发明的重点所在,在此就不对其进行描述。对该软件进行测试之后,便可发现软件中的缺陷,将所发现的缺陷的数量与植入的缺陷的数量进行比较,便可获得软件缺陷发现率,从而评估测试的品质。植入的缺陷的数量可通过控制位图中指示植入测试函数集中函数的控制位的数量来确定。
图3是根据本发明所述的软件缺陷植入系统。该系统包括测试函数集生成模块30,控制位图生成模块32,和载入模块34。测试函数集生成模块30生成与已有函集对应的测试函数集。实际应用中,测试函数集和已有函数集都可以实现为包括多个函数的数据库(图中未示意)。测试函数集中的函数与已有函数集中的函数一一对应。控制位图生成模块32生成用于指示向软件载入已有函数集中的函数还是测试函数集中的函数的控制位图,控制位图包括与已有函数集中的函数数量相当的控制位,控制位与已有函数集中的函数一一对应。载入模块34根据控制位图中控制位的每个位的值向软件载入已有函数集中的函数或测试函数集中的函数。
根据本发明,测试函数集生成模块30所生成的测试函数集中的函数的数量与已有函数集中函数的数量相同,且如上所述的那样,测试函数集函数与已有函数集中函数一一对应。作为示例,测试函数集中的函数是已有函数集中的函数的变型,或者可以理解为是设置了缺陷的已有函数集中的函数,一般而言,测试函数集中的函数与相对应的已有函数集中的函数具有同样的函数名和形参。控制位图生成模块32动态生成控制位图。作为示例,控制位图中的每一控制位的值都是随机生成的。控制位图中控制位的数量与已有函数集中的函数的数量相当,也就与测试函数集中的函数的数量相当;本领域技术人员易于理解到控制位图中控制位与已有函数集中的函数一一对应,也就与测试函数集中的函数一一对应。控制位图中控制位的每个位的值指示出要向软件植入已有函数集中的函数还是植入测试函数集中的函数。作为示例,控制位图中每个控制位的值可以是第一值或第二值,其中第一值表明向所述软件载入已有函数集中的函数,第二值表明向所述软件载入测试函数集中的函数。载入模块34根据控制位图生成模块32所生成的控制位图,将已有函数集中的函数或者测试函数集中的函数载入软件。载入模块34根据控制位图中每个位的值,选择载入已有函数还是测试函数集中的函数。作为示例,在相对应的控制位的值的情况下,载入已有函数集中的函数,第二值的情况下则载入测试函数集中的函数。以图2所示示意的控制位图为例,控制位中第i位23为1,则将已有函数集中与第i位对应的函数载入软件,控制位中第i位为0,则将测试函数集中与该位对应的测试函数将被载入软件。
软件缺陷植入系统还包括判断模块33。判断模块33检测控制位图中控制位的第i个位的值并判断该第i个位的值是第一值还是第二值。判断模块33将判断结果传送给载入模块34,由载入模块根据判断结果将第i给位对应的函数自如软件。
图4是利用本发明所述的缺陷植入系统执行本发明所述的缺陷植入方法的一个具体示例。需要说明的是,该示例只是示意性说明,并不用于限定本发明所述的方法必需结合到本发明所述的系统使用,也不限定本发明所述的系统必需与本发明所述的方法相结合。在本示例中,已有函数库包括8个函数。在步骤41,测试函数模块生成生成包括8个函数的测试函数集,所生成的测试函数集中的8个函数分别与已有函数库中的8个函数对应,具体地,测试函数中的每个函数与已有函数集中相应的函数具有相同的函数名和形参,只是具有一定的缺陷。在步骤43,控制位图生成模块生成包括8个bit的控制位图,控制位图中的每一位对应已有函数集中的一个函数,同样地,也对应测试函数集中与该测试函数集中的函数相对应的函数。该例中,控制位图如图5所示,其值为11100010。在步骤44,判断模块判断控制位图的第i为是否为1,如果是,则进入步骤45,由载入模块将已有函数集中与第i位对应的函数载入软件,反之进入步骤46,由载入模块将测试函数集中与第i位对应的函数载入软件。
本发明所述的软件缺陷率获得系统,包括根据本发明所述的缺陷植入系统,该系统例如为图3所示意的系统。该软件缺陷率获得系统还可包括记录模块,以对每次载入的函数进行记录(参见步骤47),记录的信息例如包括载入的是已有函数集中的函数还是测试函数,记录载入时间;可包括测试模块,以对软件进行测试,发现软件中的缺陷;还可包括计算模块计算缺陷率,亦即由所发现的缺陷与已植入的测试函数集中的函数的比来获得缺陷率,即测试的缺陷覆盖率。
在具体的实现中,假设已有函数为fun1到fun8,而该8个函数被编译为动态文件,且放在lib/correct/目录下,即为lib/correct/fun1.so~fun8.so;以这8个函数为基础,生成8个测试函数,这8个测试函数可以是对fun1到fun8进行少量修该,使得该8个函数为缺陷函数。将该8个函数编译为动态文件,将该动态文件放到lib/error/目录下,即为lib/error/fun’1.so~fun’8.so。在该具体的实现中,测试函数集被放在lib/error/目录下,而已有函数集被放在lib/correct/目录下。控制位图的位51~58分别对应fun1~fun8,在fun1~fun8与fun’1~fun’8一一对应的情况下,控制位图的位51~58也分别对应fun’1~fun’8。判断模块首先判断控制位图的第1位,即51位,该位为1,则载入模块自目录lib/correct/fun1.so~fun8.so将已有函数集中的fun1载入软件;接着,判断模块判断控制位图的第2位,即52位,该位为1,则载入模块自目录lib/correct/fun1.so~fun8.so将已有函数集中的fun2载入软件;判断模块判断控制位图的第3位,即53位,该位为1,则载入模块自目录lib/correct/fun1.so~fun8.so将已有函数集中的fun3载入软件;判断模块判断控制位图的第4位,即54位,该位为0,则载入模块自目录lib/error/fun’1.so~fun’8.so将测试函数集中的fun’4载入软件;判断模块判断控制位图的第5位,即55位,该位为0,则载入模块自目录lib/error/fun’1.so~fun’8.so将测试函数集中的fun’5载入软件;判断模块判断控制位图的第6位,即56位,该位为0,则载入模块自目录lib/error/fun’1.so~fun’8.so将测试函数集中的fun’6载入软件;判断模块判断控制位图的第7位,即57位,该位为1,则载入模块自目录lib/correct/fun1.so~fun8.so将已有函数集中的fun7载入软件;判断模块判断控制位图的第8位,即58位,该位为0,则载入模块自目录lib/error/fun’1.so~fun’8.so将测试函数集中的fun’8载入软件。在这个具体的示例中,植入的测试函数中的函数为4个,如果对软件的测试中,发现了3个缺陷,则缺陷获得率(即缺陷发现率)为3/4,即75%。
根据本发明,借由控制位图,可以灵活地植入缺陷,而且可以根据植入的测试函数的个数亦即软件测试后发现的缺陷的个数方便且容易地获得缺陷发现率。还可依据所获得的缺陷发现率,来评估软件测试质量和能力。
此外,根据本发明,本发明所述的方法还可工作在不同的模式下,例如将控制位图的位全部设置为0,则为教学模式,可以使得使用者观察到缺陷的原理,而通过使位图的位动态随机生成,便可使测试者获得测试质量与能力。
在以上的说明中,控制位图中的位为0便载入测试函数集中的函数,控制位图中的位为1则载入已有函数集中的函数,仅是示意性的。实际应用中,也可以在控制位图中的位为1的情况下载入已有函数集中的函数而在控制位图中的位为0的情况下载入测试函数集中的函数。
以上结合示例阐述了本发明所述的方法和系统,本领域技术人员可以理解到,所有的例子可以相互结合,也可单独实施。应当说明的是,以上具体实施方式只是本发明的示意性而非限制性地说明。尽管已参照上述具体实施方式对本发明进行了详细描述,但本领域的普通技术人员应当理解,依然可对本发明的具体实施方式进行修改或对部分技术特征进行等同替换,而这些修改或等同替换均应涵盖在本发明请求保护的范围内。
Claims (6)
1.一种软件缺陷植入方法,其特征在于,所述方法包括:
设置与已有函数集相对应的测试函数集,所述测试函数集中的函数与已有函数集中的函数一一对应;
生成用于指示向所述软件载入所述已有函数集中的函数还是所述测试函数集中的函数的控制位图,所述控制位图包括与已有函数集中的函数数量相当的控制位,且所述控制位与所述已有函数集中的函数一一对应;以及
根据所述控制位图中控制位的每个位的值向所述软件载入已有函数集或测试函数集的函数;
检测控制位图中控制位的第i个位的值,
判断所述第i个位的值是第一值还是第二值,
在判断所述第i个位的值是第一值的情况下,将所述已有函数集中与所述第i个位对应的函数载入所述软件,在判断所述第i个位的值是第二值的情况下,将与所述已有函数集中与所述第i个位对应的函数相对应的测试函数集中的函数载入所述软件;
其中,所述控制位的每一位由一个bit构成,且所述第一值为1而所述第二值为0,或者所述第一值为0而第二值为1。
2.根据权利要求1所述的软件缺陷植入方法,其特征在于,所述控制位的每一位由若干bit构成。
3.一种软件缺陷率获得方法,其特征在于,所述方法包括:
预先按照如权利要求1到2中任意一个所述的方法向所述软件植入缺陷;
发现所述软件中的缺陷;以及
将所发现的软件中的缺陷的数量与通过所述控制位图的控制位所获得的载入所述软件的测试函数集中的测试函数的数量相比较。
4.一种软件缺陷植入系统,其特征在于,所述系统包括:
测试函数集生成模块,用以生成与已有函数集相对应的测试函数集,所述测试函数集中的函数与已有函数集中的函数一一对应;
控制位图生成模块,用以生成指示向所述软件载入所述已有函数集中的函数还是所述测试函数集中的函数的控制位图,所述控制位图包括与已有函数集中的函数数量相当的控制位,且所述控制位与所述已有函数集中的函数一一对应;以及
载入模块,用以根据所述控制位图中控制位的每个位的值向所述软件载入已有函数集或测试函数集的函数;
用于检测控制位图中控制位的第i个位的值并判断所述第i个位的值是第一值还是第二值的判断模块,其中,所述判断模块将判断结果传送给所述载入模块,所述载入模块在所述第i个位的值是第一值的情况下,将所述已有函数集中与所述第i个位对应的函数载入所述软件,在判断所述第i个位的值是第二值的情况下,将与所述已有函数集中与所述第i个位对应的函数相对应的测试函数集中的函数载入所述软件;其中i为自然数;
其中,所述控制位图生成模块生成的控制位图中,每一个控制位由一个bit构成,且所述第一值为1而所述第二值为0,或者所述第一值为0而所述第二值为1。
5.根据权利要求4所述的软件缺陷植入系统,其特征在于,所述控制位的每一位由若干bit构成。
6.一种软件缺陷率获得系统,其特征在于,所述系统包括如权利要求4到5中任意一个所述的软件缺陷植入系统,用于发现所述软件中的缺陷的测试模块,以及用于将测试模块所发现的软件中缺陷的数量与通过控制位图的控制位所获得的载入所述软件的测试函数集中的测试函数的数量相比较的计算单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110417272.8A CN103164329B (zh) | 2011-12-14 | 2011-12-14 | 软件缺陷植入方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110417272.8A CN103164329B (zh) | 2011-12-14 | 2011-12-14 | 软件缺陷植入方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103164329A CN103164329A (zh) | 2013-06-19 |
CN103164329B true CN103164329B (zh) | 2016-03-09 |
Family
ID=48587434
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110417272.8A Active CN103164329B (zh) | 2011-12-14 | 2011-12-14 | 软件缺陷植入方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103164329B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1770117A (zh) * | 2004-11-02 | 2006-05-10 | 华为技术有限公司 | 一种故障选择的方法及装置 |
CN101872323A (zh) * | 2009-04-22 | 2010-10-27 | 曾凡平 | 一种基于虚拟机的故障注入测试方法 |
-
2011
- 2011-12-14 CN CN201110417272.8A patent/CN103164329B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1770117A (zh) * | 2004-11-02 | 2006-05-10 | 华为技术有限公司 | 一种故障选择的方法及装置 |
CN101872323A (zh) * | 2009-04-22 | 2010-10-27 | 曾凡平 | 一种基于虚拟机的故障注入测试方法 |
Non-Patent Citations (3)
Title |
---|
20060615.基于Windows API的通用型缺陷植入模型的研究与设计.《中国优秀硕士学位论文全文数据库• * |
信息科技辑》.2006,(第6期),I138-33. * |
软件缺陷估计中捕获再捕获方法的改进;聂剑平等;《计算机工程与应用》;20081201;第44卷(第34期);聂剑平等 * |
Also Published As
Publication number | Publication date |
---|---|
CN103164329A (zh) | 2013-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102169846B (zh) | 一种在集成电路晶圆测试过程中实现多维变量密码并行写入的方法 | |
CN1952818B (zh) | 自动检验测试结果的程序单元测试方法 | |
CN107861862A (zh) | Ui自动化测试方法、装置及计算机可读存储介质 | |
CN105912458A (zh) | 一种用于动态检测c/c++内存泄露的方法及系统 | |
CN102866944A (zh) | 一种压力测试系统及方法 | |
CN105868543A (zh) | 基于逆高斯寿命分布的贮存寿命试验加速因子评估方法 | |
CN104063307B (zh) | 一种软件测试方法和系统 | |
Prabhakararao et al. | Strategies and behaviors of end-user programmers with interactive fault localization | |
CN106547695B (zh) | 一种规模软件的测试系统及方法 | |
CN107885627A (zh) | 一种服务器自动化测试系统及方法 | |
CN103164329B (zh) | 软件缺陷植入方法及系统 | |
CN107844413A (zh) | 一种测试方法和装置 | |
CN104834586B (zh) | 安卓界面自动化测试方法、装置及系统 | |
CN105320593B (zh) | 多路帧随机数据验证处理方法及装置 | |
Wiederseiner et al. | An open-source tool for automated generation of black-box xunit test code and its industrial evaluation | |
Jia et al. | Generating software test data by particle swarm optimization | |
CN108627195A (zh) | 一种对记忆体模组进行检测的智能检测方法及智能检测系统 | |
CN107943635A (zh) | 一种存储设备的测试方法、装置及介质 | |
CN107038110A (zh) | 白盒测试的方法和系统 | |
Tse et al. | Testing object-oriented industrial software without precise oracles or results | |
CN105933700B (zh) | 电视机应用程序许可证的检测方法、装置及电视机 | |
Lee et al. | Architecture-based software testing | |
CN102788952A (zh) | 芯片测试方法 | |
Wang et al. | Weaving context sensitivity into test suite construction | |
CN106250298A (zh) | 一种测试方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |