一种软件测试方法及装置转让专利

申请号 : CN201910975326.9

文献号 : CN110888799B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李秋林金伟光

申请人 : 京东数字科技控股有限公司

摘要 :

本申请涉及一种软件测试方法及装置,其中方法包括:获取应用程序中的第一页面对应的控件库;其中,所述应用程序中包括至少一个页面,所述控件库中包括至少一个控件;获取对所述控件库中的控件进行操作后的操作信息;在所述操作信息符合预设的退出判定策略时,退出所述第一页面。通过本申请中的方法能够在应用程序的稳定性测试会全面,不会再因为无法深入,或者深入后无法返回,造成元素操作不全面的问题;稳定性测试将会更加省时间,平常的乱点测试一次会需要几个小时,无法完全遍历,而本申请中的方式将会很快的遍历所有元素,并且能够尽可能多的次数在相同时间内做更多次操作,确保应用程序在压力测试的强度相同情况下,需要时间更少。

权利要求 :

1.一种软件测试方法,其特征在于,包括:预先获取应用程序中待测试的所有控件;

获取应用程序中的第一页面对应的控件库;其中,所述应用程序中包括至少一个页面,所述控件库中包括至少一个待测试的控件;

将各个控件库保存到脚本中;

获取对所述脚本中调取的控件库中的待测试的控件进行操作后的操作信息;

在所述操作信息符合预设的退出判定策略时,退出所述第一页面;所述退出判定策略,包括:对所述控件库中的所有控件完成遍历操作,以及对所述控件库中预设比例的所述控件分别完成预设次数的操作中的至少一种;

所述获取所述应用程序中待测试的所有控件,包括:识别所述应用程序各个页面上的控件;

获取对所述控件的选定操作;

根据所述选定操作,录制得到所述应用程序中待测试的所有控件。

2.根据权利要求1所述的软件测试方法,其特征在于,还包括:确定所述应用程序中各个页面所对应的标识及控件,并得到控件与标识之间的第一对应关系;

按照所述第一对应关系对各个控件进行分类,并得到每个所述页面对应的控件库以及所述控件库与标识之间的第二对应关系。

3.根据权利要求2所述的软件测试方法,其特征在于,所述获取应用程序中的第一页面对应的控件库,包括:

获取所述第一页面的标识;

根据所述第二对应关系确定所述第一页面对应的控件库。

4.根据权利要求1所述的软件测试方法,其特征在于,获取对所述控件库中的所有控件进行操作后的操作信息,包括:随机选取所述控件库中的控件;

随机选择操作类型;

根据所述操作类型对所述控件库中的控件执行相应的操作;

获取所述操作对应的操作信息。

5.根据权利要求1所述的软件测试方法,其特征在于,还包括:获取对所述应用程序中的控件进行操作的总时长;

在所述总时长达到预设的时长阈值时,停止对所述应用程序中的控件进行操作。

6.一种软件测试装置,其特征在于,包括:所述装置包括一个模块,用于预先获取应用程序中待测试的所有控件;

控件库获取模块,用于获取应用程序中的第一页面对应的控件库;其中,所述应用程序中包括若干个页面,每个控件库中包括若干个待测试的控件;

所述装置还包括一个模块,用于将各个控件库保存到脚本中;

操作信息获取模块,用于获取对所述脚本中调取的控件库中的至少一个待测试的控件进行操作后的操作信息;

退出模块,用于在所述操作信息超过预设的退出判定策略时,退出所述第一页面;所述退出判定策略,包括:对所述控件库中预设比例的所述控件分别完成预设次数的操作;

所述装置还包括一个模块,用于预先获取所述应用程序中待测试的所有控件;所述获取所述应用程序中待测试的所有控件,包括:识别所述应用程序各个页面上的控件;获取对所述控件的选定操作;根据所述选定操作,录制得到所述应用程序中待测试的所有控件。

7.一种电子设备,其特征在于,包括:处理器、通信接口、存储器和通信总线,其中,所述处理器、通信接口和存储器通过通信总线完成相互间的通信;

所述存储器,用于存放计算机程序;

所述处理器,用于执行所述计算机程序时,实现权利要求1‑5任一项所述的测试方法。

8.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行权利要求1‑5任一项所述的测试方法。

说明书 :

一种软件测试方法及装置

技术领域

[0001] 本申请涉及软件开发技术领域,尤其涉及一种软件测试方法及装置。

背景技术

[0002] 随着互联网的发展,移动端app的开发及使用越来越多;目前移动端app由于碎片化的问题以及app自身原因,需要进行稳定性测试,也可称为app的压力测试,或者暴力测
试,就是在app上不符合人逻辑的高频率操作,验证下app在不同手机上能否在强度乱点情
况下不出现崩溃情况。
[0003] 目前,现有技术中的移动端app在进行遍历测试的时候一般分为两种方式,一个是通过原始monkey进行测试,即所谓的乱点测试,以此来达到测试app稳定性的功能;另一种
方式是单纯的全遍历,就是获取到手机上所有的控件,然后针对每个控件进行点击或者输
入操作。在实现本发明的过程中发明人发现:对于第一种乱点测试方法,在测试时,经常出
现没法进入深层次页面,各个页面的很多按钮都未能点击到,以及在点击的页面为比较深
层次页面时会难以退回来等问题;对于第二种方式,虽然相对于第一种测试方法而言能够
在理想状态下操作到每一个页面控件,但是仍然存在点击的页面为比较深层次页面时会难
以退回来的问题,造成预期的测试效果无法达到。
[0004] 因此现有技术中的方案在遍历时具有完全不可控问题,可能几个小时都在某几个页面,无法进入更深层次,或者无法退出深层次遍历。

发明内容

[0005] 为了解决相关技术中存在的技术问题,本申请实施例提供了一种软件测试方法及装置。
[0006] 第一方面,本申请实施例提供了一种软件测试方法,包括:
[0007] 获取应用程序中的第一页面对应的控件库;其中,所述应用程序中包括至少一个页面,所述控件库中包括至少一个控件;
[0008] 获取对所述控件库中的控件进行操作后的操作信息;
[0009] 在所述操作信息符合预设的退出判定策略时,退出所述第一页面。
[0010] 进一步的,如前述的软件测试方法,还包括:
[0011] 预先获取所述应用程序中待测试的所有控件;
[0012] 确定所述应用程序中各个页面所对应的标识及控件,并得到控件与标识之间的第一对应关系;其中,不同的所述页面所对应的所述标识各不相同;
[0013] 按照所述第一对应关系对各个控件进行分类,并得到每个所述页面对应的控件库以及所述控件库与标识之间的第二对应关系。
[0014] 进一步的,如前述的软件测试方法,所述获取应用程序中的第一页面对应的控件库,包括:
[0015] 获取所述第一页面的标识;
[0016] 根据所述第二对应关系确定所述第一页面对应的控件库。
[0017] 进一步的,如前述的软件测试方法,所述获取所述应用程序中待测试的所有控件,包括:
[0018] 识别所述应用程序各个页面上的控件;
[0019] 获取对所述控件的选定操作;
[0020] 根据所述选定操作,录制得到所述应用程序中待测试的所有控件。
[0021] 进一步的,如前述的软件测试方法,获取对所述控件库中的所有控件进行操作后的操作信息,包括:
[0022] 随机选取所述控件库中的控件;
[0023] 随机选择操作类型,其中,所述操作类型包括:点击、滑动、双击输入;
[0024] 根据所述操作类型对所述控件库中的控件执行相应的操作;
[0025] 获取所述操作对应的操作信息。
[0026] 进一步的,如前述的软件测试方法,所述操作信息符合预设的退出判定策略,包括:
[0027] 根据所述操作信息确定对所述控件库中的所有控件完成遍历操作,以及对所述控件库中预设比例的所述控件分别完成预设次数的操作中的至少一种。
[0028] 进一步的,如前述的软件测试方法,还包括:
[0029] 获取对所述应用程序中的控件进行操作的总时长;
[0030] 在所述总时长达到预设的时长阈值时,停止对所述应用程序中的控件进行操作。
[0031] 第二方面,本申请实施例提供了一种软件测试装置,包括:
[0032] 控件库获取模块,用于获取应用程序中的第一页面对应的控件库;其中,所述应用程序中包括若干个页面,每个控件库中包括若干个控件;
[0033] 操作信息获取模块,用于获取对所述对应的控件库中的至少一个控件进行操作后的操作信息;
[0034] 退出模块,用于在所述操作信息超过预设的退出判定策略时,退出所述第一页面。
[0035] 第三方面,本申请实施例提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,所述处理器、通信接口和存储器通过通信总线完成相互间的通信;
[0036] 所述存储器,用于存放计算机程序;
[0037] 所述处理器,用于执行所述计算机程序时,实现如第一方面中任一项所述的测试方法。
[0038] 第四方面,本申请实施例提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如第一方面中任一
项所述的测试方法。
[0039] 本申请实施例提供的一种软件测试方法及装置,其中方法包括:获取应用程序中的第一页面对应的控件库;其中,所述应用程序中包括至少一个页面,所述控件库中包括至
少一个控件;获取对所述控件库中的控件进行操作后的操作信息;在所述操作信息符合预
设的退出判定策略时,退出所述第一页面。与现有技术相比具有如下优点:应用程序的稳定
性测试会全面,不会再因为无法深入,或者深入后无法返回,造成元素操作不全面的问题;
稳定性测试将会更加省时间,平常的乱点测试一次会需要几个小时,无法完全遍历,而本申
请中的方式将会很快的遍历所有元素,并且能够尽可能多的次数在相同时间内做更多次操
作,确保应用程序在压力测试的强度相同情况下,需要时间更少。

附图说明

[0040] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
[0041] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而
言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0042] 图1为本申请实施例提供的一种软件测试方法的流程示意图;
[0043] 图2为本申请实施例提供的又一种软件测试方法的流程示意图;
[0044] 图3为如图1所示步骤S1的一种实施例的方法流程示意图;
[0045] 图4为如图2所示步骤S4的一种实施例的方法流程示意图;
[0046] 图5为本申请实施例提供的一种软件测试装置的功能模块结构示意图;
[0047] 图6为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

[0048] 为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是
本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人
员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0049] 图1为本申请实施例提供的一种软件测试方法,包括如下所述步骤S1至S3:
[0050] S1.获取应用程序中的第一页面对应的控件库;其中,所述应用程序中包括至少一个页面,所述控件库中包括至少一个控件;
[0051] 具体的,第一页面为应用程序中任一页面;且每个页面都有一个对应的控件库,同一控件库中的控件都是位于同一个页面上的控件;一般的,所述控件为页面中能够识别操
作的功能模块,例如:输入框、点击按钮等等;
[0052] S2.获取对控件库中的控件进行操作后的操作信息;
[0053] 具体的,所述操作信息为:通过控件测试软件对同一页面中的各个控件进行操作的信息;操作信息可以包括:分别对每个控件的操作次数,对控件库中所有控件的操作总次
数等等,具体操作信息可以根据退出判定策略进行选择;具体的,所述操作的类型包括但不
限于:点击(单击)、双击、滑动、输入;
[0054] S3.在操作信息符合预设的退出判定策略时,退出第一页面;
[0055] 在执行本方法时,会预先设置一个或多个退出判定策略。所述退出判定策略用于判定何时退出对所述第一页面中的控件的测试,且所述操作信息中的信息的类型至少包括
所述退出判定策略中信息的类型,因此能够通过所述退出判定策略以及操作信息中相同类
型的信息的比较,判断所述操作信息是否已经满足对页面中的控件进行操作的要求;举例
的:当存在两个退出判定策略时,且其中一个退出判定策略为:当一页面中的所有控件都进
行过操作,则退出当前页面;另一个退出判定策略为:80%的此页面控件已经点击多次(如5
次),则退出当前页面;则操作信息需满足上述两个判定策略才退出对当前页面的测试;获
取操作信息中对各个控件的操作次数,并根据对各个控件的操作次数判断是否对每个控件
都进行过操作,以及是否对至少80%的控件点击5次,即是否达到符合上述两个退出判定策
略;若没有对每个控件都进行过操作,或未达到对至少80%的控件点击5次,则继续停留在
该页面,并对该页面中的控件继续进行操作。
[0056] 而相关技术在进行测试时,极有可能是因为出现控件测试软件无法进入下一页面或无法退出当前页面的情况,因此会造成其它页面中的控件无法进行操作,无法完成对软
件中的控件的遍历,造成元素操作不全面的问题,同时会浪费大量时间。
[0057] 采用本申请中的方法,可以及时退出当前页面,返回上一层,进而避免出现上述技术问题,更加节约测试时间,能够很快的遍历所有元素,并且能够尽可能多的次数在相同时
间内做更多次操作,确保app压力测试强度相同情况下,需要时间更少。
[0058] 如图2所示,在一些实施例中,如前述的软件测试方法,还包括如下所述步骤S4至S7:
[0059] S4.预先获取应用程序中待测试的所有控件;
[0060] 在执行本方法时,在需要进行控件测试的应用程序中确定其中待测试的控件,举例的,由于例如图片框控件等控件在对其进行点击时不会具体执行某一动作,因此,可将预
设不会根据操作执行动作的相关控件则定为不待测试的控件;假如在选择时发现本不该对
操作有反应的控件,在操作时发生了不应该的反应,或者控件发生了与其预设不同的反应
时,均可将其作为待测试的控件;具体的,需要对哪些控件进行测试可以根据具体的测试要
求进行选择,上述例子仅作为实际应用时的一种可选示例;
[0061] S5.确定应用程序中各个页面所对应的标识及控件,并得到控件与标识之间的第一对应关系;其中,不同的页面所对应的标识各不相同;
[0062] 具体的,标识具有唯一性,且可选的,每个页面所对应的标识可以通过ID进行体现及区分,所述得到控件与标识之间的第一对应关系可以是通过将标识写入控件中以实现第
一对应关系;由于需要确定测试软件在测试时是在哪一个页面上进行的,以得到在对应页
面上的操作信息,因此通过确定各个页面所对应的标识,以及得到控件与标识之间的第一
对应关系,在每一次测试时都能够确定该次测试针对的是哪一个页面中的控件;
[0063] S6.按照第一对应关系对各个控件进行分类,并得到每个页面对应的控件库以及控件库与标识之间的第二对应关系;
[0064] 在执行本方法时,将同一个页面的控件进行打包存储在同一个控件库中,并且由于控件库中存储的都是同一个页面的控件,因此也获得各个控件库所对应的页面(标识),
即得到所述第二对应关系;进而实现了以页面为模块单位对控件进行存储;
[0065] 进一步的,在得到各个控件库之后,将各个控件库保存到脚本中;
[0066] 具体的,保存到脚本中的每个控件的信息包括:class,xpath,ID,text,图片等;其中,ID即为所述页面的标识;一般的,此处所述的脚本为测试脚本,通过将控件库保存至脚
本中之后,控件测试软件可以随时从脚本中调取控件库,再随机执行其中的任一控件即可
开始对各个页面的控件进行操作测试。
[0067] 如图3所示,在一些实施例中,如前述的软件测试方法,所述步骤S1.获取应用程序中的第一页面对应的控件库,包括如下所述步骤S11及S12:
[0068] S11.获取第一页面的标识;
[0069] 具体的,在进行测试时,如果需要确定当前进行测试的是哪个页面,计算机可以通过标识去识别。因此首先需要确定该页面的标识,可选的,所述标识为ID;
[0070] S12.根据第二对应关系确定第一页面对应的控件库;可选的,从存储有控件库的脚本中调取出所述第一页面对应的控件库;
[0071] 在确定了标识之后即可得到当前进行控件操作的是哪个页面,然后根据第二对应关系确定该页面对应的控件库,进而从脚本中调取出该控件库,控件测试软件可以该页面
的任一控件进行操作测试。
[0072] 如图4所示,在一些实施例中,如前述的软件测试方法,所述步骤S4获取应用程序中待测试的所有控件,包括如下所述步骤S41至S3:
[0073] 一般的,在测试智能移动终端的应用程序稳定性时,需要将智能移动终端的应用程序的页面映射至PC端进行测试;其中一种具体的实现方法可以是:通过控件信息搜集工
具,将终端的app界面实时映射到PC端,进而可以通过PC端上执行本方法的程序对app上的
控件进行测试;
[0074] S41.识别所述应用程序各个页面上的控件;
[0075] 具体的,在映射至PC端上的页面中,获取当前页面上的所有控件,其中一种获取方法可以是:通过控件检测软件自动框选出各个页面上的控件;
[0076] S42.获取对所述控件的选定操作;
[0077] 具体的,由于一些控件即使对其执行诸如点击或拖动等操作,也无法产生相应的动作,因此可以不对该类控件进行测试;此外,还可以基于其他理由对待测试的控件进行筛
选,以得到满足测试需求的控件;因此,通过本方法中的获取对所述控件的选定操作,可以
通过人为选择或者设定规则进行控件筛选,进而确定各个页面上的所有控件中待测试的控
件;
[0078] S43.根据所述选定操作,录制得到所述应用程序中待测试的所有控件;
[0079] 具体的,每进行一次选定操作,便选定了一个待测试的控件,因此,根据选定操作可以实时进行待测试的控件的录制,在完成对应用程序中所有控件的选择之后便得到了待
测试的所有控件;进一步的,在选择了待测试的控件之后,会将控件的信息:class,xpath,
ID,text,图片等等信息都保存到脚本中。
[0080] 通过本实施例中的方法,可以有效避免将大多时间浪费在了根本没有任何事件的控件上;也就是说,将点击没任何效果的控件,无论如何操作都是不可能崩溃,也不会有任
何反应的控件都进行排除,进而可以节约测试的时间。
[0081] 在一些实施例中,如前述的软件测试方法,所述步骤S2获取对控件库中的所有控件进行操作后的操作信息,包括:
[0082] 随机选取控件库中的控件;
[0083] 在执行本方法时,在测试过程中,对控件的选取可以是完全随机的;
[0084] 随机选择操作类型,其中,操作类型包括:点击、滑动、双击输入;
[0085] 在执行本方法时,在选取了一个控件之后,对其采用何种操作也可以是随机的;
[0086] 根据操作类型对控件库中的控件执行相应的操作;
[0087] 获取所述操作对应的操作信息。
[0088] 具体的,即使有些控件只能用于输入文本,但是仍然可以对其执行点击滑动等操作,只是其不能产生对应的反应罢了,因为用户在进行操作时,不一定会完全按照控件所能
识别的操作对该控件进行操作;因此采用本实施例中的对各个控件采用随机性的操作,可
以最全面地对软件的稳定性进行测试,提高最终开发软件的稳定性,提高用户体验。
[0089] 在一些实施例中,如前述的软件测试方法,操作信息符合预设的退出判定策略,包括:
[0090] 根据所述操作信息确定对所述控件库中的所有控件完成遍历操作,以及对所述控件库中预设比例的所述控件分别完成预设次数的操作中的至少一种。
[0091] 也就是说,当一个控件测试软件在同一个页面中,对其中的每个控件都进行了测试,或者对一页面中的譬如N%(如80%)的此页面控件已经点击M次(如5次)之后;或者对一
页面中的每个控件都进行了测试,且对该页面中的譬如N%(如80%)的此页面控件已经点
击M次(如5次)之后;还滞留在这个页面,并持续对该页面的控件进行测试,那么久判定操作
信息符合预设的瑞出判定策略;其中,预设的退出判定策略可以根据实际测试需求进行选
择,进一步的,在判定所述操作信息符合预设的退出判定策略之后,那么就执行返回操作
(输入back键就能返回)。
[0092] 在一些实施例中,如前述的软件测试方法,还包括:
[0093] 获取对应用程序中的控件进行操作的总时长;
[0094] 具体的,所述总时长:是从进行控件稳定性测试开始,至当下的时间计算得到的;
[0095] 在总时长达到预设的时长阈值时,停止对应用程序中的控件进行操作;
[0096] 在执行本方法时,会判断总时长是否达到预设的时长阈值;一般的,时长阈值为可以根据具体测试要求进行选择,一般为几个小时,由于一般采用monkey进行测试,因此,由
于monkey测试的随机性,在时长阈值内,大多数的控件都能被操作一次或多次;当测试时长
达到了预设的时长阈值时,便停止对应用程序进行稳定性操作,进而在无人监控的情况下
也能够实现测试的自动停止。
[0097] 如图5所示,根据本申请的另一方面,还提供了一种软件测试装置,包括:
[0098] 控件库获取模块1,用于获取应用程序中的第一页面对应的控件库;其中,应用程序中包括若干个页面,每个控件库中包括若干个控件;
[0099] 操作信息获取模块2,用于获取对对应的控件库中的至少一个控件进行操作后的操作信息;
[0100] 退出模块3,用于在操作信息超过预设的退出判定策略时,退出第一页面。
[0101] 具体的,本发明实施例的装置中各模块实现其功能的具体过程可参见方法实施例中的相关描述,此处不再赘述。
[0102] 根据本申请的另一个实施例,还提供一种电子设备,包括:如图6所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信
接口1502,存储器1503通过通信总线1504完成相互间的通信。
[0103] 存储器1503,用于存放计算机程序;
[0104] 处理器1501,用于执行存储器1503上所存放的程序时,实现上述方法实施例的步骤。
[0105] 上述电子设备提到的总线可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry  Standard 
Architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表
示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0106] 通信接口用于上述电子设备与其他设备之间的通信。
[0107] 存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non‑Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可
以是至少一个位于远离前述处理器的存储装置。
[0108] 上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital 
SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,
ASIC)、现场可编程门阵列(Field‑Programmable Gate Array,FPGA)或者其他可编程逻辑
器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0109] 本申请实施例还提供一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行上述方法实施例的步骤。
[0110] 需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之
间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在
涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些
要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设
备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除
在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0111] 以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的
一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明
将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一
致的最宽的范围。