测试用例生成方法及装置制造方法及图纸

技术编号:14445003 阅读:130 留言:0更新日期:2017-01-15 10:25
本发明专利技术提供了一种测试用例生成方法及装置,该方法中,首先选择MODBUS协议的某一功能对应的功能码,再获取具有该功能的数据包中包含的各个字段的定义,在各个字段中选择控制MODBUS协议通信的字段作为不可变字段,其余为可变字段,并对至少一个可变字段进行变异,从而生成与这些发生变异的字段定义不符或数据设置不符的测试用例。可以理解的是,本发明专利技术针对MODBUS协议生成测试用例,更具有针对性,且本提供的方法中将控制MODBUS协议通信的字段作为不可变字段,对可变字段进行有针对性的变异,从而能够避免生成无效的冗余测试用例,有效提高测试效率。

【技术实现步骤摘要】

本专利技术属于软件
,特别涉及一种测试用例生成方法及装置
技术介绍
随着网络技术的发展,工业控制领域的设备与设备之间依托着强大的互联网也变得越来越紧密。各个工控设备之间一般地基于互联网协议进行数据交互与通信。例如,Modbus/TCP协议在工控行业得到了广泛的应用,它已不仅仅是一个PLC的通讯协议,在智能仪表、变频器等许多智能设备都有相当广泛的应用。虽然将工业控制设备连接到网络能够较为方便的实现远程管理和监控,但在通信的同时也暴露了控制设备本身,从而使得控制设备容易受到恶意软件和黑客的恶意攻击,一旦工业控制网络信息安全出现漏洞,将对工业生产运行造成重大隐患。因此,如何减少工控网络通信协议的安全隐患是一个亟待解决的问题。目前对于协议安全的测试主要采用的方法为模糊测试方法。模糊测试是一种黑盒测试技术或随机测试技术,是协议安全测试的一种方式,它的基本原理是将大量的畸形数据输入到目标程序中,并监视目标程序执行过程中产生的任何异常,记录下导致异常的输入数据,从而定位目标程序中缺陷的位置,发现可能存在的安全漏洞。模糊测试中最为关键的是生成模糊测试数据的阶段,也即测试用例的生成。然而,由于模糊测试具有盲目性,现有的模糊测试在生成测试用例时是在输入数据空间内任意取值,自动产生和发送大量随机的值,这样产生的测试用例很大一部分在还没有进入到目标程序内部就被拒绝了,也即产生了许多无用的测试用例,导致随机测试产生的测试时间长,大量冗余测试输入,测试效率较低。此外,现有的模糊测试生成的测试用例大多是针对互联网网络协议的测试用例,对于工控协议,例如Modbus/TCP协议,并没有专用的测试用例生成方法,使得Modbus/TCP协议的测试不具有针对性,测试效率较低。
技术实现思路
本专利技术提供了一种测试用例生成方法及装置,用以解决现有技术中在采用模糊测试方法对Modbus协议进行测试时,测试用例盲目性大,不具有针对性,测试效率低的缺陷。第一方面,本专利技术提供了一种测试用例生成方法,用于生成针对Modbus协议的测试用例,所述方法包括:在预存的若干个功能码中选取一个作为目标功能码;其中,所述若干个功能码,为Modbus协议规定的执行不同功能操作的数据包所对应的若干个功能码;根据Modbus协议规定,获取与所述目标功能码对应的数据包中各个字段的定义;选取功能码字段以及各个字段中用于控制测试用例通信功能的字段作为不可变字段,将其余字段作为可变字段;将所述不可变字段设置为预设值,以使所述测试用例支持基于Modbus协议进行通信;对所述可变字段中的至少一个字段进行随机变异,以生成与所述至少一个字段的定义不符或数据设置不符的测试用例。可选地,所述对所述可变字段中的至少一个字段进行随机变异,以生成与所述至少一个字段的定义不符或数据设置不符的测试用例的步骤,包括:对所有可变字段的数据进行随机变异,以生成与所述可变字段数据的定义不符的测试用例。可选地,所述对所述可变字段中的至少一个字段进行随机变异,以生成与所述至少一个字段的定义不符或数据设置不符的测试用例的步骤,包括:将所述可变字段中的一部分字段的数据逐一地或组合地设置为预设值,所述预设值包括所述字段定义的取值范围内的最大值、最小值或中间值;对所述可变字段中的另一部分字段的数据进行随机取值变异,以生成与所述另一部分字段数据的定义不符的测试用例。可选地,所述对所述可变字段中的至少一个字段进行随机变异,以生成与所述至少一个字段的定义不符或数据设置不符的测试用例的步骤,包括:将所述可变字段中用于表示单元标识符字段、功能码字段以及数据域长度的长度字段设置为预设值,对所述单元标识符字段、功能码字段以及数据域中的任一项或其组合进行变异而加长或者压缩实际长度,以生成实际长度与所述长度字段的预设值不匹配的测试用例。可选地,所述随机变异包括数据元素删除变异,数据元素重复变异,有效值变异,或在各字段定义的数值范围内的数值边界变异。第二方面,本专利技术提供了一种测试用例生成装置,用于生成针对Modbus协议的测试用例,所述装置包括:功能码选择单元,用于在预存的若干个功能码中选取一个作为目标功能码;其中,所述若干个功能码,为Modbus协议规定的执行不同功能操作的数据包所对应的若干个功能码;获取单元,用于根据Modbus协议规定,获取与所述目标功能码对应的数据包中各个字段的定义;字段选择变异单元,用于选取功能码字段以及各个字段中用于控制测试用例通信功能的字段作为不可变字段,将其余字段作为可变字段;将所述不可变字段设置为预设值,以使所述测试用例支持基于Modbus协议进行通信;对所述可变字段中的至少一个字段进行随机变异,以生成与所述至少一个字段的定义不符或数据设置不符的测试用例。可选地,所述字段选择变异单元,还用于对所有可变字段的数据进行随机变异,以生成与所述可变字段数据的定义不符的测试用例。可选地,所述字段选择变异单元,还用于:将所述可变字段中的一部分字段的数据逐一地或组合地设置为预设值,所述预设值包括所述字段定义的取值范围内的最大值、最小值或中间值;对所述可变字段中的另一部分字段的数据进行随机取值变异,以生成与所述另一部分字段数据的定义不符的测试用例。可选地,所述字段选择变异单元,还用于:将所述可变字段中用于表示单元标识符字段、功能码字段以及数据域长度的长度字段设置为预设值,对所述单元标识符字段、功能码字段以及数据域中的任一项或其组合进行变异而加长或者压缩实际长度,以生成实际长度与所述长度字段的预设值不匹配的测试用例。可选地,所述随机变异包括数据元素删除变异,数据元素重复变异,有效值变异,或在各字段定义的数值范围内的数值边界变异。本专利技术提供了一种测试用例生成方法及装置,该方法中,首先选择MODBUS协议的某一功能对应的功能码,再获取具有该功能的数据包中包含的各个字段的定义,在各个字段中选择控制MODBUS协议通信的字段作为不可变字段,其余为可变字段,并对至少一个可变字段进行变异,从而生成与这些发生变异的字段定义不符或数据设置不符的测试用例。可以理解的是,由于本专利技术提供的方法中将控制MODBUS协议通信的字段作为不可变字段,只对可变字段进行变异,从而能够避免生成无法基于MODBUS协议进行通信的无效的冗余测试用例,有效提高测试效率,此外本专利技术提供的方法生成的是针对MODBUS协议的测试用例,因此更具有针对性,进一步提高测试的效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些示例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术提供的一种测试用例生成方法流程图;图2为本专利技术提供的被测设备正常抓包示意图;图3为本专利技术提供的被测设备在接收到测试用例后异常抓包示意图;图4(a)-4(b)为本专利技术提供的被测设备在接收测试用例前后的TCP通讯连接状态示意图。图5为本专利技术提供的一种测试用例生成装置结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实本文档来自技高网
...
测试用例生成方法及装置

【技术保护点】
一种测试用例生成方法,其特征在于,用于生成针对Modbus协议的测试用例,所述方法包括:在预存的若干个功能码中选取一个作为目标功能码;其中,所述若干个功能码,为Modbus协议规定的执行不同功能操作的数据包所对应的若干个功能码;根据Modbus协议规定,获取与所述目标功能码对应的数据包中各个字段的定义;选取功能码字段以及各个字段中用于控制测试用例通信功能的字段作为不可变字段,将其余字段作为可变字段;将所述不可变字段设置为预设值,以使所述测试用例支持基于Modbus协议进行通信;对所述可变字段中的至少一个字段进行随机变异,以生成与所述至少一个字段的定义不符或数据设置不符的测试用例。

【技术特征摘要】
1.一种测试用例生成方法,其特征在于,用于生成针对Modbus协议的测试用例,所述方法包括:在预存的若干个功能码中选取一个作为目标功能码;其中,所述若干个功能码,为Modbus协议规定的执行不同功能操作的数据包所对应的若干个功能码;根据Modbus协议规定,获取与所述目标功能码对应的数据包中各个字段的定义;选取功能码字段以及各个字段中用于控制测试用例通信功能的字段作为不可变字段,将其余字段作为可变字段;将所述不可变字段设置为预设值,以使所述测试用例支持基于Modbus协议进行通信;对所述可变字段中的至少一个字段进行随机变异,以生成与所述至少一个字段的定义不符或数据设置不符的测试用例。2.根据权利要求1所述的方法,其特征在于,所述对所述可变字段中的至少一个字段进行随机变异,以生成与所述至少一个字段的定义不符或数据设置不符的测试用例的步骤,包括:对所有可变字段的数据进行随机变异,以生成与所述可变字段数据的定义不符的测试用例。3.根据权利要求1所述的方法,其特征在于,所述对所述可变字段中的至少一个字段进行随机变异,以生成与所述至少一个字段的定义不符或数据设置不符的测试用例的步骤,包括:将所述可变字段中的一部分字段的数据逐一地或组合地设置为预设值,所述预设值包括所述字段定义的取值范围内的最大值、最小值或中间值;对所述可变字段中的另一部分字段的数据进行随机取值变异,以生成与所述另一部分字段数据的定义不符的测试用例。4.根据权利要求1所述的方法,其特征在于,所述对所述可变字段中的至少一个字段进行随机变异,以生成与所述至少一个字段的定义不符或数据设置不符的测试用例的步骤,包括:将所述可变字段中用于表示单元标识符字段、功能码字段以及数据域长度的长度字段设置为预设值,对所述单元标识符字段、功能码字段以及数据域中的任一项或其组合进行变异而加长或者压缩实际长度,以生成实际长度与所述长度字段的预设值不匹配的测试用例。5.根据权利要求1-4任一所述的方法,其特征在于...

【专利技术属性】
技术研发人员:孙易安
申请(专利权)人:北京匡恩网络科技有限责任公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1