(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 201910201771.X
(22)申请日 2019.03.18
(71)申请人 信联科技(南京)有限公司
地址 210000 江苏省南京市江宁经济技术
开发区东吉大道1号
(72)发明人 郭涛 李明柱 叶青
(51)Int.Cl.
G06F 11/36(2006.01)
H04L 12/26(2006.01)
(54)发明名称
一种基于协议状态机的模糊测试脚本及测
试引擎
(57)摘要
本发明公开了一种基于协议状态机的模糊
测试脚本及测试引擎,能够实现快速定义状态机
模型,并且测试平台能够自动识别状态机模型生
成状态引导脚本,
在状态机测试模式下,测试引擎首先执行状态引导脚本,将被测设备引导至测
试前的正确状态后开始正式测试流程,状态引导
脚本与主体测试脚本结构、语法一致,新增xml节
点用于定义状态机模型,状态机模型包含状态定
义和状态迁移Action,新增数据库表用于状态定
义和管理状态迁移Action集,状态机模型引用状
态定义表,
便于简化建立状态模型的过程。
权利要求书1页 说明书6页 附图1页CN 110532162 A 2019.12.03
C N 110532162
A
权 利 要 求 书1/1页CN 110532162 A
1.一种基于协议状态机的模糊测试脚本及测试引擎,其特征在于,包括以下模块,
状态机模型定义,所述状态机模型定义包括状态机模型定义元素、状态定义表和引用状态定义表;
所述状态机模型定义元素包括<model>、<state_machine>和<state>;
所述状态定义表包括表名:StateMachine;主键:TransitionID;外键:ProtocolID;说明:关联Protocol表与Script表;
所述引用状态定义表,将每个状态迁移的过程定义以后,S c r i p t表中的StateMachineScript字段内容则是引用StateMachine表中transition过程;
测试引擎状态引导执行,包括状态初始化、状态引导执行和监测脚本为空的处理;
状态监测机制,包括测试脚本和测试引擎。
2.根据权利要求1所述的一种基于协议状态机的模糊测试脚本及测试引擎,其特征在于,
所述<model>元素用于定义协议状态机模型框架,其下包括一个或多个<state_ machine>元素;
所述<state_machine>元素定义了一个协议状态机,其属性包含状态机模型名称和初始状态,在<state_machine>元素下,采用<state>元素进行状态定义;
所述<state>元素用于定义一个状态迁移过程,其属性包含当前状态名称、迁移后的目的状态名称、迁移Action集,Action集包含<assign>、<send>、<recv>等元素。
3.根据权利要求1所述的一种基于协议状态机的模糊测试脚本及测试引擎,其特征在于,所述状态机初始化包括以下步骤,
步骤A1,对测试脚本进行初始化之前,先对状态引导脚本进行初始化;
步骤A2,状态引导脚本正则匹配;
步骤A3,解析状态引导脚本中的Channel、Action信息并存储。
4.根据权利要求1所述的一种基于协议状态机的模糊测试脚本及测试引擎,其特征在于,所述状态引导执行包括以下步骤,
步骤B1,监测脚本执行完成后,在正式测试执行前,先执行状态引导脚本;
步骤B2,如果状态引导脚本执行失败,测试平台将报异常终止测试。
5.根据权利要求1所述的一种基于协议状态机的模糊测试脚本及测试引擎,其特征在于,所述监测脚本为空的处理,当监测脚本为空时,若不含状态引导脚本,以测试脚本作为监测脚本使用向下兼容;如果包含状态引导脚本,则以状态引导脚本作为监测脚本。
6.根据权利要求1所述的一种基于协议状态机的模糊测试脚本及测试引擎,其特征在于,所述测试脚本,其中定义了变异数据包,同时也定义了回复包解析组件,因为不同的协议需要调用不同的组件,所以组件必须要在测试脚本中定义,并由测试引擎调用执行。
7.根据权利要求1所述的一种基于协议状态机的模糊测试脚本及测试引擎,其特征在于,所述测试引擎,判断状态机测试过程中调用回复包解析组件结果异常时自动重发送正常数据包探测被测设备状态;如果反馈的结果仍然与期望不符则引擎判定此时被测设备的协议状态已经失效;用户可根据实际测试需求选择终止测试,或者重新进行状态引导继续测试。
2。