本发明涉及软件测试技术领域,具体设计一种具有自学习功能的测试用例生成方法及系统。
背景技术:
发明人在实现本发明的过程中发现,现有自动化软件测试都是通过测试人员自己编写测试用例,人工进行操作。具体过程为:测试人员执行操作对待测试软件进行测试,测试人员人工记录所执行的操作及对应的结果,根据执行的操作和对应的结果编写测试用例。这种方式测试效率较低,还不便于对测试用例进行调整,测试用例的维护成本较高。因此,有必要改进现有技术中的缺陷。
技术实现要素:
本发明实施例提供一种测试用例生成方法及系统,以解决现有技术中测试人员需人工操作导致的效率低、维护成本高的技术问题。
为解决上述技术问题,本发明实施例提供一种测试用例生成方法,包括如下步骤:
获取待测试软件的运行环境参数;
获取所述待测试软件的至少两组输入控件数据序列,以及响应于每一组所述控件数据序列得到的所述待测试软件的至少两组输出操作事件序列;
训练所述至少两组控件数据序列,得到输入训练模型,训练所述至少两组操作事件序列,得到输出训练模型;
根据所述输入训练模型和所述输出训练模型获取所述待测试软件在所述运行环境参数下的测试用例。
可选地,上述测试用例生成方法中,所述训练所述至少两组控件数据序列,得到输入训练模型包括:
根据预设输入特征属性集合解析每一组所述控件数据序列,得到每一组所述控件数据序列的特征数据;其中,所述控件数据序列的特征数据包括与每一所述输入特征属性对应的特征值;
根据所述输入特征属性及每一组所述控件数据序列的特征数据,得到所述输入训练模型。
可选地,上述测试用例生成方法中,所述根据所述输入特征属性及每一组所述控件数据序列的特征数据,得到所述输入训练模型包括:
获取每一组所述控件数据序列的特征数据中与同一输入特征属性对应的所有特征值,将所有特征值的均值作为与该输入特征属性对应的训练特征值;
根据每一输入特征属性及其对应的训练特征值,得到所述输入训练模型。
可选地,上述测试用例生成方法中,所述根据所述输入特征属性及每一组所述控件数据序列的特征数据,得到所述输入训练模型包括:
获取每一组所述控件数据序列的特征数据中与同一输入特征属性对应的所有特征值,根据所有特征值得到训练特征值范围;
根据每一输入特征属性及其对应的训练特征值范围,得到所述输入训练模型。
可选地,上述测试用例生成方法中,所述获取每一组所述控件数据序列的特征数据中与同一输入特征属性对应的所有特征值,根据所有特征值得到训练特征值范围包括:
根据所有特征值中的最大值和最小值得到所述训练特征值范围;或,
根据所有特征值得到特征值均值,根据所述特征值均值及允许浮动值得到训练特征值范围。
可选地,上述测试用例生成方法中,所述训练所述至少两组操作事件序列,得到输出训练模型包括:
根据预设输出特征属性集合解析每一组所述操作事件序列,得到每一组所述操作事件序列的特征数据;其中,所述操作事件序列的特征数据包括与每一所述输出特征属性对应的特征值;
根据所述输出特征属性及每一组所述操作事件序列的特征数据,得到所述输出训练模型。
本发明实施例还提供一种测试用例生成装置,包括:
环境参数获取模块,获取待测试软件的运行环境参数;
序列获取模块,获取所述待测试软件的至少两组输入控件数据序列,以及响应于每一组所述控件数据序列得到的所述待测试软件的至少两组输出操作事件序列;
训练模块,训练所述至少两组控件数据序列,得到输入训练模型,训练所述至少两组操作事件序列,得到输出训练模型;
用例生成模块,根据所述输入训练模型和所述输出训练模型获取所述待测试软件在所述运行环境参数下的测试用例。
可选地,上述的测试用例生成装置中,所述训练模块用于:
根据预设输入特征属性集合解析每一组所述控件数据序列,得到每一组所述控件数据序列的特征数据;其中,所述控件数据序列的特征数据包括与每一所述输入特征属性对应的特征值;
根据所述输入特征属性及每一组所述控件数据序列的特征数据,得到所述输入训练模型。
可选地,上述的测试用例生成装置中,所述训练模块具体用于:
获取每一组所述控件数据序列的特征数据中与同一输入特征属性对应的所有特征值,将所有特征值的均值作为与该输入特征属性对应的训练特征值;
根据每一输入特征属性及其对应的训练特征值,得到所述输入训练模型。
可选地,上述的测试用例生成装置中,所述训练模块具体用于:
获取每一组所述控件数据序列的特征数据中与同一输入特征属性对应的所有特征值,根据所有特征值得到训练特征值范围;
根据每一输入特征属性及其对应的训练特征值范围,得到所述输入训练模型。
可选地,上述的测试用例生成装置中,所述训练模块具体用于:
根据所有特征值中的最大值和最小值得到所述训练特征值范围;或,
根据所有特征值得到特征值均值,根据所述特征值均值及允许浮动值得到训练特征值范围。
可选地,上述的测试用例生成装置中,所述训练模块还用于:
根据预设输出特征属性集合解析每一组所述操作事件序列,得到每一组所述操作事件序列的特征数据;其中,所述操作事件序列的特征数据包括与每一所述输出特征属性对应的特征值;
根据所述输出特征属性及每一组所述操作事件序列的特征数据,得到所述输出训练模型。
本发明实施例的上述方案与现有技术相比,至少具有以下有益效果:
本发明实施例所述的测试用例生成方法及系统,其中的测试用例生成方法,在生成某一待测试软件的测试用例时,获取待测试软件的运行环境参数,及至少两组输入控件数据序列,以及响应于每一组所述控件数据序列得到的所述待测试软件的至少两组输出操作事件序列;训练控件数据序列得到输入训练模型;训练操作事件序列得到输出训练模型;根据输入训练模型和输出训练模型所述待测试软件在所述运行环境参数下的测试用例。通过本发明实施例上述方案,测试人员只需要对待测试软件进行操作,通过本发明实施例能够自动记录输入操作及对应的输出结果,并自动训练输入控件数据序列和输出操作事件序列得到对应训练模型,根据训练模型能够即可得到测试用例,从而能够大大减少测试人员的工作量,提高测试效率,降低测试用例的维护成本。
附图说明
图1是本发明一个实施例所述的测试用例生成方法的流程图;
图2是本发明一个实施例所述的到输入训练模型方法流程图;
图3是本发明一个实施例所述的自动化测试方法的流程图;
图4是本发明一个实施例所述的自动化测试系统的原理框图。
具体实施方式
本发明实施例所述的测试用例生成方法及系统,用于对待测软件进行测试的终端设备中。通过本发明实施例所述的测试用例生成方法将测试人员执行的测试操作过程进行对象化模型化处理,根据模型化处理结果即可得到测试用例,下面通过具体实施例并结合说明书附图对本发明的方案进行详细说明。
实施例1
本实施例提供一种测试用例生成方法,应用于安装了待测试软件的终端设备中,如图1所示,包括如下步骤:
S101:获取待测试软件的运行环境参数。所述环境参数包括软件运行所要求的各种条件,包括软件环境和硬件环境。譬如各种操作系统、cpu型号及物理参数,对内存的要求等。而许多应用软件不仅仅要求硬件条件,还需要软件环境的条件的支持,比如windows支持的软件linux不一定支持,苹果的软件只能在苹果机上运行,如果这些软件想跨平台运行,必须修改软件本身,或者模拟它所需要的软件环境。
S102:获取所述待测试软件的至少两组输入控件数据序列,以及响应于每一组所述控件数据序列得到的所述待测试软件的至少两组输出操作事件序列;本步骤中,可根据测试人员实际的输入操作得到控件数据序列,具体地在终端设备中,预先已经定义好针对每一种操作方式,其代码化后对应的数据序列,因此只要识别出测试人员的输入操作,根据已有定义方式,即可得到控件数据序列。而对于本实施例中的方案来说,获取越多组的控件数据序列、操作事件序列得到训练结果会越准确,但是需要处理的数据量也就越大,在实际情况中可根据终端设备的数据能力选择控件数据序列、操作事件序列的组数。
S103:训练所述至少两组控件数据序列,得到输入训练模型,训练所述至少两组操作事件序列,得到输出训练模型;本步骤中将所述控件数据序列作为样本数据,选择特定的数学模型作为计算框架,通过数据优化计算框架中的参数,使得计算框架得到的结果符合实际需求。例如可选择模式识别算法实现,具体的可以选择模式识别算法中的自组织神经网络算法实现。对操作事件序列的训练方式可以和控件数据序列的训练方法相同,也可以不同。如果控件数据序列、操作事件序列采用相同的训练方法,可以简化训练过程,如果采用不同的训练方法,需要引入至少两种训练模型,使训练过程稍微复杂一些。
S104:根据所述输入训练模型和所述输出训练模型获取所述待测试软件在所述运行环境参数下的测试用例。
下面以手机解锁软件作为待测试软件进行说明。
现有的智能手机,可以通过滑动解锁块的方法实现解锁操作。针对该软件进行测试,输入操作即为滑动解锁块,对滑动解锁块进行代码化处理后得到与滑动解锁块对应的控件数据序列。而得到的输出结果为解锁进入主界面。运行环境为手机的软件环境和硬件环境。本方法对多次“滑动解锁模块”的操作对应的控件数据序列进行训练得到输入训练模型。并对“解锁进入主界面”对应的操作事件序列进行训练得到输出训练模型,输入训练模型和输出训练模型的对应条件则为手机的软件环境和硬件环境,由此形成测试用例。在利用该测试用例进行测试时,测试人员执行滑动解锁操作,与对应的输入训练模型匹配,那么根据对应的输出训练模型获取的操作事件序列即为进入主界面,将其作为期望的输出结果,通过获取实际的输出结果和期望的输出结果进行比对,获得自动化测试结果。例如,实际的输入操作为滑动解锁模块,期望的输出结果为进入主界面,实际的输出结果如果为进入主界面,则与期望的输出结果相同,那么针对此测试用例,该软件测试结果是合格的。反之,如果在滑动解锁模块的输入操作下,没有进入主界面,而是出现了其他的输出结果,那么针对此测试用例,该软件测试的结果是不合格的。
采用本实施例中的上述方案,能够自动生成测试用例,测试人员只需要对待测试软件进行操作,通过本发明实施例能够自动记录输入操作及对应的输出结果,并采用模式识别算法例如自组织神经网络训练得到与输入控件数据序列和输出操作事件序列对应的特定对象模式,得到训练模型,根据训练模型能够得到测试用例。从而能够大大减少测试人员的工作量,提高测试效率,降低测试用例的维护成本。
实施例2
本实施例提供测试用例生成方法,在实施例1中的步骤S103中,所述训练所述至少两组控件数据序列,得到输入训练模型可通过如下方式实现:
S201:根据预设输入特征属性集合解析每一组所述控件数据序列,得到每一组所述控件数据序列的特征数据;其中,所述控件数据序列的特征数据包括与每一所述输入特征属性对应的特征值。
S202:根据所述输入特征属性及每一组所述控件数据序列的特征数据,得到所述输入训练模型。
其中预设输入特征属性集合,为预先存储在终端设备中的,对于不同的终端设备、不同待测试软件,其输入属性特征可能有所不同。例如,对于带有触摸屏的终端设备,其中输入可包括滑动操作,那么针对滑动操作的输入特征属性可能包括:触摸屏幕,移动距离,初始坐标,最终坐标,触摸力度,触摸时间等等。根据上述特征属性对多次滑动操作对应的控件数据序列进行训练,得到输入训练模型,根据该输入训练模型可以确定某一操作是否与滑动操作匹配。检测到输入操作时,根据上述输入特征属性对输入操作进行解析,如果执行的是滑动操作,能够获得输入操作中与上述输入特征属性对应的解析结果。
可选地,S202可通过如下方式实现:
S2021:获取每一组所述控件数据序列的特征数据中与同一输入特征属性对应的所有特征值,将所有特征值的均值作为与该输入特征属性对应的训练特征值。例如,针对选中某一按钮或图标的操作,则可将特征属性定为:触摸点所在位置的坐标值。如果共有十组控件数据序列,则根据这十组控件数据序列中,触摸点所在位置的坐标求平均值得到一个均值,该均值即可作为训练特征值。
S2022:根据每一输入特征属性及其对应的训练特征值,得到所述输入训练模型。即如果当某一点击操作中,触摸点所在位置的坐标值与对应的训练特征值相同,可认为其输入的是选中该按钮或坐标的操作。
可选地,S202还可通过如下方式实现:
S202A:获取每一组所述控件数据序列的特征数据中与同一输入特征属性对应的所有特征值,根据所有特征值得到训练特征值范围。具体地,根据所有特征值中的最大值和最小值得到所述训练特征值范围;例如,某一属性特征为触摸力度,十组控件数据序列中的十个力度值中,以最小值作为训练特征值范围中的下限值,以最大值作为训练特征值范围中的上限值。或,根据所有特征值得到特征值均值,根据所述特征值均值及允许浮动值得到训练特征值范围。例如,某一属性特征为触摸力度,十组控件数据序列中的十个力度值的均值为5N,允许浮动值为1N,则训练特征值范围为4N-6N。还可以选择其他方式,例如对于某些特征值与特征值均值差异较大的控件数据序列,可以将其舍弃,以剩余的控件数据序列的特征数据进行操作,按照特定的计算方式,得到训练特征值范围。
S202B:根据每一输入特征属性及其对应的训练特征值范围,得到所述输入训练模型。采用本实施例的上述方案,训练方式简单有效,可提高训练效率。
实施例3
本实施例提供测试用例生成方法,在实施例1中的步骤S103中,所述训练所述至少两组操作事件序列,得到输出训练模型通过以下方式实现:
S301:根据预设输出特征属性集合解析每一组所述操作事件序列,得到每一组所述操作事件序列的特征数据;其中,所述操作事件序列的特征数据包括与每一所述输出特征属性对应的特征值。对于输出特征集合来说,理论上都是确定的操作事件序列。例如,对于滑动解锁操作来说,其输出的操作事件序列必然是与“解锁进入主界面”这一结果相对应的操作事件序列,所以理论上如果针对某一测试用例来说,其理论的输出结果对应的操作事件序列应该是相同的。
S302:根据所述输出特征属性及每一组所述操作事件序列的特征数据,得到所述输出训练模型。
具体地,训练方式可以和实施例2中对控件数据序列的训练方式相同,只是特征属性是根据输出结果来预先确定的,本实施例中不再详细论述。采用相同的训练方式对控件数据序列和操作事件序列进行训练,可采用较少的训练模型,有助于提高训练效率。
实施例4
本实施例提供一种测试用例生成装置,用于终端设备中,所述终端设备中安装有待测试软件,如图3所示,包括:
环境参数获取模块301,获取待测试软件的运行环境参数;所述环境参数包括软件运行所要求的各种条件,包括软件环境和硬件环境。譬如各种操作系统、cpu型号及物理参数,对内存的要求等。而许多应用软件不仅仅要求硬件条件,还需要软件环境的条件的支持,比如windows支持的软件linux不一定支持,苹果的软件只能在苹果机上运行,如果这些软件想跨平台运行,必须修改软件本身,或者模拟它所需要的软件环境。
序列获取模块302,获取所述待测试软件的至少两组输入控件数据序列,以及响应于每一组所述控件数据序列得到的所述待测试软件的至少两组输出操作事件序列;可根据测试人员实际的输入操作得到控件数据序列,具体地在终端设备中,预先已经定义好针对每一种操作方式,其代码化后对应的数据序列,因此只要识别出测试人员的输入操作,根据已有定义方式,即可得到控件数据序列。而对于本实施例中的方案来说,获取越多组的控件数据序列、操作事件序列得到训练结果会越准确,但是需要处理的数据量也就越大,在实际情况中可根据终端设备的数据能力选择控件数据序列、操作事件序列的组数。
训练模块303,训练所述至少两组控件数据序列,得到输入训练模型,训练所述至少两组操作事件序列,得到输出训练模型;将所述控件数据序列作为样本数据,选择特定的数学模型作为计算框架,通过数据优化计算框架中的参数,使得计算框架得到的结果符合实际需求。例如可选择模式识别算法实现,具体的可以选择模式识别算法中的自组织神经网络算法实现。对操作事件序列的训练方式可以和控件数据序列的训练方法相同,也可以不同。如果控件数据序列、操作事件序列采用相同的训练方法,可以简化训练过程,如果采用不同的训练方法,需要引入至少两种训练模型,使训练过程稍微复杂一些。
用例生成模块304,根据所述输入训练模型和所述输出训练模型获取所述待测试软件在所述运行环境参数下的测试用例。
采用本实施例中的上述方案,能够自动生成测试用例,测试人员只需要对待测试软件进行操作,通过本发明实施例能够自动记录输入操作及对应的输出结果,并采用模式识别算法例如自组织神经网络训练得到与输入控件数据序列和输出操作事件序列对应的特定对象模式,得到训练模型,根据训练模型能够得到测试用例。从而能够大大减少测试人员的工作量,提高测试效率,降低测试用例的维护成本。
作为一种优选的方案,所述训练模块303用于:
根据预设输入特征属性集合解析每一组所述控件数据序列,得到每一组所述控件数据序列的特征数据;其中,所述控件数据序列的特征数据包括与每一所述输入特征属性对应的特征值;
根据所述输入特征属性及每一组所述控件数据序列的特征数据,得到所述输入训练模型。
其中预设输入特征属性集合,为预先存储在终端设备中的,对于不同的终端设备、不同待测试软件,其输入属性特征可能有所不同。例如,对于带有触摸屏的终端设备,其中输入可包括滑动操作,那么针对滑动操作的输入特征属性可能包括:触摸屏幕,移动距离,初始坐标,最终坐标,触摸力度,触摸时间等等。根据上述特征属性对多次滑动操作对应的控件数据序列进行训练,得到输入训练模型,根据该输入训练模型可以确定某一操作是否与滑动操作匹配。检测到输入操作时,根据上述输入特征属性对输入操作进行解析,如果执行的是滑动操作,能够获得输入操作中与上述输入特征属性对应的解析结果。
可选地,所述训练模块303具体用于:
获取每一组所述控件数据序列的特征数据中与同一输入特征属性对应的所有特征值,将所有特征值的均值作为与该输入特征属性对应的训练特征值;例如,针对选中某一按钮或图标的操作,则可将特征属性定为:触摸点所在位置的坐标值。如果共有十组控件数据序列,则根据这十组控件数据序列中,触摸点所在位置的坐标求平均值得到一个均值,该均值即可作为训练特征值。
根据每一输入特征属性及其对应的训练特征值,得到所述输入训练模型。即如果当某一点击操作中,触摸点所在位置的坐标值与对应的训练特征值相同,可认为其输入的是选中该按钮或坐标的操作。
作为另一种可选的方式,所述训练模块具体303用于:
获取每一组所述控件数据序列的特征数据中与同一输入特征属性对应的所有特征值,根据所有特征值得到训练特征值范围;具体地,根据所有特征值中的最大值和最小值得到所述训练特征值范围;例如,某一属性特征为触摸力度,十组控件数据序列中的十个力度值中,以最小值作为训练特征值范围中的下限值,以最大值作为训练特征值范围中的上限值。或,根据所有特征值得到特征值均值,根据所述特征值均值及允许浮动值得到训练特征值范围。例如,某一属性特征为触摸力度,十组控件数据序列中的十个力度值的均值为5N,允许浮动值为1N,则训练特征值范围为4N-6N。还可以选择其他方式,例如对于某些特征值与特征值均值差异较大的控件数据序列,可以将其舍弃,以剩余的控件数据序列的特征数据进行操作,按照特定的计算方式,得到训练特征值范围。
根据每一输入特征属性及其对应的训练特征值范围,得到所述输入训练模型。
采用本实施例的上述方案,训练方式简单有效,可提高训练效率。
进一步地,所述训练模块303还用于:
根据预设输出特征属性集合解析每一组所述操作事件序列,得到每一组所述操作事件序列的特征数据;其中,所述操作事件序列的特征数据包括与每一所述输出特征属性对应的特征值;
根据所述输出特征属性及每一组所述操作事件序列的特征数据,得到所述输出训练模型。
对于输出特征集合来说,理论上都是确定的操作事件序列。例如,对于滑动解锁操作来说,其输出的操作事件序列必然是与“解锁进入主界面”这一结果相对应的操作事件序列,所以理论上如果针对某一测试用例来说,其理论的输出结果对应的操作事件序列应该是相同的。具体地,训练方式可以和对控件数据序列的训练方式相同,只是特征属性是根据输出结果来预先确定的,本实施例中不再详细论述。采用相同的训练方式对控件数据序列和操作事件序列进行训练,可采用较少的训练模型,有助于提高训练效率。
实施例5
本申请实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的测试用例生成方法。
实施例6
图4是本实施例提供的执行测试用例生成方法的电子设备的硬件结构示意图,如图4所示,该设备包括:
一个或多个处理器401以及存储器402,图4中以一个处理器401为例。
执行测试用例生成方法的设备还可以包括:输入装置403和输出装置404。
处理器401、存储器402、输入装置403和输出装置404可以通过总线或者其他方式连接,图4中以通过总线连接为例。
存储器402作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的测试用例生成方法对应的程序指令/模块(例如,附图3所示的环境参数获取模块301、序列获取模块302、训练模块303和用例生成模块304)。处理器401通过运行存储在存储器402中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例测试用例生成方法。
存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据测试用例生成装置的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器402可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至列表项操作的处理装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置403可接收输入的数字或字符信息,以及产生与测试用例生成装置的用户设置以及功能控制有关的键信号输入。输出装置404可包括显示屏等显示设备。
所述一个或者多个模块存储在所述存储器402中,当被所述一个或者多个处理器401执行时,执行上述任意方法实施例中的测试用例生成方法。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
本发明实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。